Skip to content

Releases: KSP-RO/TestFlight

v0.4.6 - Alpha - Stock

03 Feb 21:22
Compare
Choose a tag to compare
Pre-release

Alpha Release

This is an Alpha Development Release and thus should be assumed to contain bugs that may or make not break your game. Use of this release in a clean test save game is highly recommended.

Change Log

  • FIX #21 When triggering a random failure, skip ones marked as disabled
  • FIX #22 Only add positive flight data. Should resolve issue with 0 or negative du showing in MSD
  • NEW #23 Parts can now gain bonus flight data when they fail, and when failures are repaired. After all, we're supposed to learn from our failures! New properties duFail and duRepair added to Failure modules and implemented automatically by the base class.
  • NEW #26 Failures can be "one-shot" which means the bad stuff from the failure happens but the part is not placed into a failed state and continues to operate (if possible). New property oneShot added to Failure modules.
  • NEW #29 Support for EngineIgnitor mod. The IgnitionFail Failure Module can optionally restore a used up ignition when it fails. New property restoreIgnitionCharge added to TestFlightFailure_IgnitionFail Module
  • FIX EngineCycle Reliability was incorrectly modifying Base Failure Rate, and was being enabled when it should have been. Both issues fixed.
  • NEW #31 Instead of defining a reliabilityCurve for every one of the possible 33 scopes, even when they were the same, a "default" scope curve can now be used and TestFlightReliability will use the default scope if a specific one is not found.
  • [RealismOverhaul] Removed accidental double definition of Aerobee-150.
  • [RealismOverhaul] Re-added use of IgnitionFail failure after bugs were fixed.
  • [RealismOverhaul] Added large chance of ignition failure to X-405 Vanguard.
  • [RealismOverhaul] WAC-Corporal/Aerobee Line, X-405, and AJ-10-37/42 all use EngineCycle Reliability now, which defines a "bathtub" curve for reliability over the expected operating cycle of the engine, based on real manufacturer specs. This means the engine will have an increase in failure rate for the first few seconds of operation, smooth out to normal Base Failure Rate for the "Rated Burn Time" of the engine, and the the failure rate will slowly start increasing as the engine exceeds the manufacturer's "Rated Burn Time". Rated burn times: WAC/Aerobee: 47 seconds, X-405: 145 seconds, AJ-10-37/42:L 115 seconds.

v0.4.6 - Alpha - RealismOverhaul

03 Feb 21:23
Compare
Choose a tag to compare
Pre-release

Alpha Release

This is an Alpha Development Release and thus should be assumed to contain bugs that may or make not break your game. Use of this release in a clean test save game is highly recommended.

Change Log

  • FIX #21 When triggering a random failure, skip ones marked as disabled
  • FIX #22 Only add positive flight data. Should resolve issue with 0 or negative du showing in MSD
  • NEW #23 Parts can now gain bonus flight data when they fail, and when failures are repaired. After all, we're supposed to learn from our failures! New properties duFail and duRepair added to Failure modules and implemented automatically by the base class.
  • NEW #26 Failures can be "one-shot" which means the bad stuff from the failure happens but the part is not placed into a failed state and continues to operate (if possible). New property oneShot added to Failure modules.
  • NEW #29 Support for EngineIgnitor mod. The IgnitionFail Failure Module can optionally restore a used up ignition when it fails. New property restoreIgnitionCharge added to TestFlightFailure_IgnitionFail Module
  • FIX EngineCycle Reliability was incorrectly modifying Base Failure Rate, and was being enabled when it should have been. Both issues fixed.
  • NEW #31 Instead of defining a reliabilityCurve for every one of the possible 33 scopes, even when they were the same, a "default" scope curve can now be used and TestFlightReliability will use the default scope if a specific one is not found.
  • [RealismOverhaul] Removed accidental double definition of Aerobee-150.
  • [RealismOverhaul] Re-added use of IgnitionFail failure after bugs were fixed.
  • [RealismOverhaul] Added large chance of ignition failure to X-405 Vanguard.
  • [RealismOverhaul] WAC-Corporal/Aerobee Line, X-405, and AJ-10-37/42 all use EngineCycle Reliability now, which defines a "bathtub" curve for reliability over the expected operating cycle of the engine, based on real manufacturer specs. This means the engine will have an increase in failure rate for the first few seconds of operation, smooth out to normal Base Failure Rate for the "Rated Burn Time" of the engine, and the the failure rate will slowly start increasing as the engine exceeds the manufacturer's "Rated Burn Time". Rated burn times: WAC/Aerobee: 47 seconds, X-405: 145 seconds, AJ-10-37/42:L 115 seconds.

