Skip to content

Releases: KSP-RO/TestFlight

TestFlight 1.5.4.0 Beta 2

26 Mar 08:14
Compare
Choose a tag to compare
Pre-release
  • FIX: Fixed internal burn time handling on TestFlightReliability_EngineCycle
  • FIX: Fixed major bug that was causing time handling to be truncated, causing part updates to happen less and less frequently the longer your save went on
  • FIX: Moved TestFlight settings file to PluginData so that it doesn't cause ModuleManager recaching when settings change. Important Note: TestFlight will automatically migrate the settings file for you the first time, but it won't be able to clean up the old file. Once migration happens you can freely delete the old file if desired.
  • FIX: Fixed to RND Teams getting reset due to a race condition during RND scenario load.
  • FIX: Fixed Editor R&D Window position not being properly read from settings on initial load.

TestFlight v1.5.4.0 Beta 1

24 Mar 18:02
Compare
Choose a tag to compare
Pre-release

1.5.4.0 Beta 1

Highlights

The TestFlight R&D System is finally here! It has been teased forever by the nonfunctional R&D tab seen in the TestFlight window in the KSC screen, but now it is finally implemented.

The R&D system is an optional feature that allows you to spend funds and time to increase part reliability without actually flying them and risking bad things happening. Gaining data through flight will still often be quicker, but not as safe. R&D will be safer but slower and cost funds. The choice is yours. Parts do have maximum R&D limits however, so while engineers can get you to a better reliability before flight testing, they won't get you all the way.

R&D can be assigned to any supported part while in the editor constructing your vessel. Simply right click on the part and click the R&D Window button to toggle the R&D window. Here you can assign one of several teams to begin researching that part. Choose the one that works for you, balancing time and cost.

Every research cycle, which defaults to one day but may be changed by other mods, your part will receive flight data assigned to it by the research team, and funds will be subtracted.

You can stop/pause/resume research at any time either in the editor or as a shortcut by using the R&D tab in the main KSC screen. Research will also auto stop if the part reaches its maximum R&D level.

In addition to the R&D system, I also took this time to redo how TestFlight information is displayed in the editor. The old TF window in the editor is now gone, and is replaced by the new R&D window for assigning research and a new "Info Overlay" window which can give you detailed TestFlight information on any placed part with a simple Middle Click.

Important Notes - Upgrade Notes

As with all betas it is recommended that you start a new save for testing, however this release should have no upgrade issues with one exception. If you had previously been running early dev releases of this version, there has been a change to how active research teams are saved. It is highly suggested in this case that you stop all existing research before upgrading.

