kOS: Scriptable Autopilot System Fully programmable autopilot mod for KSP /mod/60/kOS:%20Scriptable%20Autopilot%20System kOS: Scriptable Autopilot System v1.4.0.0 for Kerbal Space Program Released v1.4.0.0 - Catch-up for over a year of little things

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

]]>
Mon, 13 Feb 2023 05:55:32 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.4.0.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.3.2.0 for Kerbal Space Program Released A quick patch to v1.3.0.0 that fixes issue #2857 that would zero controls for just a brief single physics frame if raw control neutralize had been previously used or if a reboot had occurred while raw controls were in use. Most players won't notice a single physics frame of zeroed controls, but if you're using realism mods with limited engine ignitions, it would unfairly consume an engine ignition when the throttle zeroed for an instant. (Which was a disaster if the engine only gets to have one ignition.)

Normally one bug fix wouldn't warrant a release, but this bug was caused by changes in v1.3.0.0, and the consumed ignition was unfair.

]]>
Sun, 24 Jan 2021 22:03:15 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.3.2.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.3.1.0 for Kerbal Space Program Released This is a big update, and Spacedock does not allow long enough changelog strings for me to upload it here.

So see the changelog here: https://github.com/KSP-KOS/KOS/releases/tag/v1.3.0.0

]]>
Tue, 19 Jan 2021 20:00:47 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.3.1.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.2.1.0-reuploaded for Kerbal Space Program Released spacedock annoyingly insisted that I rename the version and won't let me replace the wrong one I just uploaded on top of the old one, nor will it let me delete the old one. So I called this "v1.2.1.0-reuploaded".

]]>
Sun, 03 Nov 2019 01:28:21 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.2.1.0-reuploaded https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.2.0 for Kerbal Space Program Released wrong zip file uploaded

]]>
Sun, 03 Nov 2019 01:23:49 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.2.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.2.1.0 for Kerbal Space Program Released hotfix for DDS loading on UNIX

v1.2.1.0 Get Backslash to where you once belonged.

for KSP v1.8.1 Downloads this release

Just a hot fix to solve the problem where the new DDS texture loading routine in v1.2 broke on UNIX platforms because of the path separator being hardcoded to backslashes.

]]>
Sat, 02 Nov 2019 23:24:14 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.2.1.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.2.0.0 for Kerbal Space Program Released v1.2 Unity Update

This update is mostly to make kOS compatible with KSP 1.8.x, which started using a newer version of Unity, and a newer version of .Net, which have some consequent changes in the code and build process.

BREAKING CHANGES

None that are known about, other than the usual reminder that KSM files need a recompile after every version update of kOS.

NEW FEATURES

  • Now forces both the toolbar window and the telnet welcome menu to list the kOS CPUs in a consistent unchanging sort order. Previously, it was pretty much random what order you would see kOS CPU's listed in the menu, which made it hard for JonnyOThan's Twitch-Plays-KSP chatbot to know which CPU it was attaching to when it sent commands to kOS. This has been changed to a predictable sort order as follows: (1) Sort by which vessel the CPU is on, starting from the active vessel, and then for other vessels, sorting by distance from the active vessel, closest first. (2) When the same vessel has more than one CPU, break that tie by number of "hops" from the root part, such that CPU's attached closer to the root come first. This is by "number of parts to walk through to reach root" rather than by actual physical distance, since using physical distance might have led to inconsistent sort order given that some ship parts can hinge and extend, changing that distance. pull request
  • New suffixes Dockingport:PARTNER and Dockingport:HASPARTER will tell you which docking port this docking port is docked with. issue pull request
  • HEADING() Now allows optional 3rd argument, "roll". issue pull request
  • Let user-made GUIs toggle IMGUI's wordwrap flag with a new suffix: Style:WORDWRAP. This should let you fix that annoying problem where a GUI Label would insist on wrapping even when it could have fit by making the window wide enough. Setting wordwrap to false will force the GUI layout engine to keep the label's area wide enough to not wrap the text. issue pull request
  • Add BODYEXISTS test issue pull request
  • Allow FLOOR() and CEILING() to specify a decimal place other than the one's place, like ROUND() can do. issue pull request
  • Add a constructor, CREATEORBIT() that will make a new Orbit object for any hypothetical orbit given Keplerian parameters, without it coming from a vessel or a body that already exists. issue pull request
  • Added new suffix to waypoint: :ISSELECTED, which will tell you if the waypoint is the one the user has selected for their navball. issue pull request

BUG FIXES

  • Bound variables like SHIP, UP, VELOCITY, etc stopped existing in the KSP 1.8.x update. This was because kOS makes use of reflection techniques to store information about C# Attributes that help it find the bound variables in its code, and .Net 4.x changed the meaning of Attribute.Equals() in such a way that it broke what kOS was doing to store this reflection information. A Dictionary that kOS was using to track bound variables by Attributes started having key clashes because of that change to what it means for an Attribute to be Equal to another Attribute. ((No link to a github issue because this was part of the general KSP 1.8 update PR and didn't have an issue.))
  • Prevent waypoints with bogus body names. pull request
  • Fix a problem that made the GUI terminal sometimes get stuck refusing to repaint when resized to a size too small to hold all the text it previously had showing. issue pull request
  • Several minor doc typos pull request pull request
  • The startup message about default font and "if you want the old look" was quite obsolete by now and needed to be removed. issue pull request
  • Changed the technique used to load DDS icons used in the kOS GUI terminal and the kOS toolbars, to bypass KSP's strange API and go directly to Unity. This may or may not help people who had the purple square icon problem. ((No issue - SlimJimDodger contributed PR out of the blue.)) pull request
]]>
Sat, 02 Nov 2019 01:46:11 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.2.0.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.9.0 for Kerbal Space Program Released for KSP v1.7.3 Downloads this release

v1.1.9.0 Breaking Bounds

This update is a mix of new features, mostly

BREAKING CHANGES

NEW FEATURES

  • 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.

BUG FIXES

  • 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.
]]>
Wed, 07 Aug 2019 06:38:29 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.9.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.8.0 for Kerbal Space Program Released v1.1.8.0 Engines and KSP 1.7 compatibility