v0.4.5.1 - Alpha - Realism Overhaul

03 Feb 06:26
Compare
Choose a tag to compare
Pre-release

Alpha Release

This is an Alpha Development Release and thus should be assumed to contain bugs that may or make not break your game. Use of this release in a clean test save game is highly recommended.

Change Log

  • Removed IgnitionFail failure from Aerobee because it has some bugs
  • Tweaked Aerobee reliability and tech transfer values
  • Added initial config for X-405 Vanguard
  • Added initial config for AJ-10-37 and AJ-10-47

v0.4.5 - Alpha - Stock

03 Feb 02:48
Compare
Choose a tag to compare
Pre-release

Alpha Release

This is an Alpha Development Release and thus should be assumed to contain bugs that may or make not break your game. Use of this release in a clean test save game is highly recommended.

Highlights

  • Initial release of TestFlight with Realism Overhaul compatibility
  • Support for MFT/RF ModuleEngineConfig system
  • Support for Technology Transfer from part to part
  • Initial configs for RealismOverhaul

Stock & Realism Overhaul Support

As of this release, TestFlight now officially supports Realism Overhaul. Currently configs exist for only a single part, the Aerobee engine line. Each version of the Aerobee has different failure rates based on real data, and tech transfer exists throughout the line. Feedback on this is most appreciated!

Moving forward there will be separate releases for Stock and Realism Overhaul so that each contains the correct configs. Choose the one you want and download that. They will be clearly marked as Stock or Realism Overhaul.

They both are the same code and the same Plugins, it is just the ModuleManager configs that differ.

Change Log

  • All TestFlight modules can now use a new property configuration. If specified TestFlight will only enable that module if the part's currently active MFT/RF configuration matches the specified value. This allows configuration of ModuleEngineConfig parts as if they were their own separate parts.
  • DataRecorder runs off operatingTime now and therefore will not record data if the part is in a failed state
  • API: Added new methods for retrieving TestFlight modules on a part.
  • New Module: Added new Failure module, TestFlightFailure_IgnitionFail which is works a bit different than most, and would be considered a FailureTrigger module. It monitors for an engine to change states from not ignited, to ignited, and applies a chance for that ignition to fail. This chance is based on FlightData and the curve can be configured in .cfg file.
  • Initial configs for RO starting with the WAC-Corporal/Aerobee engine line.
  • operatingTime is no longer capped at MTBF so parts can still fail after MTBF has passed
  • Added new class to TestFlightAPI to wrap up the annoying duality of ModuleEngines and ModulesEnginesFX
  • New property added to all Module Interfaces TestFlightEnabled determines if the module is currently running under TestFlight
  • Fixed bug with "0 time to repair" failures not giving the Repair Button
  • Fixed bug with failures that had no repair config breaking the system
  • Added Technology Transfer system that allows partial flight data to transfer from one part to another part that is considered to be a related technology path.
  • Swapped to using System.Random for random numbers since apparently KSP spews out the same random sequence each time you load a game.
  • Added instance of System.Random to TestFlightCore and TestFlightManagerScenario for use by other modules.
  • Fixed issue #16 - parts continue to accrue operating time even when failed
  • Fixed issue #19 - operating time wasn't respecting IsPartOperating
  • More adjustments to MSD window size to avoid horizontal scrolling
  • Updates to build system to allow building Stock and RealismOverhaul configs as needed

v0.4.5 - Alpha - Realism Overhaul

03 Feb 02:43
Compare
Choose a tag to compare
Pre-release

Alpha Release

Note: This is a re-relase of v0.4.2 with (hopefully)proper packaging.

This is an Alpha Development Release and thus should be assumed to contain bugs that may or make not break your game. Use of this release in a clean test save game is highly recommended.

Highlights

  • Initial release of TestFlight with Realism Overhaul compatibility
  • Support for MFT/RF ModuleEngineConfig system
  • Support for Technology Transfer from part to part
  • Initial configs for RealismOverhaul

Realism Overhaul Support

As of this release, TestFlight now officially supports Realism Overhaul. Currently configs exist for only a single part, the Aerobee engine line. Each version of the Aerobee has different failure rates based on real data, and tech transfer exists throughout the line. Feedback on this is most appreciated!