Changes

  • NEW: Parts no longer can gain data while in the PRELAUNCH situation. This means no more static test firing. The new R&D system should be used instead if you don't want to risk parts on an actual flight.
  • NEW: Expanded Info window data for Core and Reliability modules
  • FIX: Major bug fix that was preventing pretty much all modules from properly attaching!
  • NEW: Placed parts in Editor now have a quick info overlay window that can be accessed by right clicking on the place part. This info window will display TestFlight information on the part.
  • NEW-API: TestFlight modules now all have an interface method for GetTestFlightInfo which is used to return data the module desires to be displayed in the Editor Info window
  • NEW-API: Interop changes now fire an event on the active Core module allowing for reactions to the change.
  • FIX: Fix duplicate R&D Window buttons showing up in editor tweakables.
  • NEW: R&D Window in Editor now displays information on how the system works, how much teams cost and how many points they contribute
  • NEW: R&D settings can no be configured by other mods using Confignodes. Place all settings in a node named “TFRNDSETTINGS”.updateFrequency is a double indicating how often the R&D teams tick. Value is in seconds and the default is 86400 or 1 day.
  • NEW: R&D Teams can be configured by mods using a Config node. For each desired team add a node named “TEAM” under the main “TFRNDSETTINGS” node with the following properties: points indicates the amount of research points (directly mapped to data units) generated by the team per update. Default is 100. costFactor indicates the cost per point of the research team. Defaults to 1. Added ConfigNodeExtensions from @stupid_chris with license information.
  • NEW: TestFlight supported parts in the Editor now have a right click menu button R&D Window which allows you to quickly open up a window to control research team allocation for the part.
  • NEW: TestFlight now has a new Research and Development feature. This R&D System is optional, but allows you to trade off time and funds for increased part reliability. Rather than risking failures during a mission with low reliability parts, you can instead assign engineering teams to work on the parts over time, slowly increasing the part reliability without risk.
  • NEW-CONFIG: New property added to ITestFlightCore to support R&D: rndMaxData defines the maximum amount of flight data that can be obtain by using engineering teams. This is defined in absolute units and if not present, R&D ill cap out at 75% of the part's maximum data
  • NEW-CONFIG: New property added to ITestFlightCore to support R&D: rndRate defines the speed at which the part is research by engineering teams. This is a multiplier against the number of points generated by a team each cycle and defaults to 1, IE no modification.
  • NEW-CONFIG: New property added to ITestFlightCore to support R&D: rndCost defines the cost at which the part is research by engineering teams. This is a multiplier against the cost of the team each cycle and defaults to 1, IE no modification.
  • FIX: The following failures will re-apply themselves on loading a game: EnginePerformanceLoss, LockGimbal, ReducedMaxThrust, ResourceLeak
  • NEW: TestFlightReliability_EngineCycle can now optionally modify accumulated burn time based on the actual thrust output of the engine. This is defined as a modifier curve using the FloatCurve thrustModifier
  • NEW: TestFlightReliability_EngineCycle can now optionally decaythe used burn time on an engine when the engine is turned off. Can bedefined by using the property idleDecayRate. This value is directlysubtracted from the engine's current burn time each second, so a valueof 1 would be an approximate 1:1 time decay. This can optionally allowengines to have extended usage when shut off during coast periods.Note that this only kicks in if the engine is shut off (not ignited).
  • NEW: TestFlightFailure_IgnitionFail can now apply an additional modifier to the chance of ignition based on the number of previous ignitions used. Use the FloatCurve ingitionUseMultiplier. This is a straight multiplier and thus values below 1 will lower the chance of the engine igniting and values above 1 will increase the chances.
  • NEW: TestFlightFailure_IgnitionFail can now cause an additionalfailure to occur if the ignition fails. The chance of this occurringcan be set in the property additionalFailChance and is a value 0-1f,with default of 0. If this additional failure triggers then theengine will receive one of the existing random failures assigned to thepart.
  • NEW-API: Add new property Failed to ITestFlightFailure interface.
  • FIX: Persist the failed state on a part
  • NEW: Add EngineModuleWrapper method to set the number of ignitions directly.
  • NEW: ShutdownEngine failure now also removes all ignitions from the engine. They are restored is the failure is repaired.
  • NEW-API: Add method to EngineModuleWrapper to return the current number of ignitions on an engine. int GetIgnitionCount()
  • NEW-API: Added new functions to EngineModuleWrapper to Add and Remove ignitions from compatible engines. void AddIgnitions(int numIgnitions) and void RemoveIgnitions(int numIgnitions) Passing < 0 to RemoveIgnitions will remove all ignitions on the engine.

TestFlight 1.5.3.0

