Skip to content

1.37.2

Choose a tag to compare

@gotmachine gotmachine released this 30 Mar 12:59
· 31 commits to master since this release

Installation through the CKAN mod manager is recommended.

Manual installation instructions :

  • Go to the GitHub release page and download the file named KSPCommunityFixes_x.x.x.zip
  • Open the downloaded *.zip archive
  • Open the GameData folder of your KSP installation
  • Delete any existing KSPCommunityFixes folder in your GameData folder
  • Copy the KSPCommunityFixes folder found in the archive into your GameData folder
  • Download and install the following required dependencies :

1.37.2 - Bugfix release

  • PersistentIConfigNode : Reverted the DataType and FieldData types to being public instead of internal as those are part of the public API for this patch, and in active use by ROLib and SEP.

1.37.1 - Bugfix release

  • PartParsingPerf : Fixed issue #305, incorrect parsing of dragModelType part config values resulting in various parts such as wings to generate additional drag.

1.37.0 - Latest main release

New / improved patches

  • New performance patch : CraftBrowserOptimisations, significantly reduces the time it takes to open the craft browser and to search by name. Most noticeable with lots of craft. Thanks to @Halbann for this contribution.
  • New performance patch : OptimisedVectorLines, improve performance in the Map View and tracking station when a large number of vessels and bodies are visible via faster drawing of orbit lines and CommNet lines. Thanks to @Halbann for this contribution.
  • New QoL patch : TargetParentBody, allow targeting the parent body of the current craft, or any body in the parent hierarchy. Thanks to @jamespglaze for this contribution.
  • Improved PartSystemsFastUpdate performance patch with a complete reimplementation of TemperatureGaugeSystem, also see issue #194. Mostly eliminate the background processing of (hidden and visible) temperature gauges, and massively reduce the overhead of instantiating them, reducing scene load time and stutter on part count change events such as decoupling, docking, undocking, crashes, etc.
  • Various initial loading performance optimizations, see PR #269:
    • Added performance metrics logging upon reaching the main menu
    • Added (almost) entirely custom MU model parser, roughly 3 times the throughput of the stock parser (~300 MB/s on my machine). Will only really benefit to people having fast NVME drives with good random read performance.
    • New patch, GameDatabasePerf : KSPCF now maintains dictionaries of loaded models and texture assets by their url/name, and patch the stock GameDatabase.GetModel* / GameDatabase.GetTexture* method to use them instead of doing a linear search. This was especially bad with models, as the method would compare the requested string to the GameObject.name property for every model in the database.
    • As a part of the MinorPerfTweaks patch, patched the FlightGlobals.fetch property to not fallback to a FindObjectOfType() call when the FlightGlobals._fetch field is null, which is always the case during loading. In a stock + BDB test case, this alone was about 10% of the total loading time, 7+ seconds.
    • New patch, PartParsingPerf, featuring slightly faster part icon generation and faster Part fields parsing by creating a dictionary of IL-emitted parser delegates.
  • Improved CommNetThrottling performance patch. The patch now implement a custom rate limiting logic for CommNet updates, with a more balanced take between performance improvements and simulation precision. As a result, the patch is now enabled by default. Thanks to @JonnyOThan for insisting on that one.
  • Improved ModuleIndexingMismatch patch. Will now restore persisted data following a config change (mod updated/added/removed) when the module now present on a part is a base or derived module. Notably allow action group customizations to be kept when sharing craft files between Waterfall / non-Waterfall installs. Thanks to @BrettRyland for detailed reporting.
  • New modding API patch : BaseFieldListUseFieldHost. Allow BaseField and associated features (PAW controls, persistence, etc) to work when a custom BaseField is added to a BaseFieldList (ie, a Part or PartModule) with a host instance other than the BaseFieldList owner. Potential use cases for this are having a part or module-level PAW item associated to and sharing the state of a common field, for example a field in a KSPAddon, or extending external (typically stock) modules with additional PAW UI controls and/or persisted fields.

Bug fixes

  • CollisionEnhancerFastUpdate : Fixed issue #282, fixed exception spam when launching fireworks and possibly in other situations with non-part physical objects such as fairing / shroud debris. Thanks to @JonnyOThan for reporting.
  • PersistentIConfigNode : Fixed issue #297, incorrect return value from the LoadObjectFromConfig() KSP API method, notably resulting in the PAPI Lights mod failing to load. Thanks to @svm420 for reporting.

Internal changes

  • Added a [ManualPatch] attribute. When applied to a class derived from BasePatch, the patch won't be automatically applied by the default patching infrastructure. To apply the patch, call BasePatch.Patch() manually.