Change Log

  • All TestFlight modules can now use a new property configuration. If specified TestFlight will only enable that module if the part's currently active MFT/RF configuration matches the specified value. This allows configuration of ModuleEngineConfig parts as if they were their own separate parts.
  • DataRecorder runs off operatingTime now and therefore will not record data if the part is in a failed state
  • API: Added new methods for retrieving TestFlight modules on a part.
  • New Module: Added new Failure module, TestFlightFailure_IgnitionFail which is works a bit different than most, and would be considered a FailureTrigger module. It monitors for an engine to change states from not ignited, to ignited, and applies a chance for that ignition to fail. This chance is based on FlightData and the curve can be configured in .cfg file.
  • Initial configs for RO starting with the WAC-Corporal/Aerobee engine line.
  • operatingTime is no longer capped at MTBF so parts can still fail after MTBF has passed
  • Added new class to TestFlightAPI to wrap up the annoying duality of ModuleEngines and ModulesEnginesFX
  • New property added to all Module Interfaces TestFlightEnabled determines if the module is currently running under TestFlight
  • Fixed bug with "0 time to repair" failures not giving the Repair Button
  • Fixed bug with failures that had no repair config breaking the system
  • Added Technology Transfer system that allows partial flight data to transfer from one part to another part that is considered to be a related technology path.
  • Swapped to using System.Random for random numbers since apparently KSP spews out the same random sequence each time you load a game.
  • Added instance of System.Random to TestFlightCore and TestFlightManagerScenario for use by other modules.
  • Fixed issue #16 - parts continue to accrue operating time even when failed
  • Fixed issue #19 - operating time wasn't respecting IsPartOperating
  • More adjustments to MSD window size to avoid horizontal scrolling
  • Updates to build system to allow building Stock and RealismOverhaul configs as needed

v0.4.2 - Alpha - Realism Overhaul

02 Feb 22:00
Compare
Choose a tag to compare
Pre-release

Alpha Release

This is an Alpha Development Release and thus should be assumed to contain bugs that may or make not break your game. Use of this release in a clean test save game is highly recommended.

Important Installation Note

Currently the ZIP file will contain configs for both Stock and Realism Overhaul. You must delete the folder for whichever you do not need or else who knows what will happen.

Highlights

  • Initial release of TestFlight with Realism Overhaul compatibility
  • Support for MFT/RF ModuleEngineConfig system
  • Support for Technology Transfer from part to part
  • Initial configs for RealismOverhaul

Realism Overhaul Support

As of this release, TestFlight now officially supports Realism Overhaul. Currently configs exist for only a single part, the Aerobee engine line. Each version of the Aerobee has different failure rates based on real data, and tech transfer exists throughout the line. Feedback on this is most appreciated!

Change Log

  • All TestFlight modules can now use a new property configuration. If specified TestFlight will only enable that module if the part's currently active MFT/RF configuration matches the specified value. This allows configuration of ModuleEngineConfig parts as if they were their own separate parts.
  • DataRecorder runs off operatingTime now and therefore will not record data if the part is in a failed state
  • API: Added new methods for retrieving TestFlight modules on a part.
  • New Module: Added new Failure module, TestFlightFailure_IgnitionFail which is works a bit different than most, and would be considered a FailureTrigger module. It monitors for an engine to change states from not ignited, to ignited, and applies a chance for that ignition to fail. This chance is based on FlightData and the curve can be configured in .cfg file.
  • Initial configs for RO starting with the WAC-Corporal/Aerobee engine line.
  • operatingTime is no longer capped at MTBF so parts can still fail after MTBF has passed
  • Added new class to TestFlightAPI to wrap up the annoying duality of ModuleEngines and ModulesEnginesFX
  • New property added to all Module Interfaces TestFlightEnabled determines if the module is currently running under TestFlight
  • Fixed bug with "0 time to repair" failures not giving the Repair Button
  • Fixed bug with failures that had no repair config breaking the system
  • Added Technology Transfer system that allows partial flight data to transfer from one part to another part that is considered to be a related technology path.
  • Swapped to using System.Random for random numbers since apparently KSP spews out the same random sequence each time you load a game.
  • Added instance of System.Random to TestFlightCore and TestFlightManagerScenario for use by other modules.
  • Fixed issue #16 - parts continue to accrue operating time even when failed
  • Fixed issue #19 - operating time wasn't respecting IsPartOperating
  • More adjustments to MSD window size to avoid horizontal scrolling
  • Updates to build system to allow building Stock and RealismOverhaul configs as needed