17 Mar 00:48
Compare
Choose a tag to compare
  • NEW: New Failure module EnginePerformanceLoss causes the engine's Isp to degrade by an amount specified in the config property ispMultiplier. A second property ispMultiplierJitter can be used to add some small extra random variance to the degredation
  • NEW: TestFlightInterop now adds an intervop value named kspPartName which is the internal KSP name of the underlying part. This does not change. Can be used in config queries and should be used instead of blank queries or queries with just part names. config = kspPartName = squadFoo.
  • CHANGE: Internally, any empty configuration string is coerced into kspPartname = squadFoo using the new interop value and the parsed part name.
  • FIX: If a part has starting flight data from the config, add that to the scenario data store when first initializing it. Should fix issue with needing to record past the startFlightData before it would stick.
  • NEW-API: Added TestFlightPartData.AddValue and overloaded versions for int, float, and double that do what it says on the tin.
  • NEW-API: Added TestFlightPartData.ToggleValue for bools
  • NEW-API: AddedTestFlightManagerScenario.AddFlightDataForPartName helper function to add to existing flight data for a part.
  • CHANGE-API: Renamed TestFlightPartData.AddValue to TestFlightPartData.SetValue following in accordance with the previous similar change to TestFlightManagerScenario which wraps these for convenience.
  • CHANGE: Removed persistence from TestFlightCore.startFlightDataas it is not dynamic.
  • CHANGE: TestFlightFailure_ResourceLeak - Use System.Random from TestFlightCore instead of Unity's broken random.
  • CHANGE: All RealismOverhaul configs have been removed from TestFlight and are now managed and provided by Realism Overhaul directly.
  • CHANGE: TestFlight Realism Overhaul Config pack is no longer built or provided by TestFlight.
  • CHANGE: Removed Aerobee engine line from RealismOverhaul configs, as these configs now live in the RO project
  • NEW: Reliability modules for SkinTemperature and InternalTemperature

TestFlight 1.5.3 Beta 1

11 Mar 23:01
Compare
Choose a tag to compare
Pre-release
  • NEW: New Failure module EnginePerformanceLoss causes the engine's Isp to degrade by an amount specified in the config property ispMultiplier. A second property ispMultiplierJitter can be used to add some small extra random variance to the degredation
    Use aliased format for kspPartNames when coerced from blank string as it is cleaner.
  • NEW: TestFlightInterop now adds an intervop value named kspPartName which is theinternal KSP name of the underlying part. This does not change. Can be used in config queries and should be used instead of blank queries or queries with just part names. config = kspPartName = squadFoo.
  • CHANGE: Internally, any empty configuration string is coercedinto kspPartname = squadFoo using the new interop value and theparsed part name.
  • FIX: If a part has starting flight data from the config, add that to the scenario data store when first initializing it. Should fix issue with needing to record past the startFlightData before it would stick.
  • NEW-API: Added TestFlightPartData.AddValue and overloaded versions for int, float, and double that do what it says on the tin.
  • NEW-API: Added TestFlightPartData.ToggleValue for bools
  • NEW-API: AddedTestFlightManagerScenario.AddFlightDataForPartName helper function toadd to existing flight data for a part.
  • CHANGE-API: Renamed TestFlightPartData.AddValue to TestFlightPartData.SetValue following in accordance with the previous similar change to TestFlightManagerScenario which wraps these for convenience.
  • CHANGE: Removed persistence from TestFlightCore.startFlightDataas it is not dynamic.
  • CHANGE: TestFlightFailure_ResourceLeak - Use System.Random from TestFlightCore instead of Unity's broken random.
  • CHANGE: All RealismOverhaul configs have been removed from TestFlight and are now managed and provided by Realism Overhaul directly.
  • CHANGE: TestFlight Realism Overhaul Config pack is no longer built or provided by TestFlight.Updated build process to omit RO configsUpdated Netkans (this also needs to be done with CKAN)
  • CHANGE: Removed Aerobee engine line from RealismOverhaul configs, as these configs now live in the RO project
  • NEW: Reliability modules for SkinTemperature and InternalTemperature

TestFlight v1.5.2.0

08 Mar 05:14
Compare
Choose a tag to compare

1.5.2.0

IMPORTANT

This release has some changes and fixes that can affect existing saves and .craft files.

  • A change to how part names are determined will cause some parts to be registered with a new name that no longer matches what might already be stored in the save file. In this case those parts will reset to 0 data!
  • A fix to how data is persisted in the .craft files has been fixed. This bug could cause saved .craft to not initialize properly and thus never gain any data from previous flights. This bug has been fixed however the fix is not retroactive and thus will only affect new saved craft and not fix old ones.