Mostly this was motivated by a need to get an officially recompiled-for-KSP-1.7 version out there (even though the previous version worked on KSP 1.7, it wasn't officially compiled for KSP 1.7.)

Along the way there were one or two bug fixes and documenation cleanups.

BREAKING CHANGES

  • Not that we know of, unless you were unaware that some of the bugs fixed were in fact bugs and had written a script to expect that behaviour as normal. (Read the bug fixes below to be sure.)

NEW FEATURES

  • Support of multiple-at-the-same-time engines that exist in some mods (but not in stock, as far as we can tell). Stock contains single engines in a part, and multi-mode engines in a part (where only one of the engines in the part is active at a time, i.e. wet/dry mode engines or jet/rocket mode engines). But some mods contain parts that have more than one engine in them that are selected at the same time, rather than toggle-switched like the stock multi-mode engines. One example is the RD-108 engine that the RealEngines mod provides. Its main "straight" engines are one Engine Module, and its smaller "gimbal" engines around the edge are a second Engine Module. Both modules are active at once and need their information aggregated to work with kOS's "an engine part is just one module" system. This PR does so. pull request Special thanks to first time contributer RCrockford for doing all the legwork on this.

BUG FIXES

  • The behaviour of LIST ENGINES in regards to multi-mode engines was restored to what it was supposed to have been. Becuase of a small change KSP made, it's been wrong since KSP 1.5, apparently. Prior to KSP 1.5 it worked correctly by giving a list that contains one entry in the LIST ENGINES per engine. But since then it has been returning 3 duplicate instances in the list per each multi-mode engine. This release fixes it, and the previous correct behavior is restored (just returning one, not three). The problem was discovered during regression testing of the pull request, so the fix is inside that same pull request.
  • kOS could be rendered completely inert and broken if other mods not under kOS's control had broken DLL files. Specifically, kOS would abort partway through initializing itself if any other DLL file in the entire KSP game had failed to load during the KSP loading screen. kOS has a "reflection" walk through all the classes that hadn't accounted for the fact that .net apparently keeps a null stub of a class in memory after a class fails to load, rather than it just not existing at all like one would expect. pull request (This was discovered with KSP 1.7 because KSP 1.7 broke some other mod's DLLs making them not load, but the problem was actually there all along waiting for some DLL file to trigger it.)
  • Reworking the position of the Connectivity Manager Dialog box. Our exploratory reverse-engineering of just what the undocumented arguments to KSP's MultiOptionDialog mean, which was used to move the box to fix issue 2456 were still wrong. They didn't do exactly what we thought they did. (The misinterpretation became relevant when the player has UI scaling set higher than 100% and that pushed the dialog box off screen.) Thanks to contributor madman2003 for doing more reverse-engineering on this and submitting the fix. pull request
  • Fix to bug where kOS scripts could no longer SET TARGET to a Celestial Body and could only set targets to vessels or parts. This bug was introduced in the previous release of kOS by a hamfisted typing error while fixing the fact that Body wasn't serializable. It was an error that unfortunately didn't result in any noticable problem when compiling or testing, as it only removed the Body's declaration that "I am the kind of class that knows how to be a target" and it affected nothing else. pull request
  • Several small documentation edits: pull request, pull request, pull request
  • Trying to toggle the panels value on or off would result in infinite log spam if the ship contained a fixed undeployable solar panel like the OX-STAT. kOS was watching for the existence of ModuleDeployableSolarPanel to see if the part could be deployed or not, but apparently at some point KSP started defining all solar panels as having ModuleDeployableSolarPanel, even if they're not actually deployable. Now kOS doesn't treat the panel as deployable unless it also has its animation property defined in addition to claiming to be a ModuleDeployableSolarPanel. pull request
]]>
Wed, 01 May 2019 22:24:37 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.8.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.7.0 for Kerbal Space Program Released for KSP v1.6.1 Downloads this release

v1.1.7.0 Lets get Serial

Mostly fixes. The motivation for this release is to get fixes out to the public before KSP 1.7 comes.

Built for KSP 1.6.1

BREAKING CHANGES

  • Compatibility for the old Infernal Robotics is officially removed in favor of support for the "IR Next" mod.

NEW FEATURES

  • Support for the "IR Next" mod. (The only infernal robotics mod was no longer being updated anyway and didn't work on KSP 1.6.1. But IR Next, although not officially released yet, does work on 1.6.1, so we switched to that. pull request
  • More types are now serializable as messages or JSON files: Notevalue, Direction, RGBAcolor, and HSVAcolor. pull request
  • CORE:TAG is now settable pull request
  • KUNIVERSE:PAUSE suffix added. pull request
  • Added a new TIME(seconds) Constructor to make a Timespan out of a Universal timestamp. pull request
  • New LIST FONTS. feature so the user can see which font names are loaded into Unity for use in user GUIs. pull request

BUG FIXES

  • Several documentation alterations: pull request pull request
  • kOS would throw a Nullref if a script tried to check for a CommNet connection to a vessel that has been classified as type "debris". pull request
  • Sometimes kOS broke the Space Center, making the buildings impossible to click on. This was caused by input locks not letting go when the terminal is open while the kOS physical part gets exploded. pull request
  • Fix to the kOS icon being broken (showing just a purple square) in Blizzy Toolbar mod. [pull request(https://github.com/KSP-KOS/KOS/pull/2454)
  • GeoPosition was written improperly in messages or JSON files. pull request
  • The "hue" part of HSV colors was never quite implemented properly from when it was first introduced. (It was mapping all hue numbers down into just 1/6th of the full range of hues, so greens and blues were not available.) pull request
  • When using the message queue system while Remote Tech is installed, you could not send messages to vessels far away outside the load distance bubble (i.e. 2.5km-ish). This is fixed. pull request
  • Vecdraws were incapable of drawing dark colors like black because they were using an additive-only shader. pull request
  • Fix a case where cooked steering from the terminal refused to let go if a subsequent kerboscript error is typed into the same terminal. pull request
  • If "run once" was used, and the system chose not to run the program because it was already run, it was possible for the stack to get corrupted in a way that confused defaulted parameters to programs. pull request
  • Fixed Multimode engine bug that was introduced in v1.1.6.1. pull request
  • Moved kOS dialog box to a new position to fix a clickthrough problem that caused you to secretly pick a kOS connectivity manager without realizing it when you click on things in the Remote Tech dialog box. pull request
]]>
Tue, 09 Apr 2019 01:10:22 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.7.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.6.3 for Kerbal Space Program Released v1.1.6.3 Folder Path Protection

Built for KSP 1.6.1

This is a patch for protecting against some kinds of file folder access that concerned us for those people using kOS to set up "Twitch Plays kOS" streams.

Although we try to block a kerboscript's ability to access files outside the Ships/Script/ folder, we cannot (and will not) guarantee to have thought of every trick a clever person might come up with to fool the system into allowing access. As always, be wary that if you allow any random arbitrary person to run scripts (in any system, in any language, really) on your own computer that you have not read through and vetted yourself, that you are doing this at your own risk.

BUG FIX:

If you currently have a "Twitch Plays kOS" stream, or plan to set up one in the future, PLEASE see this writeup:

]]>
Mon, 18 Feb 2019 05:42:33 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.6.3 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.6.2 for Kerbal Space Program Released kOS Mod Changelog

v1.1.6.2 Quickfix (Image Files to DDS)

Built for KSP 1.6.1

Nothing but a quick patch to v1.1.6.0.

BUG FIX

The v1.1.6.0 update resized a few of the PNG images used in the GUI panels, which exposed a bug that only manifests on some graphics cards. KSP converts PNGs to DDS format upon loading them, and appears to use the Direct3D graphics driver to do so. Older graphics cards refuse to do that conversion on images that aren't exactly expected sizes. We were just "lucky" that this never happened in the past with the image sizes we were using. Converting them to DDS ourselves and shipping them that way, we bypass this problem because the user's own graphics drivers aren't responsible for doing the conversion.

]]>
Sat, 09 Feb 2019 00:30:24 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.6.2 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.6.1 for Kerbal Space Program Released Nothing but a quick patch to v1.1.6.0.