v0.4.0 Alpha

28 Jan 22:53
Compare
Choose a tag to compare
v0.4.0 Alpha Pre-release
Pre-release

Alpha Release

This is an early alpha development release and thus should be assumed to be buggy, and capable of breaking your game and game saves. Please do not test this in a game save that you care about!

IMPORTANT NOTE Due to many changes in how settings are handled, and stored, as well as the removal and addition of different settings than previous releases, please completely delete any previous install of TestFlight before installing this version. In addition it is highly recommended to start a new save game for this release.

Highlights

  • TestFlight API completely overhauled and is not backwards compatible
  • Totally rewritten underlying core systems
  • Migrated from a polling "pull" style system to a "push" style system where the individual parts are responsible for their own state, and the core manager/GUI only asks for that state when needed to update the GUI or save to disk
  • Brand new Editor Window allows you to inspect your parts while building.
  • Initial implementation of new Mean Time Between Failure (MTBF) system.

MTBF System

Some things to understand about the new MTBF system.

  1. MTBF does not mean time until failure. A MTBF of 60 seconds does not mean your part will fail in 60 seconds. It could fail well before 60s or well after 60s. But on average it will fail sometime around 60s. Maybe.
  2. Probability is a bitch. Just because something is highly unlikely does not mean it is impossible.

Important testing in this update is "How does it feel?". I know this is subjective and everyone will have a different opinion, but please let me know how it feels to you. Both on early flights, and later flights once your parts have gained reliability. I have some knobs I can tune.

Image of TestFlightEditorWindow

In the VAB you will now see TestFlight on the AppLauncher. Click to open the Editor Window. The Editor Window will show you details on your parts so you can make decisions on what to use on your craft. It shows you the flight data and reliability of the part for all scopes with recorded flight data.

To use:

  1. Open the window by clicking the TestFlight icon in the AppLauncher bar
  2. Mouse over parts in the parts bin on the left. As you mouse over parts, you will see that part's data in the window.
  3. Right click a part in the parts bin to lock the window to that part. Once locked, you can move your mouse wherever and it will continue to show the data from the locked part. Right click th same part again to unlock the window, or right click a new part to change the lock to that part.
  4. Left clicking a part to add it to the craft will automatically unlock the window if it is locked.

As with the main TestFlight window, you can click the "Lock Window" button to lock or unlock the window to the dock. If unlocked, you can position it wherever you want.

API Changes

The TestFlight API is not backwards compatible with previous versions
This release contains a completely overhauled API. If you have written a module for TestFlight it will need to be updated to use the new API.

The good news is that while the API got a lot more flexible and a lot more powerful,most of the changes for now are in the Core, not the plugin modules. Changes to compile against this release will probably be minor.

Change Log

  • Rewrote core scenario code. TestFlightManagerScenario is now only a data store for the persistent data, and contains no appreciable game logic
  • Redesigned TestFlightCore API to accommodate both the new "push" method as well as upcoming changes to the underlying reliability and failure architecture
  • Flight Data and Flight Time now stored as doubles
  • Implemented brand new Test Flight API
  • Changes to ITestFlightCore interface
  • Changes to ITestFlightDataRecorder interface
  • Changes to ITestFlightReliability interface
  • Core system refreshes status more often now that there is less of a performance hit
  • Changed method of configuring how FlightData converts into Reliability in the config files. This is now done using a FloatCurve which allows the modder to make it as simple or as complex as desired
  • Fixed a bug that caused reliability to not load properly when going through the VAB with a craft
  • Fixed a bug causing "sub" modules to load before the Core and therefore never attaching properly
  • Added new Editor Window to see part's flight data and reliability while building
  • Defer loading of prefab data to Start() in case KSP is being slothful. Should fix reliability not loading correctly in Flight.
  • Initial implementation of new MTBF system
  • MSD now shows MTBF
  • MSD now shows Failure Rate
  • Make font in MSD smaller, and adjusted window to accommodate new data
  • Updated settings pane in MSD to remove no longer used settings, and rename/tweak ones that are left.
  • New Reflection Interface for other mods to integrate with TestFlight. This is still a WIP and feedback is more than welcome.
  • Fix issue #11 - Settings Dropdown List hard to read
  • Fix issues #14 - Data rate multiplier being incorrectly applied and giving zillions of data units (or none!)
  • New API methods to allow repairs to take time to complete
  • Expanded Reflection Interface and API
  • MSD can now show failure rate in addtion to MTBF
  • failure rate in MSD now properly shows the 'worst' momentary failure rate
  • DataRecorder modules can now control when a part is considered "operating"
  • Mission time is now calculated from activation of first stage, not from MET which KSP does not start until you leave the pad. This means two main things.
    • Engine test stands are a thing
    • The practice of igniting your first stage before releasing the launch clamps is a good one, to ensure you engine(s) are ignited and running properly.
  • Added new Reliability module that increase the failure rate of an engine for the first 5 seconds after ignition. This is also a sample of the power of the new system to do things like this! Currently enabled on liquid engines.
  • Added new API methods to control flow of Flight Data
    • SetDataRateLimit()
    • SetDataCap()
  • Changed failure checks to be a constant chance of failure, rather than increasing towards MTBF
  • Added Travis CI integration for continuous integration testing of commits, and automated builds.
  • TestFlight configs are now built in JSON and then compiled to standard ModuleManager config format upon build and release. This standardizes the configs, as well as makes them easier to write by removing redundancy and allowing re-use of setups.