CHANGES

  • CHANGE: TestFlightReliability_DynamicPressure - Clamp evaluated dynamic pressure reliability curve to TestFlightUtil.MIN_FAILURE_RATE
  • CHANGE: DynamicPressure minimum modifer value now configurable
  • CHANGE: TestFlightContracts linked to latest version (1.9.7) of ContractConfigurator
  • CHANGE Support Passive RT antennas as well.
  • API CHANGE: TestFlightScenario.AddValue methods have been renamed to SetValue as that more accurately represents how they function (setting an absolute value). New methods have been added to the Scenario called AddValue that do just that, taking the existing stored value and adding to it. Obviously not available for string and bool types.
  • API NEW: Added TestFlightScenario.ToggleValue(string key, booldefaultValue). This method will either take the existing stored value and set the opposite (so false to true, true to false) or if there is no existing value it will set the defaultValue
  • FIX Part.name is unreliable. Use a corrected version of the part name (code borrowed from RealFuels) that should be reliable.
    Spelling ftw
  • FIX: Fixed duplicate TestFlightInterop modules on some parts that could cause errors on the RL10x2 series and LR91-AJ series engines
  • NEW: Light bulb flickering failure
  • NEW: MaxQ reliability module to lower reliability at high Q
  • FIX: Science failures now have experimentID to support multiple experiments
  • CHANGE Start XLR11 at 0 data.
  • FIX Increase data rates for XLR11, XLR99.
  • CHANGE ResourceLeak now supports resource to leak "all"; persistence fixed, refactored to use leak lists.
  • FIX Update resource leaking to use fixed timesteps rather than realtime.
  • FIX Engine fixes. Flight Data Recorder (Engines) binds to first engine on the part. The failure modules grab all engines matching passed spec, defaulting to 'all' engines on the part. The wrapper is cleaned up and does not use scriptable objects anymore. Also fixed some KSPFielding and now don't recalculate dynamic pressure.
  • FIX: EngineModuleWrapper spam removed by properly treating ScriptableObject as Unity requires. Because reasons.
  • FIX: XLR11, XLR99 configs to apply to all of them (use different MM pattern). Fix LR91 part matches for other LR91s.
  • CHANGE: Remove unneeded persistence flags.
  • FIX: Proper data initialization for saved .craft files. NOTE: Fix is not retroactive and will only work properly on new saved craft.
  • FIX: Properly accumulate flightData when multiple parts with the same underlying part name are on a vessel. Fixes #101

TestFlight v1.5.1.0

29 Feb 08:23
Compare
Choose a tag to compare

1.5.1.0

  • FIX: Do a pass to further clean up burn times
  • NEW: Add new LR87-LH2 config.
  • FIX: Correct LR91 burn time cycles.
  • NEW: Add LR91-AJ-3; fix LR87/91 config names for next RO.
  • FIX: Fix ignition pressure curves, remove Agena and LR89/105 configs (done in RO).
  • NEW: Add AJ10-early comments.
  • CHANGE: Update AJ10-early configs for new RO.
  • CHANGE: Update Examples.txt. Added example config for failures to FARControllableSurface module

TestFlight v1.5.0.1

25 Feb 23:20
Compare
Choose a tag to compare

minor fix to avoid a possible issue

TestFlight v1.5.0.0

25 Feb 22:17
Compare
Choose a tag to compare

NEW: Hands on research! A mechanic (available to cfg modders) to use part data as science discounts in tech tree nodes the part is present in.
NEW: Failures for RemoteTech and parts using ModuleScienceExperiment

v1.4.0.2

23 Nov 05:43
Compare
Choose a tag to compare