BUG FIX

v1.1.6.0 had a flaw in MAXTHRUST, AVAILABLETHRUST, and engine ISP calculations that always calculated them as if your ship was in vacuum even when it's not. This was deemed an important enough problem to warrant a quick-fix release.

]]>
Mon, 04 Feb 2019 23:03:38 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.6.1 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.6.0 for Kerbal Space Program Released v1.1.6.0 It's been too long without a release.

Built for KSP 1.6.1

It's been a long time without a release. We kept putting it off until "that one more thing" was merged in, and there was always "that one more thing", again and again, that kept putting off the release more and more. Eventually we decided to release what we had since there's so many fixes the public weren't getting.

This release incorporates 50 separate Pull Requests from many individuals. As always, thanks to everyone who contributed over the last year. (Has it really been that long? Almost.)

BREAKING CHANGES:

(None that we know of, but this is a big update so we could have missed something.)

BUG FIXES:

  • Was reading POSITIONAT() from the wrong orbit patch when getting a prediction for the moment when a patch transition should occur. pull request
  • Stage:resources gave wrong values in cases of stages without a decoupler. pull request
  • Several documentation clarifications. See individual links below for more details:
  • dead links on Vector doc page
  • a typo
  • a spelling error
  • sphinx old code deprecated
  • HUDtext style corner documented wrong
  • cleanup gh-pages branch having source in it
  • Mention Simulate in BG needed
  • SKID clarification
  • Error in basic tutorial example
  • Removed old obsolete notices
  • Fixed error detecting VT100 terminals in telnet (used wrong substring compare). pull request
  • Fixed bug of multiple ON triggers melting their "prev value" trackers together if the triggers came from the same line of source code. pull request
  • Fix a bug with RemoteTech autopilot premissions getting lost. pull request
  • WHEN/ON statements inside anonymous functions now working properly. pull request
  • (attempt to?) Fix problem where bootfiles weren't copied in Mission Builder missions. pull request
  • Massive refactor of how trigger interrupts work, that allows them to behave more consistently and allows more complex layering of triggers. (In this CHANGELOG, This is listed both under "new features" and "bug fixes" since it's both.) pull request
  • Fix stack alignment bug that happened when a bootfile runs a KSM file that locks steering: pull request
  • Fix: Locked steering refusing to let go if the IPU boundary lands right in the middle of kOS's steering trigger (kOS not having "atomic sections", the ordering of the opcodes mattered a lot). pull request
  • Fix: Undocking/Decoupling while a kOS unit on the lower half has locked steering used to cause the lower stage's kOS unit to spin the upper stage's steering and never let go of it. pull request
  • Fix: Hyperbolic orbits now allow negative anomaly angles to represent measures "prior to periapsis" correctly. (Previously it represented a value like -10 degrees as +350 degrees, which doesn't make sense if the orbit isn't closed and won't come back around.) pull request
  • Fix: E,S, and R keys now working right in text editor widget in Linux port. kOS incorrectly prevented the E, S, and R keys from passing through to other widgets before. This error was only noticed on Linux because Unity3d's event queue passes through widgets in a different order on different OS ports. pull request
  • kOS will now let go of the steering when the program dies due to a lack of electricity. This allows your vessel to get some power recharging again when it starts getting sun on the solar panels again. (Previously the steering deflection was still present, meaning the ship needed a recharge rate higher than the power the torque wheel expended in order to actually get a net positive recharge.) pull request
  • Fix: UTF-8 text files that contain a BOM (Byte Order Mark) are now parse-able. (Notepad.exe was really the only text editor that triggered this problem. No other editors put a BOM in UTF-8 files.) pull request
  • Fix: If you lock steering from the interpreter, then also run a program that locks steering, that program used to bomb with error when it tried to exit and return to the interpreter. pull request
  • Fix: Using the meta-key AltGr on some European keyboards was causing garbage to appear in the terminal interactive prompt, but only on the Linux port of Unity3d. Again, Unity3d does weird things in its Linux port for no apparent reason (they're not because of the OS itself), that we have to accommodate. pull request
  • Fix: Bulkhead profile added to part files. It is required for the new KSP 1.6.x filtering "by diameter" feature. Without it, the VAB could hang forever when a user clicks that tab. pull request
  • Fix: Map View no longer rotates with the vessel when focus is on the terminal window. It's a stock bug that required a bit of trial and error to pin down, then an ugly kludge to keep it from being triggered. pull request
  • Fix: OrbitInfo:TOSTRING now prints the body name properly. pull request

NEW FEATURES:

  • Made several of the string parameters to GUI widgets optional. pull request
  • Massive refactor of how trigger interrupts work, that allows them to behave more consistently and allows more complex layering of triggers. (In this CHANGELOG, This is listed both under "new features" and "bug fixes" since it's both.) pull request
  • Allow "close window" button to exist on the RMB menu. pull request
  • New suffixes to read if Body has a surface, an ocean, or children. pull request
  • Added KUNIVERSE:REALTIME and KUNIVERSE:REALWORLDTIME. pull request
  • Vecdraw now can set updater delegates directly in its constructor. pull request
  • All command codes in a script text file will be treated as whitespace now, just in case there's any in there junking up the file. pull request
  • Add a "CID" Craft-ID suffix to Parts. pull request
  • Constant:G is now being calculated from the game itself instead of being a manually typed constant in the kOS source. pull request
  • New value, Constant:g0 - useful for ISP calculations. pull request
  • Make terminal's "dim" unfocused mode stop being transparent, for extra readability. (It was never transparent enough to usefully see through, but it was transparent enough to make it hard to see the letters.) pull request
  • GUI tooltips now implemented. pull request
  • Fix: All the image files and texture files are using .DDS format now, and both X and Y resolutions for them have been resized to exact powers of 2, which DDS requires. (Unity loads DDS files faster, and they form a smaller download ZIP). pull request
]]>
Mon, 04 Feb 2019 04:56:22 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.6.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.5.2 for Kerbal Space Program Released for KSP v1.4.1 Downloads this release

This release is mostly just a recompile to make kOS work with KSP 1.4.1, with the few changes that were needed to keep it working, and whatever bug fixes happened to already be implemented when when KSP 1.4.1 came out.

]]>
Wed, 14 Mar 2018 03:47:47 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.5.2 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.5.1 for Kerbal Space Program Released BACKPORT FOR KSP 1.2.2 (for Realism Overhaul)

This is NOT a release for the most recent KSP. It is a back-port for KSP 1.2.2 so people using Realism Overhaul can use it.

Note, Please take this into account if you are using RP-0 with Realism Overhaul: RP-0 by default does not "cost" the kOS parts properly, so if you have all non-costed parts banned, kOS parts are banned too. This leaves you with only the default disk capacity of 5000 in all avionics parts in RO, which is incorrect. To fix this problem and get reasonable disk capacity, change this line in:

GameData/RealismOverhaul/RealismOverhaul_Global_Config.cfg

@PART[*]:HAS[@MODULE[ModuleCommand],!MODULE[kOSProcessor]]:NEEDS[kOS]:AFTER[RealismOverhaul]
{
    MODULE
    {
        name = kOSProcessor
        diskSpace = 40000 // Edited by dunbaratu - was 5000 in defalt RO config which is wrong.
    }
}
]]>
Thu, 25 Jan 2018 23:07:26 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.5.1 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.5.0 for Kerbal Space Program Released v1.1.5.0 HotFix for nested function scope.

Built for KSP v1.3.1

This release is just to fix one bug introduced by v1.1.4.0 that was discovered post-release by the users, during the Christmas-NewYears time. The fix was quick but release was delayed for after the holidays.

BREAKING CHANGES:

None that we know of. This change shouldn't even require recompiling KSM files, presuming you had them recompiled already for v1.1.4.0.

BUG FIXES:

  • The default scope for declare function when you say neither local nor global, was always defaulting to global in the previous release (kOS 1.1.4.0), when it was supposed to be context dependent. It was meant to be global only when the function is at outermost file scope, but local when the function is nested at any inner scope deeper than that. This is now fixed, and this bug is the main reason for this hotfix release. pull request
  • The above bug also exposed a vulnerability in how kOS's own errors (ones that are the dev's fault, not the user's fault) are dealt with. If ReplaceLabels() (a final step of loading a script into memory, that happens when you RUN a .ks or .ksm file) threw an exception, then the user would see the same error message repeating forever, and never get control of that kOS computer back again. (This vulnerability was introduced when compiling was moved to its own thread, for complex reasons, but only just discovered now because this was the first time ReplaceLabels() had an exception since that move had happened.) It is fixed now. pull request

v1.1.4.0 Does faster compilation break a work flow?

]]>
Mon, 01 Jan 2018 23:10:19 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.5.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.4.0 for Kerbal Space Program Released v1.1.4.0 Does faster compilation break a work flow?

Built for KSP v1.3.1

This release was primarily focused on speedups and smoothness of execution. We welcomed a new developer (github username @tsholmes) who contributed a lot of bottleneck analysis and code speedups. The goal was to reduce the burden kOS causes to the physics rate of the game, and consequently also allow tech tree scaled performance by era for the kOS computer parts themselves (slow at first, faster later).

BREAKING CHANGES:

  • If you use the compiled script feature YOU MUST RECOMPILE ALL KSM FILES, USING KSM FILES COMPILED IN A PREVIOUS VERSION WILL RESULT IN AN ERROR.
  • Files now have an implied local scope, causing the following change:
  • Previously: If you declared a variable as local at the outermost scope of a program file (outside any curly braces), then it had the same effect as global, creating a variable that you could see from anywhere outside that program file.
  • New behavior: Now that there is an outermost scope for a file, local actually means something in that scope. To get the old behavior you would need to explicitly call the variable global. (The variables magically created via the lazyglobal system will still be global just like they were before.)
  • Parameters to programs now have local scope to that program file. (Previously they were sort of global and visible everywhere, which they shouldn't have been. If you relied on this behavior your script might break.) This is of particular note when working with locks and triggers as the local parameters may conflict with the global scope of these features.
  • Functions declared at the outermost scope of a program will now keep proper closure, making them see variables local to that program file even when called from outside that file. This may hide a global variable with a more local variable of the same name, when previously the global variable would have been accessible from the function. (You probably weren't relying on this buggy behavior before, but if you were, this fix will break your script.)

NEW FEATURES:

  • File scope: Previously, kerboscript did not wrap program files in their own local scope. (Declaring a local in a file had the same effect as declaring a global there). Now each program file has its own scope (and also the parameters passed to a program file are local to that file scope).
  • NOTE: For backward compatibility, there is one important exception to the file scope - functions declared at the outermost level by default can be globally seen in other programs. You CAN get functions that are local to the file's scope, but you have to explicitly include the local keyword in the function declaration to make that happen. pull request

OPTIMIZATIONS:

  • The regular expression syntax used to compile programs has been heavily modified to speed up file parsing using start string anchors and eliminating string copying. pull request pull request
  • Suffix lists are no longer initialized on every call, saving both execution time and memory. pull request
  • Various string operation optimizations for internal string lookups. pull request pull request
  • The cpu stack was re-written to use two stacks instead of using a single stack with hidden offsets. pull request
  • Cache type lookup data for suffix delegates. pull request
  • Begin encoding identifiers directly in opcodes instead of pushing a string identifier prior to executing the opcode. pull request pull request
  • General optimizations for the C# source code, including for unit tests. pull request pull request pull request pull request

BUG FIXES:

  • Functions at the outermost file scope level now have closures that can see the file scope variables properly. Previously they could not (but this did not matter since there was no file scope to matter. This bug got exposed by the other file scope changes.) pull request
  • Fixed inability to use flight controls on a craft with local control when RemoteTech is installed, both with and without a probe core installed. pull request
  • Fixed a crash to desktop when attempting to parse very large numbers. pull requst
  • Fixed syntax errors in the exenode tutorial documents. The code as displayed has been tested to work correctly as of this release. pull request
  • Parsing numbers on host computers that normally expect the , character to be used as a decimal symbol will no longer be blocked. kOS now forces the use of CultureInvariant when parsing numbers, so all locales will be required to use the . character for decimals. pull request
  • Action Groups Extended support should once again work as the the method used to detect that the mod is installed has been repaired. pull request
  • Attempting to delete a path that does not exist no longer throws a null reference error. pull request
  • Documentation was added for part:hasmodule suffix. pull request
]]>
Wed, 27 Dec 2017 20:37:38 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.4.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.3.2 for Kerbal Space Program Released for KSP v1.3.1 Downloads this release This version is functionally identical to v1.1.3.0, however the binaries are compiled against KSP 1.3.1 to allow it to properly load with the updated version of KSP

BREAKING CHANGES:

  • This build will not work on previous versions of KSP.

NEW FEATURES:

(None)

BUG FIXES:

(None)

]]>
Mon, 16 Oct 2017 04:57:01 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.3.2 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.3.1 for Kerbal Space Program Released ONLY USE THIS RELEASE FOR PEOPLE STUCK ON KSP 1.2.2. If you are on KSP 1.3, then use v1.1.3.0 instead. This is a port of v1.1.3.0 backward to KSP 1.2.2.]]> Tue, 19 Sep 2017 21:14:47 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.3.1 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System kOS: Scriptable Autopilot System v1.1.3.0 for Kerbal Space Program Released v1.1.3.0 (for KSP 1.3) Bug Swatting Release

For this release we instituted a rule partway through that only bug fixes should be allowed (some of the first few changes were enhancements rather than bug fixes, but after that, its all bug fixes). This was in a vain hope that doing so would get a release out faster than normal.

BREAKING CHANGES