v0.4.0 Experimental 6

26 Jan 05:41
Compare
Choose a tag to compare
v0.4.0 Experimental 6 Pre-release
Pre-release

Experimental Release

This is an experimental release of a development branch. This version is released to allow people to test upcoming changes and should be considered unstable and buggy. Do not use an experimental release in any save you care about.

Change Log

  • Expanded Reflection Interface and API
  • MSD can now show failure rate in addtion to MTBF
  • failure rate in MSD now properly shows the 'worst' momentary failure rate
  • DataRecorder modules can now control when a part is considered "operating"
  • Mission time is now calculated from activation of first stage, not from MET which KSP does not start until you leave the pad. This means two main things.
    • Engine test stands are a thing
    • The practice of igniting your first stage before releasing the launch clamps is a good one, to ensure you engine(s) are ignited and running properly.
  • Added new Reliability module that increase the failure rate of an engine for the first 5 seconds after ignition. This is also a sample of the power of the new system to do things like this! Currently enabled on liquid engines.

v0.4.0 Experimental 7

26 Jan 16:40
Compare
Choose a tag to compare
v0.4.0 Experimental 7 Pre-release
Pre-release

Experimental Release

This is an experimental release of a development branch. This version is released to allow people to test upcoming changes and should be considered unstable and buggy. Do not use an experimental release in any save you care about.

Change Log

  • Added new API methods to control flow of Flight Data
    • SetDataRateLimit()
    • SetDataCap()

v0.4.0 Experimental 4

20 Jan 04:13
Compare
Choose a tag to compare
v0.4.0 Experimental 4 Pre-release
Pre-release

Experimental Release

This is an experimental release of a development branch. This version is released to allow people to test upcoming changes and should be considered unstable and buggy. Do not use an experimental release in any save you care about.

Highlights

Initial implementation of new Mean Time Between Failure (MTBF) system.
Due to major underlying data changes you must start a new saved game for this release, and do not use any previously saved craft files

Some things to understand about the new MTBF system.

  1. MTBF does not mean time until failure. A MTBF of 60 seconds does not mean your part will fail in 60 seconds. It could fail well before 60s or well after 60s. But on average it will fail sometime around 60s. Maybe.
  2. Probability is a bitch. Just because something is highly unlikely does not mean it is impossible.
  3. As a part's operating time approaches the MTBF its change to fail increases. Things are currently tuned so that at Operating Time = MTBF, the part has a 50% chance to fail.

Important testing in this update is "How does it feel?". I know this is subjective and everyone will have a different opinion, but please let me know how it feels to you. Both on early flights, and later flights once your parts have gained reliability. I have some knobs I can tune.

Also please note that I havent' done up and real configs yet, so right now every part has the same starting MTBF and the Flight Data -> Failure Rate conversion.

Change Log

  • Initial implementation of new MTBF system
  • MSD now shows MTBF
  • MSD now shows Failure Rate
  • Make font in MSD smaller, and adjusted window to accommodate new data
  • Updated settings pane in MSD to remove no longer used settings, and rename/tweak ones that are left.