TestFlight v1.4.0.2

  • FIX: Fixes Issue #82 LR-105 engine misconfigured in RO configs
  • NEW Configs: Added LR-91 (-5, -7, -9, -11, -11A models) configs to the FASA Gemini LR-91 model. Thanks @stratochief66!
  • API Changed: baseFailureRate and momentaryFailureRate, as well as momentary failure rate modifiers are all treated internally as doubles now for extra precision with very small failure rates. All API calls utilizing any of these values now return and expect doubles.
  • NEW Configs: Added new property to TestFlightCore,
    failureRateModifier which defaults to 1. This is a flat, fixed,
    modifier applied to the calculated baseFailureRate which can be used to
    force smaller values than is possible normally due to 32 bit
    restrictions in KSP.
  • NEW: In order to accommodate very small failure rates, the core
    has been reworked to use 64 bit double precision floats internally.
    This allows failure rates as low as .00000000000001. However, KSP
    itself will not persist doubles, only floats. Further more, by their
    very nature FloatCurves, which are used to define the failure rate
    curves, have to be floats. This means that while internally the
    failure rate can be much lower than before, KSP will still only allow
    you to specify failure rate values down to .0000001 (This is one
    significant digit lower than previous). In order to get even smaller
    values than that, use the new property on TestFlightCore
    failureRateModifier to force it even lower. Setting both the
    failureRate and the failureRateModifier to the smallest float value of
    .0000001 will result in a calculated failureRate internally of the min
    rate, .00000000000001
  • CHANGED Configs: Update RO configs for RO 10.0
    • Aerobee configs were renamed
    • RL, AJ, and LR no longer have a dash (Only the last was relevant here)
  • NEW: Recompiled for KSP v1.0.5
  • CHANGED: Updated ContractConfigurator to 1.8.1
  • NEW: Added support for lots of different parts thanks to the awesome work of @anxcon. New part support includes: Avionics, Docking Rings, FAR Control Surfaces, Gimbals, Reaction Wheels, Solar Panels, Heat Shields and more! Major thanks to @anxcon

v1.4.0.1

23 Nov 05:31
Compare
Choose a tag to compare
v1.4.0.1 Pre-release
Pre-release

TestFlight v1.4.0.0

  • FIX: Fixes Issue #82 LR-105 engine misconfigured in RO configs
  • NEW Configs: Added LR-91 (-5, -7, -9, -11, -11A models) configs to the FASA Gemini LR-91 model. Thanks @stratochief66!
  • API Changed: baseFailureRate and momentaryFailureRate, as well as momentary failure rate modifiers are all treated internally as doubles now for extra precision with very small failure rates. All API calls utilizing any of these values now return and expect doubles.
  • NEW Configs: Added new property to TestFlightCore,
    failureRateModifier which defaults to 1. This is a flat, fixed,
    modifier applied to the calculated baseFailureRate which can be used to
    force smaller values than is possible normally due to 32 bit
    restrictions in KSP.
  • NEW: In order to accommodate very small failure rates, the core
    has been reworked to use 64 bit double precision floats internally.
    This allows failure rates as low as .00000000000001. However, KSP
    itself will not persist doubles, only floats. Further more, by their
    very nature FloatCurves, which are used to define the failure rate
    curves, have to be floats. This means that while internally the
    failure rate can be much lower than before, KSP will still only allow
    you to specify failure rate values down to .0000001 (This is one
    significant digit lower than previous). In order to get even smaller
    values than that, use the new property on TestFlightCore
    failureRateModifier to force it even lower. Setting both the
    failureRate and the failureRateModifier to the smallest float value of
    .0000001 will result in a calculated failureRate internally of the min
    rate, .00000000000001
  • CHANGED Configs: Update RO configs for RO 10.0
    • Aerobee configs were renamed
    • RL, AJ, and LR no longer have a dash (Only the last was relevant here)
  • NEW: Recompiled for KSP v1.0.5
  • CHANGED: Updated ContractConfigurator to 1.8.1
  • NEW: Added support for lots of different parts thanks to the awesome work of @anxcon. New part support includes: Avionics, Docking Rings, FAR Control Surfaces, Gimbals, Reaction Wheels, Solar Panels, Heat Shields and more! Major thanks to @anxcon