(Can't think of any.)

NEW FEATURES

  • Terminal input using any Unicode character, not just ASCII. (Technically not a new feature, but a bug fix to a feature from the previous version, but since the bug made the feature never work at all in the past, it feels like a new feature). pull request
  • New StartTracking suffix for "unknown objects" (asteroids). pull request

BUG FIXES

  • A large refactor of how the various flight control methods track which vessel they control. This appears to have fixed a lot of bugs where kOS lost the ability to control the ship unless you reloaded the scene. (After a docking, undocking, staging, vessel switch, or scene switch, this would sometimes happen, but not consistently enough to be easy to debug). pull request pull request
  • Program aborts caused by external events such as poweroff, shutdown, or control-C no longer leave garbage behind in memory still hooked into parts of kOS. pull request
  • Documentation now more explicitly mentions how SAS and lock steering fight with each other. pull request
  • Documentation for GUIskin:add() was wrong. Fixed. pull request
  • The waypoint() constructor used to fail on waypoints which were not part of a cluster yet were named as if they were part of a cluster anyway ("my waypoint Alpha", "my waypoint Beta", "my waypoint Gamma", etc). This doesn't happen in stock, but does happen with several mods that use ContractConfigurator. kOS will now deal with such waypoints. pull request
  • Documentation that claimed obsoleted TERMVELOCITY still exists has been removed or edited. pull request
  • Trying to examine the NoDelegate object no longer causes nullref error. pull request
  • Equality operator ( == ) when comparing a Path to a Path now fires off correctly. pull request
  • GUI's ONRADIOCHANGE callback hook now no longer depends on the existence of an ONTOGGLE hook to fire off. pull request
  • Compiler no longer creates incorrect opcodes for indexed collections used as arguments to a function call that's on the lefthand side of an assignment statement. pull request
  • Font resizing in scripts no longer causes the terminal to mangle its size and width/height character count pull request
  • Signal delay progress bar (when using Remote Tech) will now resize properly when you have a nonstandard sized terminal window. pull request
  • Compile command now works properly when run from the interpreter. pull request
  • Vessel:isDead working properly now pull request
  • Stretching the terminal to a large size no longer causes the rounded corner to obscure text in the window. pull request
  • Full unicode keyboard and file save support was getting mangled by wiping out the high byte leaving only the 8-bit ASCII part left. Fixed. pull request
  • Toolbar Panel setting changes no longer require there to exist a kOS part loaded into the scene. pull request
]]>
Tue, 19 Sep 2017 05:19:03 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.3.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.2 for Kerbal Space Program Released CKAN info inside the ZIP was wrong for v1.1.1 (it had a max version number smaller than current version number, so CKAN refused to pick it up). This corrects that problem.

]]>
Wed, 21 Jun 2017 06:21:21 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.2 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.1 for Kerbal Space Program Released Now ready for official full release for KSP 1.3.

]]>
Tue, 20 Jun 2017 07:18:24 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.1 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.1.0 for Kerbal Space Program Released BREAKING CHANGES
  • Because of changes to make the terminal use a real font from your OS, we had to obsolete TERMINAL:CHARWIDTH. You can only choose TERMINAL:CHARHEIGHT. Each font has its own hardcoded notion of how wide a letter will be at a given height, which you can't override.
  • CONFIG:BRIGHTNESS was moved back to the global config section, and is no longer set on the "difficulty" options screen, because it's not supposed to be a per-saved-game setting, but a user-interface preference that spans all saved games.
  • ATM:SEALEVELPRESSURE now gives the answer in different units than it used to. (It was in KiloPascals even though the documentation claimed it was in atmospheres. Now it's in atmospheres to agree with the documentation.)

NEW FEATURES

  • GUI-making toolkit. You are now able to make a GUI window that your kerboscript code can control, including buttons, sliders, toggles, checkboxes, etc. It uses the KSP game's default skin (kind of big letters) but the skin can be customized by the script a bit to change things. pull request pull request documentation: search for "GUI" (http://ksp-kos.github.io/KOS_DOC/structures/gui.html).
  • Background compilation. Now the game continues its simulation normally and physical events keep happening, while kOS is taking a few seconds to compile a script. (Gets rid of that familiar frozen game effect when you first issue a RUN command.) pull request
  • Terminal Font. Now the kOS in-game terminal window uses a real font from your OS itself to render the text terminal. (This allows the display of any Unicode character the font can render, and it allows nicer looking font size changes.) Previously kOS painted images for letters from a hardcoded texture image file. pull request 1 pull request 2
  • Allow any unicode. The kerboscript parser now allows identifiers and literal strings to contain letters outside the limited ASCII-only range it used to accept. The in-game terminal now allows you to type any letter your keyboard can type. (But it does not implement the ALT-numpad technique of entering characters. You have to have a keyboard that types the character directly. However, the ALT-numpad technique will work through the telnet terminal, if your telnet client's window can do it.) pull request
  • Regular expression part searches for part/tag names. pull request, documenation: search for "PARTSTAGGEDPATTERN" (http://ksp-kos.github.io/ KOS_DOC/structures/vessels/vessel.html#method:VESSEL:PARTSTAGGEDPATTERN).
  • Choose the IP address of the telnet server, from the ones your computer has available, instead of kOS picking one arbitrarily. pull request
  • Allow local variables in triggers In order to support the kOS callback system used by the GUI, we also finally had to add support for proper local variable scoping to triggers like WHEN and ON. A trigger's condition
  • Pressure at a given altitude is now something you can query from an atmosphere. pull request, documentation: search for "ALTITUDEPRESSURE" (http://ksp-kos.github.io/K OS_DOC/structures/celestial_bodies/atmosphere.html#method:ATMOSPHERE:ALTITUDEPRESSURE).
  • Get a LATLNG for some other body than the current one. pull request, documentation: search for "GEOPOSITIONLATLNG" (http://ksp-kos.github.io/ KOS_DOC/structures/celestial_bodies/body.html#method:BODY:GEOPOSITIONLATLNG).

BUG FIXES

  • Fix kOS toolbar button sometimes failing to appear in Blizzy Toolbar Mod. pull request
  • Fix SKID Chip emulator's sync lag when physics is slow. pull request
  • Fix SKID Chip emulator unable to use voices 6 through 9 because of how they were initialized. pull request
  • Forgot to document GETMODULEBYINDEX. pull request
  • Fix inability of a script to SET TARGET when KSP game is not the focused window. pull request
  • Fix iterator that lets you walk the characters in a string with "for" loop. pull request
  • Removed some Unity hooks that despite being empty and doing nothing, nonetheless still ate up a bit of time to pointlessly call and return from. pull request
  • Fix use of the min()/max() function on string comparisons pull request
  • Fix science data transmissions pull request
  • Fix unnessary duplicated of clones of vessel objects (was causing large garbage collection hangs). pull request
  • Fixed several small documentation errors: pull request pull request pull request
  • Fixed float->boolean mapping error. The values no longer round to integer before becoming boolean. (i.e. 0.01 should be True, not get rounded to False (0) like it used to.) pull request
  • Fixed ATM:SEALEVELPRESSURE units to agree with the documentation. pull request
  • Fixed bug that had made the sounds fail to emit for beep and keyclick. pull request
  • Fixed vessel:TOSTRING to return "Vessel(blarg)" instead of "Ship(blarg"). pull request
  • Fixed null-ref errors when using NEXTPATCH when there is no next patch. pull request
  • Fixed a few bugs related to kOS cleaning up after itself when the vessel splits into two or two vessels join together, or a vessel blows up. pull request
]]>
Tue, 13 Jun 2017 11:55:05 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.1.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.0.3 for Kerbal Space Program Released v1.0.3 (for KSP 1.2.2) Make a little noise! (Part Deux)

for KSP v1.2.2

Summary

This release is nearly identical to v1.0.2, except that it was compiled against binaries from KSP v1.2.2 (released just before we published) and the version numbers have been advanced. While it appears that kOS v1.0.2 is compatible with KSP v1.2.2, we wanted to err on the side of caution and provide an explicitly compatible release. Please review the changelog for v1.0.2 if you are upgrading from an earlier version.

]]>
Thu, 08 Dec 2016 02:13:38 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.0.3 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.0.2 for Kerbal Space Program Released v1.0.2 Make A Little Noise!

for KSP v1.2.1 Downloads this release

BREAKING CHANGES

  • As always, if you use the compiler feature to make KSM files, you should recompile the KSM files when using a new release of kOS or results will be unpredictable.
  • Most in game settings are now integrated with KSP's difficulty settings window. You will be prompted to migrate existing settings when you load your save game. Telnet settings are still stored in the old config file, but everything else is now stored within the save file. pull request | documentation
  • Calls to resource suffixes on the stage bound variable are no longer rounded to 2 decimal places. Previously they were rounded to assist in detecting "zero" fuel, but they cause inequality issues when comparing to the newer stage:resources list or stage:resourceslex values.
  • The behavior of the resource suffixes on the stage bound variable has changed with regard to asparagus staging. If you have smaller tanks that can be staged, stage:liquidfuel will return 0 even if you still have an engine firing. This is a break from previous versions of kOS, but is aligned with the current UI design. Previous versions also aligned with the KSP UI, but the UI mechanic was updated with KSP 1.2.x

NEW FEATURES

  • Official release for KSP version 1.2.1!
  • kOS now has a procedural sound system! You can use it to play customized error tones or make your own musical notes. pull request | documentation
  • Support for CommNet and modifications to make RemoteTech and CommNet use similar systems. pull request | documentation
  • Trajectories integration enabled via new ADDONS:TR pull request | documentation
  • Added new setting for default terminal brightnes, and updated default value to 70% pull request | documentation
  • Added VELOCITY and ALTITUDEVELOCITY suffixes to `geocoordinates pull request | documentation
  • Added TONUMBER and TOSCALAR suffixes to string values for parsing numerical values pull request | documentation
  • New steeringmanager suffix ROLLCONTROLANGLERANGE to dictate the maximum value of ANGLEERROR for which the manager will attempt to control roll commit | documentation
  • KSM files are now gzip compressed internally, dramatically reducing the file size. Existing KSM files should still load, but see above for the recommendation to recompile all KSM files. pull request

BUG FIXES

  • Fix for throwing errors when another mod uses dynamic assembly pull request
  • Update Blizzy toolbar wrapper to the most recent version pull request
  • Fix for local kOS hard disks breaking when loading with 4 byte long files pull request
  • kOS no longer uses a write-only lock when writing to the archive, preventing an error when accessing a file opened for reading by another program pull request
  • Fix for duplicate functions/locks breaking ksm files pull request
  • Fix for null ref error when editing node suffixes on KSP 1.2.1 pull request
  • Fix for issue where a body with the same name as one of our bound variables would block access to said variable (specifically Eta in Galileo's Planet Pack blocked the eta bound variable) pull request
  • Fix for getting the science value and transmit value in sandbox mode pull request
  • Fix error where unlock all inside a trigger will try to unlock functions too pull request
]]>
Wed, 07 Dec 2016 05:14:20 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.0.2 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v1.0.1 for Kerbal Space Program Released v1.0.1 (for KSP 1.1.3) Let's take some input!

Why 1.1.3 and not 1.2?

We wanted to get the last bug fixes and new features into the hands of any users who might not update KSP to 1.2 right away. Traditionally there are some mods that take a while to update when KSP releases a new version, and many users choose to wait for all of their favorite mods to update before upgrading KSP. By releasing in conjunction with the update, we can ensure that as many users as possible have access to these latest updates. We will be releasing a version of kOS that is compatible with KSP 1.2 as soon as possible after the final build is released to the public.

BREAKING CHANGES

  • As always, if you use the compiler feature to make KSM files, you should recompile the KSM files when using a new release of kOS or results will be unpredictable.
  • The stage command/function now implements the yield behavior, waiting until the next physics tick to return. This ensures that all vessel stats are updated together. (https://github.com/KSP-KOS/KOS/pull/1807)

NEW FEATURES

Please check http://ksp-kos.github.io/KOS_DOC/changes.html for more detailed explanations for the new features.

BUG FIXES

]]>
Tue, 11 Oct 2016 23:05:39 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v1.0.1 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System 1.0.0 for Kerbal Space Program Released Hey let's stop calling it Beta

@dunbaratu Dunbaratu released this 3 hours ago About the name:

kOS has been around long enough that we figured it was long overdue for us to stop calling it 0.something. Lots of people are using it, and we're worried about backward compatibility enough that we're not really treating it like a Beta anymore. This version contains mostly a few things that we knew might break backward compatibility so we'd been putting them off for a long time. A jump to 1.0 seems a good time to add those changes.

Of course, it has lots of other changes for whatever else was being worked on since the last release. BREAKING CHANGES

As always, if you use the compiler feature to make KSM files, you should recompile the KSM files when using a new release of kOS or results will be unpredictable.
New Subdirectories ability has deprecated several filename commands such as delete, copy, and rename. They will still work, but will complain with a message every time you use them, as we may be removing them eventually. The new commands deletepath, copypath, and movepath described below are meant to replace them.
When using a RemoteTech antenna that requires directional aiming, in the past you could aim it at mission control with SETFIELD("target", "mission-control") and now you have to say SETFIELD("target", "Mission Control") instead, due to changes in RT's naming schemes.
Previously the Y and Z axes of SUN:VELOCITY:ORBIT were swapped. (#1764) This has been fixed so it is now the same as for any other body, however scripts might exist that had previously been swapping them back to compensate for this, and if there were they would now break since that swapping is no longer needed.

NEW FEATURES

Subdirectories: (http://ksp-kos.github.io/KOS_DOC/commands/files.html) You are now able to store subdirectories ("folders") in your volumes, both in the archive and in local volumes. To accomodate the new feature new versions of the file manipulation commands had to be made (please go over the documentation in the link given above). In the Archive, which is really your Ships/Script/ directory on your computer, these subdirectories are stored as actual directories in your computer filesystem. (For example, the file 0:/dir1/dir2/file.ks would be stored at Kerbal Space Program/Shipts/Script/dir1/dir2.file.ks on your real computer.) In local volumes, they are stored in the persistence.sfs savegame file like usual. (Pull Request discussion record: #1567)
    Boot subdirectory: (http://ksp-kos.github.io/KOS_DOC/general/volumes.html#special-handling-of-files-in-the-boot-directory) To go with Subdirectories, now you make a subdirectory in your archive called boot/, and put all the candidate boot files there. When selecting a boot file in the VAB or SPH, the selections are taken from there and need not contain the "boot_" prefix to the filename anymore. Old boot files will be grandfathered in that are named the old way, however.
    CORE:BOOTFILENAME is now a full path. i.e. boot/myfile.ks.
    PATH structure now allows you to get information about the new full subdirectories system from your scripts. (http://ksp-kos.github.io/KOS_DOC/structures/volumes_and_files/path.html)
    New RUNPATH command now allows any arbitrary string expression to be used as the name of the file to be run. i.e. set basename to "prog". set num to 1. runpath(basename+num, arg1). // same as run prog1(arg1). As part of the support for this, programs with a large number of RUN commands (or RUNPATH commands) should now take up a bit less of a memory footprint than they used to in their compiled form (and thus in KSM files too). (http://ksp-kos.github.io/KOS_DOC/commands/files.html#runpath-and-runoncepath)
Communication between scripts on different CPUs of the same vessel or between different vessels. (http://ksp-kos.github.io/KOS_DOC/commands/communication.html)
    A new structure, the Message, contains some arbitrary piece of data you choose (a number, a string, a list collection, etc), and some header information kOS will add to it that describes where it came from, when it was sent, and so on. What you choose to do with these arbitrary chunks of data is up to you. kOS only lets you send them. You design your own protocol for what the data means.
    If RemoteTech is installed, a connection is needed to send a message to another vessel (but not to a CPU on the same vessel). And, the message won't actually show up in the other vessel's queue until the required lightspeed delay.
    To handle KSP's inability to have different vessels far away from each other both fully loaded and active, you do have to switch scenes back and forth between distant vessels if you want them to have a conversation back and forth. Messages that were meant to arrive on a vessel while it wasn't within active loading range will wait in the recever's vessel queue until you switch to it, so you don't have to hurry and switch "in time" to get the message.
Added anonymous functions : (http://ksp-kos.github.io/KOS_DOC/language/anonymous.html) By placing arbitrary braces containing the body of a function anywhere within the script that an expression is expected, the compiler builds the function code right there and then returns a delegate of it as the value of the expression.
New 3rd-party addon framework (https://github.com/KSP-KOS/KOS/tree/develop/src/kOS/AddOns/Addon%20Readme.md) allows authors of other KSP mods to add hooks into kOS so that kOS scripts can interface with their mods more directly, without kOS developers having to maintain that code themselves in the kOS repository. (Pull Request discussion record: #1667)
allow scripted vessel launches KUNIVERSE:GETCRAFT(), KUNIVERSE:LAUNCHCRAFT(), KUNIVERSE:CRAFTLIST(), and KUNIVERSE:LAUNCHCRAFTFROM() allow you to script the changing of scenes and loading of vessels into those scenes. While this breaks the 4th wall quite a bit (how would an autopilot choose to manufacture an instance of the plane?), it's meant to help with script testing and scripts that try to repeatedly run the same mission unattended. (http://ksp-kos.github.io/KOS_DOC/structures/misc/kuniverse.html)
eta to SOI change: Added SHIP:OBT:NEXTPATCHETA to get the time to the next orbit patch transition (SOI change). (http://ksp-kos.github.io/KOS_DOC/structures/orbits/orbit.html#attribute:ORBIT:NEXTPATCHETA)
get control-from: Added SHIP:CONTROLPART to return the Part of the vessel that is currently set as its "control from here" part. (http://ksp-kos.github.io/KOS_DOC/structures/vessels/vessel.html#attribute:VESSEL:CONTROLPART)
maneuver nodes as a list:( New ALLNODES bound variable that returns a list of all the currently planned manuever nodes (the nodes you could iterate through with NEXTNODE, but rendered into one list structure). (http://ksp-kos.github.io/KOS_DOC/bindings#allnodes)
Several new pseudo-action-groups (akin to "panels on", that aren't action groups as far as stock KSP is concerned, but kOS treats them like action groups) were added. (http://ksp-kos.github.io/KOS_DOC/commands/flight/systems#kos-pseudo-action-groups)
Ability to get/set the navball mode (surface, orbital, target) with the NAVMODE bound variable: i.e. SET NAVMODE TO "SURFACE"..
UniqueSet structure. (http://ksp-kos.github.io/KOS_DOC/structures/collections/uniqueset.html) A collection intended for when all you care about is whether a equivalent object exists or doesn't exist yet in the collection, and everything else (order, etc) doesn't matter.

BUG FIXES

In some cases (#1661) the program wouldn't stop immediately when you execute a kuniverse command that reloads a save or switches scenes. It would instead finish out the remainder of the IPU instructions in the current physics tick. After the fix, causing a scene change (or reload) automatically stops the program right there since anything it does after that would be moot as the game is about to remove everything it's talking about from memory.
If using "Start on archive", with Remote Tech, a misleading "power starved" error was thrown when you reboot a probe that's out of antenna range. (#1363)
unchar("a") was apparently broken for a few months and we hadn't noticed. The root cause was that its implementation had to be edited to comply with the change that enforced the VM to only use kOS Structure types on the stack. The need for that change had been missed. (#1692)
Previously Infernal Robotics allowed you to move servos that weren't even on your own vessel and you shouldn't have direct control over. This has been fixed. (#1540)
Refactored previous non-working technique for quicksave/quickload to turn it into something that works. (#1372)
There were cases where using CTRL-C to abort a program would cause some old cruft to still be leftover in the VM's stack. This made the system fail to clear out the names of functions that were no longer loaded in memory, making it act like they were still reachable and call-able. (#1610)
Some types of Resource didn't contain the :DENSITY suffix like the documentation claimed they would. (#1623)
]]>
Mon, 15 Aug 2016 05:24:30 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/1.0.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v0.20.1 for Kerbal Space Program Released v0.20.1 KSP 1.1.2 and bug repair

The biggest reason for this release is to handle two game-breaking problems caused by recent alterations in the API that kOS hadn't adapted to correctly yet.

The "remit" of this release is purely to fix a few bugs, and patch up a few things where KSP 1.1 had changes we didn't catch. Mostly, that's cases where previously working code in kOS had now become a bug, but it also includes a few other bug fixes not related to KSP 1.1.

But any new features (rather than bug fixes) in the pipeline not directly related to that "remit" are not in this release.

BREAKING CHANGES

  • STEERINGMANAGER:SHOWRCSVECTORS and STEERINGMANAGER:SHOWENGINEVECTORS are now obsolete and will throw an error.

BUG FIXES

  • Infinitely growing mass: Realism Overhaul users could not use kOS anymore, because kOS was re-adding its small module mass to the part again and again each physics tick. Even though the mass of kOS is small, adding it to the part 25 times a second quickly made the vessel grow too massive to do anything with. The bug was not caught earlier because it only happened if kOS was added to parts other than the parts kOS ships with (i.e. by using ModuleManager), and those parts also had other mass-affecting modules on them. Although discovered in Realism Overhaul, the problem could have been affecting any users who used kOS in that same fashion. The cause was traced to an incorrect use of the new mass API by kOS and has been fixed. (https://github.com/KSP-KOS/KOS/pull/1644).
  • "SET TARGET TO FOO." while the terminal is open was failing. Now it works. (The kOS terminal locks out all other inputs so your keypresses don't affect the ship, but as of KSP 1.1 the "all" input lock it was using to do so also includes the ability to set target, which it didn't before.) (https://github.com/KSP-KOS/KOS/pull/1636)
  • Incorrect value for MeanAnomalyAtEpoch fixed. It was multiplying the value by the conversion factor for radians-to-degrees twice, rather than just once. (https://github.com/KSP-KOS/KOS/pull/1642)
  • GeoCoordinates were not serializing properly. Now they are. (https://github.com/KSP-KOS/KOS/pull/1615).
  • Finally fully obsoleted the years-old suffixes for trying to do antenna range the old way (before we just relied on Remote Tech to do antenna work for us). (https://github.com/KSP-KOS/KOS/pull/1607).
  • Bug fixes for catching a few more cases where staging or decoupling part of the craft away was still confusing SteeringManager into trying to lock out, or take control of, the wrong half of the craft. (https://github.com/KSP-KOS/KOS/pull/1544).

NEW FEATURES

  • KSP 1.1 now allows you to lock the gimbals for the three pitch/yaw/roll axes individually on engines, as 3 different settings, rather than just lock the whole gimbal for all directions. kOS now lets you access this ability (https://github.com/KSP-KOS/KOS/pull/1622).
]]>
Mon, 16 May 2016 04:38:31 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v0.20.1 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v0.20.0 for Kerbal Space Program Released v0.20.0 KSP 1.1 Hype!

for KSP v1.1.0 Downloads this release

This release is functionally identical to v0.19.3, it is recompiled against the KSP 1.1 release binaries (build 1230)

BUG FIXES

]]>
Wed, 20 Apr 2016 03:37:53 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v0.20.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v0.19.3 for Kerbal Space Program Released for KSP v1.0.5 Downloads this release

v0.19.3 Last (intended) 1.0.5 update.

(This is the last planned update to work with KSP 1.0.5 unless it breaks something big that requires an emergency patch.)

BREAKING CHANGES

NEW FEATURES

BUG FIXES

]]>
Tue, 05 Apr 2016 16:22:24 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v0.19.3 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v0.19.2 for Kerbal Space Program Released This release is here primarily to fix a problem that made the new v0.19.1 terminal unusable for users who have to use low resolution texture settings in the Unity graphics configuration panel.

BREAKING

  • Nothing new breaking in this version is known about.

NEW FEATURES

  • New alias KUNIVERSE:FORCEACTIVE() can be used instead of the longer name KUNIVERSE:FORCESETACTIVEVESSEL().
  • More robust use of the font_sml.png file allows for replacement of font_sml.png by the end-user. (However this may only be useful for a limited time, as Unity5 might make us implement the font differently anyway.)

BUG FIXES

]]>
Tue, 08 Mar 2016 06:27:51 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v0.19.2 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System v0.19.1 for Kerbal Space Program Released This release is a patch to v0.19.0, fixing some things found by the user community in the two days shortly after v0.19.0 released.

It also happens to contain a few terminal window features that were being worked on before v0.19.0 but were not deemed ready yet when 0.19.0 was released.

NEW FEATURES

  • PIDLoop tutorial section in the docs edited to mention new PIDLoop() function that did not exist back when that page was first written. (http://ksp-kos.github.io/KOS_DOC/tutorials/pidloops.html)
  • New Terminal GUI doodads and widgets: A brightness slider, and the ability to zoom the character width and height. Also made the transparency and dimming of the 'non-active' terminals a bit less severe so you can still read them when un-focused. Also, these new features can be script controlled by new suffixes, however it is unclear if that feature (doing it from a script) will remain in the future so use it with care: (http://ksp-kos.github.io/KOS_DOC/structures/misc/terminal.html)

BUG FIXES

]]>
Sun, 06 Mar 2016 00:08:39 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/v0.19.1 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System 0.19.0 for Kerbal Space Program Released BREAKING CHANGES
  • As usual, you must recompile any KSM files when using the new version.
  • Vecdraw :SCALE no longer applied to :START. Only applied to :VEC.
  • Varying power consumption might make it so if you have high IPU settings some designs might run out of power when they didn't before. (in most cases it should draw less power for most people).
  • !!!! Default extension of ".ks" is no longer applied to all new filenames created. But it still will be looked for when reading existing files if you leave the extension off !!!!
  • FileInfo information now moved to Volume (http://ksp-kos.github.io/KOS_DOC/structures/volumes_and_files/volume.html).
  • VOLUME:FILES was returning a LIST(), now it returns a LEXICON who's keys are the filename.
  • String sort-order comparisons with "<" and ">" operators were implemented wrongly and just compared lengths. Now they do a character-by-character comparison (case-insensitively). On the off chance that anyone was actually trying to use the previous weird length-comparison behavior, that would break.

NEW FEATURES

BUG FIXES

KNOWN issues

CONTRIBUTORS THIS RELEASE

(These are generated from records on Github of anyone who's Pull Requests are part of this release.) (Names are simply listed here alphabetically, not by code contribution size. Anyone who even had so much as one line of change is mentioned.)

Stephan Andreev (ZiwKerman) https://github.com/ZiwKerman Bert Cotton (BertCotton) https://github.com/BertCotton Kevin Gisi (gisikw) https://github.com/gisikw Peter Goddard (pgodd) https://github.com/pgodd Steven Mading (Dunbaratu) https://github.com/Dunbaratu Eric A. Meyer (meyerweb) https://github.com/meyerweb Tomek Piotrowski (tomekpiotrowski) https://github.com/tomekpiotrowski Brad White (hvacengi) https://github.com/hvacengi Chris Woerz (erendrake) https://github.com/erendrake (repository owner) (name not public in github profile) (alchemist_ch) https://github.com/AlchemistCH (name not public in github profile) (tdw89) https://github.com/TDW89

]]>
Wed, 02 Mar 2016 05:38:49 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/0.19.0 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System
kOS: Scriptable Autopilot System 0.18.2 for Kerbal Space Program Released [Insert witty title here :-P]

BREAKING CHANGES

  • As usual, you MUST recompile all KSM files before running them on the new version. Some of the changes have altered how the VM works.
  • Nothing else... we hope.

NEW FEATURES

BUG FIXES

]]>
Wed, 17 Feb 2016 03:17:14 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System/download/0.18.2 https://spacedock.info/mod/60/kOS:%20Scriptable%20Autopilot%20System