Releases: KSPModdingLibs/KSPCommunityFixes
Release list
1.37.1
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
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder - Download and install the following required dependencies :
- HarmonyKSP : Download - Homepage
- ModuleManager : Download - Forum post
1.37.1 - Bugfix release
Bug fixes
- PartParsingPerf : Fixed issue #305, incorrect parsing of
dragModelTypepart 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 theGameObject.nameproperty for every model in the database. - As a part of the MinorPerfTweaks patch, patched the
FlightGlobals.fetchproperty to not fallback to aFindObjectOfType()call when theFlightGlobals._fetchfield 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
Partfields 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
BaseFieldand associated features (PAW controls, persistence, etc) to work when a customBaseFieldis added to aBaseFieldList(ie, aPartorPartModule) with ahostinstance other than theBaseFieldListowner. 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 aKSPAddon, 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 fromBasePatch, the patch won't be automatically applied by the default patching infrastructure. To apply the patch, callBasePatch.Patch()manually.
1.37.0
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
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder - Download and install the following required dependencies :
- HarmonyKSP : Download - Homepage
- ModuleManager : Download - Forum post
Changes in this version
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 theGameObject.nameproperty for every model in the database. - As a part of the MinorPerfTweaks patch, patched the
FlightGlobals.fetchproperty to not fallback to aFindObjectOfType()call when theFlightGlobals._fetchfield 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
Partfields 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
BaseFieldand associated features (PAW controls, persistence, etc) to work when a customBaseFieldis added to aBaseFieldList(ie, aPartorPartModule) with ahostinstance other than theBaseFieldListowner. 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 aKSPAddon, 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 fromBasePatch, the patch won't be automatically applied by the default patching infrastructure. To apply the patch, callBasePatch.Patch()manually.
1.36.1
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
Installation with CKAN is recommended. Otherwise:
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
Changes in this version
A KSPCF release was long overdue, but contributors didn't stop cooking, so there are a lot of new patches and changes in this version.
This update notably brings many flight scene performance improvements, here are some benchmarks :
Ryzen 5800X3D, 32 GB DDR4 @ 3600 MHz, Radeon RX 7600XT @ 720p, average and 1% low FPS over 1000 frames.
Note that these benchmarks are done in a brand new, non-modded sandbox save. Figures will likely be lower in career and/or modded games.
Acapello (152 parts stock default craft)
| Situation | Stock (avg) | KSPCF (avg) | Improv. | Stock (1%) | KSPCF (1%) | Improv. |
|---|---|---|---|---|---|---|
| Launchpad | 222 | 246 | 11% | 153 | 193 | 26% |
| Launch @ 3000m | 195 | 247 | 27% | 121 | 149 | 23% |
| Kerbin low orbit | 240 | 292 | 22% | 149 | 164 | 10% |
450 parts exploration vehicle launcher (KerbalX link)
| Situation | Stock (avg) | KSPCF (avg) | Improv. | Stock (1% ) | KSPCF (1%) | Improv. |
|---|---|---|---|---|---|---|
| Launchpad | 46 | 73 | 59% | 40 | 63 | 58% |
| Launch @ 3000m | 35 | 58 | 66% | 29 | 48 | 66% |
| Kerbin low orbit | 46 | 91 | 98% | 39 | 63 | 62% |
User facing changes
- New KSP performance patch : FasterPartFindTransform [KSP 1.12.3 - 1.12.5] : Faster, and minimal GC alloc relacements for the Part FindModelTransform* and FindHeirarchyTransform* methods.
- New KSP performance patch : ForceSyncSceneSwitch [KSP 1.12.0 - 1.12.5] : Forces all scene transitions to happen synchronously. Benefits scene transition time by reducing asset cleanup run count from 3 to 1 (contributed by @siimav).
- New KSP performance patches : this update introduce a collection of patches intended to fix various performance bottlenecks mainly relevant in high part count situations. See PR #257 and PR #256 :
- ModuleDockingNodeFindOtherNodesFaster : Faster lookup of other docking nodes.
- CollisionEnhancerFastUpdate : Optimization of the
CollisionEnhancercomponent (responsible for part to terrain collision detection). - PartSystemsFastUpdate : Optimization of various flight scene auxiliary subsystems : temperature gauges, highlighter, strut position tracking...
- MinorPerfTweaks : Various small performance patches (volume normalizer, eva module checks)
- FlightIntegratorPerf : General micro-optimization of
FlightIntegratorandVesselPrecalculate, components in charge of most of heavy lifting for newtonian physics as well as atmospheric and thermal physics. - FloatingOriginPerf : General micro-optimization of floating origin shifts. Main benefit is in large particle count situations (ie, launches with many engines) but this helps a bit in other cases as well.
- New KSP bufix : DragCubeLoadException [KSP 1.8.0 - 1.12.5] : Fix loading of drag cubes without a name failing with an IndexOutOfRangeException (contributed by @Nazfib).
- New KSP bufix : TimeWarpBodyCollision [KSP 1.12.0 - 1.12.5] : Fix timewarp rate not always being limited on SOI transistions, sometimes resulting in failure to detect an encounter/collision with the body in the next SOI (contributed by @JonnyOThan).
- New modding API improvement : KSPFieldEnumDesc [KSP 1.12.2 - 1.12.5] : Disabled by default, you can enable it with a MM patch. Adds display name and localization support for enum KSPFields. To use add
Descriptionattribute to the field (contributed by @siimav). - PAWStockGroups : Added PAW groups for generators, making the UI less confusing when multiple generators are present (contributed by @yalov).
Internal changes
- Patching now always run as the first ModuleManagerPostLoad callback, ensuring other callbacks can benefit from the patches (contributed by @al2me6).
- Small internal refactor of the patching infrastructure for less verbose patch declaration.
- Introduced a new "override" patch type, basically an automatic transpiler allowing to replace a method body with another. This has a little less overhead than a prefix doing the same thing, and allow for other patches (including non-KSPCF ones) to prefix the patched method as usual.
Hotfix release 1.36.1
Fix for issue #273 : ForceSyncSceneSwitch patch incompatibility with Universal Storage 2. The patch will now be disabled when US2 is installed.
Note that this patch might be causing other issues, but so far we haven't been able to confirm them.
1.36.0
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
Installation with CKAN is recommended. Otherwise:
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
Changes in this version
A KSPCF release was long overdue, but contributors didn't stop cooking, so there are a lot of new patches and changes in this version.
This update notably brings many flight scene performance improvements, here are some benchmarks :
Ryzen 5800X3D, 32 GB DDR4 @ 3600 MHz, Radeon RX 7600XT @ 720p, average and 1% low FPS over 1000 frames.
Note that these benchmarks are done in a brand new, non-modded sandbox save. Figures will likely be lower in career and/or modded games.
Acapello (152 parts stock default craft)
| Situation | Stock (avg) | KSPCF (avg) | Improv. | Stock (1%) | KSPCF (1%) | Improv. |
|---|---|---|---|---|---|---|
| Launchpad | 222 | 246 | 11% | 153 | 193 | 26% |
| Launch @ 3000m | 195 | 247 | 27% | 121 | 149 | 23% |
| Kerbin low orbit | 240 | 292 | 22% | 149 | 164 | 10% |
450 parts exploration vehicle launcher (KerbalX link)
| Situation | Stock (avg) | KSPCF (avg) | Improv. | Stock (1% ) | KSPCF (1%) | Improv. |
|---|---|---|---|---|---|---|
| Launchpad | 46 | 73 | 59% | 40 | 63 | 58% |
| Launch @ 3000m | 35 | 58 | 66% | 29 | 48 | 66% |
| Kerbin low orbit | 46 | 91 | 98% | 39 | 63 | 62% |
User facing changes
- New KSP performance patch : FasterPartFindTransform [KSP 1.12.3 - 1.12.5] : Faster, and minimal GC alloc relacements for the Part FindModelTransform* and FindHeirarchyTransform* methods.
- New KSP performance patch : ForceSyncSceneSwitch [KSP 1.12.0 - 1.12.5] : Forces all scene transitions to happen synchronously. Benefits scene transition time by reducing asset cleanup run count from 3 to 1 (contributed by @siimav).
- New KSP performance patches : this update introduce a collection of patches intended to fix various performance bottlenecks mainly relevant in high part count situations. See PR #257 and PR #256 :
- ModuleDockingNodeFindOtherNodesFaster : Faster lookup of other docking nodes.
- CollisionEnhancerFastUpdate : Optimization of the
CollisionEnhancercomponent (responsible for part to terrain collision detection). - PartSystemsFastUpdate : Optimization of various flight scene auxiliary subsystems : temperature gauges, highlighter, strut position tracking...
- MinorPerfTweaks : Various small performance patches (volume normalizer, eva module checks)
- FlightIntegratorPerf : General micro-optimization of
FlightIntegratorandVesselPrecalculate, components in charge of most of heavy lifting for newtonian physics as well as atmospheric and thermal physics. - FloatingOriginPerf : General micro-optimization of floating origin shifts. Main benefit is in large particle count situations (ie, launches with many engines) but this helps a bit in other cases as well.
- New KSP bufix : DragCubeLoadException [KSP 1.8.0 - 1.12.5] : Fix loading of drag cubes without a name failing with an IndexOutOfRangeException (contributed by @Nazfib).
- New KSP bufix : TimeWarpBodyCollision [KSP 1.12.0 - 1.12.5] : Fix timewarp rate not always being limited on SOI transistions, sometimes resulting in failure to detect an encounter/collision with the body in the next SOI (contributed by @JonnyOThan).
- New modding API improvement : KSPFieldEnumDesc [KSP 1.12.2 - 1.12.5] : Disabled by default, you can enable it with a MM patch. Adds display name and localization support for enum KSPFields. To use add
Descriptionattribute to the field (contributed by @siimav). - PAWStockGroups : Added PAW groups for generators, making the UI less confusing when multiple generators are present (contributed by @yalov).
Internal changes
- Patching now always run as the first ModuleManagerPostLoad callback, ensuring other callbacks can benefit from the patches (contributed by @al2me6).
- Small internal refactor of the patching infrastructure for less verbose patch declaration.
- Introduced a new "override" patch type, basically an automatic transpiler allowing to replace a method body with another. This has a little less overhead than a prefix doing the same thing, and allow for other patches (including non-KSPCF ones) to prefix the patched method as usual.
1.36.0 RC2
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
Changes in this version
A KSPCF release was long overdue, but contributors didn't stop cooking, so there are a lot of new patches and changes in this version.
This update notably brings many flight scene performance improvements, here are some benchmarks :
Ryzen 5800X3D, 32 GB DDR4 @ 3600 MHz, Radeon RX 7600XT @ 720p, average and 1% low FPS over 1000 frames.
Note that these benchmarks are done in a brand new, non-modded sandbox save. Figures will likely be lower in career and/or modded games.
Acapello (152 parts stock default craft)
| Situation | Stock (avg) | KSPCF (avg) | Improv. | Stock (1%) | KSPCF (1%) | Improv. |
|---|---|---|---|---|---|---|
| Launchpad | 222 | 246 | 11% | 153 | 193 | 26% |
| Launch @ 3000m | 195 | 247 | 27% | 121 | 149 | 23% |
| Kerbin low orbit | 240 | 292 | 22% | 149 | 164 | 10% |
450 parts exploration vehicle launcher (KerbalX link)
| Situation | Stock (avg) | KSPCF (avg) | Improv. | Stock (1% ) | KSPCF (1%) | Improv. |
|---|---|---|---|---|---|---|
| Launchpad | 46 | 73 | 59% | 40 | 63 | 58% |
| Launch @ 3000m | 35 | 58 | 66% | 29 | 48 | 66% |
| Kerbin low orbit | 46 | 91 | 98% | 39 | 63 | 62% |
A note of caution
The new patches are modifying many stock core subsystems, consequently, the chances of introducing new bugs or incompatibilities with the modding ecosystem is larger than usual, so this update hasn't been pushed to CKAN or to KSP-AVC users yet.
If you try this new version, please report any issue or weird behavior either in the github issue tracker, or on the KSP forums KSPCF thread, alongside with your KSP.log. You can also report if you tried this update and everything is working fine, this actually helps too !
Once we feel these changes have been tested enough, we will push them on the usual release channels.
Changes since RC 1
- Fixed a bug in the FloatingOriginPerf implementation, resulting in vessels being teleported half randomly.
- Fixed a bug in the FlightIntegratorPerf implementation, resulting in garbage drag values being generated during flight
- Fixed (harmless) accidental deactivation of the DragCubegeneration patch
Thanks (and sorry !) to everyone having reported the issues.
User facing changes
- New KSP performance patch : FasterPartFindTransform [KSP 1.12.3 - 1.12.5] : Faster, and minimal GC alloc relacements for the Part FindModelTransform* and FindHeirarchyTransform* methods.
- New KSP performance patch : ForceSyncSceneSwitch [KSP 1.12.0 - 1.12.5] : Forces all scene transitions to happen synchronously. Benefits scene transition time by reducing asset cleanup run count from 3 to 1 (contributed by @siimav).
- New KSP performance patches : this update introduce a collection of patches intended to fix various performance bottlenecks mainly relevant in high part count situations. See PR #257 and PR #256 :
- ModuleDockingNodeFindOtherNodesFaster : Faster lookup of other docking nodes.
- CollisionEnhancerFastUpdate : Optimization of the
CollisionEnhancercomponent (responsible for part to terrain collision detection). - PartSystemsFastUpdate : Optimization of various flight scene auxiliary subsystems : temperature gauges, highlighter, strut position tracking...
- MinorPerfTweaks : Various small performance patches (volume normalizer, eva module checks)
- FlightIntegratorPerf : General micro-optimization of
FlightIntegratorandVesselPrecalculate, components in charge of most of heavy lifting for newtonian physics as well as atmospheric and thermal physics. - FloatingOriginPerf : General micro-optimization of floating origin shifts. Main benefit is in large particle count situations (ie, launches with many engines) but this helps a bit in other cases as well.
- New KSP bufix : DragCubeLoadException [KSP 1.8.0 - 1.12.5] : Fix loading of drag cubes without a name failing with an IndexOutOfRangeException (contributed by @Nazfib).
- New KSP bufix : TimeWarpBodyCollision [KSP 1.12.0 - 1.12.5] : Fix timewarp rate not always being limited on SOI transistions, sometimes resulting in failure to detect an encounter/collision with the body in the next SOI (contributed by @JonnyOThan).
- New modding API improvement : KSPFieldEnumDesc [KSP 1.12.2 - 1.12.5] : Disabled by default, you can enable it with a MM patch. Adds display name and localization support for enum KSPFields. To use add
Descriptionattribute to the field (contributed by @siimav). - PAWStockGroups : Added PAW groups for generators, making the UI less confusing when multiple generators are present (contributed by @yalov).
Internal changes
- Patching now always run as the first ModuleManagerPostLoad callback, ensuring other callbacks can benefit from the patches (contributed by @al2me6).
- Small internal refactor of the patching infrastructure for less verbose patch declaration.
- Introduced a new "override" patch type, basically an automatic transpiler allowing to replace a method body with another. This has a little less overhead than a prefix doing the same thing, and allow for other patches (including non-KSPCF ones) to prefix the patched method as usual.
1.35.2
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
1.35.2
- FastLoader : Fixed a regression introduced in 1.35.1, causing PNG normal maps to be generated with empty mipmaps.
1.35.1
- FastLoader : fixed the PNG loader behavior not being similiar as in stock. It was wrongly generating mipmaps, notably resulting in NPOT textures not showing when texture quality wasn't set to full resolution (see issue #224).
- FastLoader : fixed cached PNG textures loading not using the data loaded by the threaded reader, but instead reading the file again synchronously (!). Unsurprisingly, fixing that is massively improving texture loading time.
1.35.0
- New KSP performance patch : OptimizedModuleRaycasts [KSP 1.12.3 - 1.12.5] : Improve engine exhaust damage and solar panel line of sight raycasts performance by avoiding extra physics state synchronization and caching solar panels scaled space raycasts results.
- New KSP QoL/performance patch : OptionalMakingHistoryDLCFeatures [KSP 1.12.3 - 1.12.5] : Allow to disable the Making History DLC mission editor and additional launch sites features to decrease memory usage and increase loading speed. The Making History parts will still be available. Can be toggled from the KSPCF in-game settings (requires a restart), or from a MM patch (see
Settings.cfg) - New KSP bugfix : PartBoundsIgnoreDisabledTransforms [KSP 1.12.3 - 1.12.5] : Fix disabled renderers by mesh switchers (B9PartSwitch...) still being considered for part bounds evaluation, resulting in various issues like parts not being occluded from drag in cargo bays, wrong vessel size being reported, etc...
- BetterUndoRedo : Fixed "too much undoing" when undoing offset/rotate editor actions, and other incoherent behavior (see related issue)
- FastLoader : Improved DDS loading performance by avoiding an extra copy of the DDS data
- MemoryLeaks : More stock memory leaks fixed, and additional reporting of leaked handlers
1.35.1
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
1.35.1
- FastLoader : fixed the PNG loader behavior not being similiar as in stock. It was wrongly generating mipmaps, notably resulting in NPOT textures not showing when texture quality wasn't set to full resolution (see issue #224).
- FastLoader : fixed cached PNG textures loading not using the data loaded by the threaded reader, but instead reading the file again synchronously (!). Unsurprisingly, fixing that is massively improving texture loading time.
1.35.0
- New KSP performance patch : OptimizedModuleRaycasts [KSP 1.12.3 - 1.12.5] : Improve engine exhaust damage and solar panel line of sight raycasts performance by avoiding extra physics state synchronization and caching solar panels scaled space raycasts results.
- New KSP QoL/performance patch : OptionalMakingHistoryDLCFeatures [KSP 1.12.3 - 1.12.5] : Allow to disable the Making History DLC mission editor and additional launch sites features to decrease memory usage and increase loading speed. The Making History parts will still be available. Can be toggled from the KSPCF in-game settings (requires a restart), or from a MM patch (see
Settings.cfg) - New KSP bugfix : PartBoundsIgnoreDisabledTransforms [KSP 1.12.3 - 1.12.5] : Fix disabled renderers by mesh switchers (B9PartSwitch...) still being considered for part bounds evaluation, resulting in various issues like parts not being occluded from drag in cargo bays, wrong vessel size being reported, etc...
- BetterUndoRedo : Fixed "too much undoing" when undoing offset/rotate editor actions, and other incoherent behavior (see related issue)
- FastLoader : Improved DDS loading performance by avoiding an extra copy of the DDS data
- MemoryLeaks : More stock memory leaks fixed, and additional reporting of leaked handlers
1.35.0
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
1.35.0
- New KSP performance patch : OptimizedModuleRaycasts [KSP 1.12.3 - 1.12.5] : Improve engine exhaust damage and solar panel line of sight raycasts performance by avoiding extra physics state synchronization and caching solar panels scaled space raycasts results.
- New KSP QoL/performance patch : OptionalMakingHistoryDLCFeatures [KSP 1.12.3 - 1.12.5] : Allow to disable the Making History DLC mission editor and additional launch sites features to decrease memory usage and increase loading speed. The Making History parts will still be available. Can be toggled from the KSPCF in-game settings (requires a restart), or from a MM patch (see
Settings.cfg) - New KSP bugfix : PartBoundsIgnoreDisabledTransforms [KSP 1.12.3 - 1.12.5] : Fix disabled renderers by mesh switchers (B9PartSwitch...) still being considered for part bounds evaluation, resulting in various issues like parts not being occluded from drag in cargo bays, wrong vessel size being reported, etc...
- BetterUndoRedo : Fixed "too much undoing" when undoing offset/rotate editor actions, and other incoherent behavior (see related issue)
- FastLoader : Improved DDS loading performance by avoiding an extra copy of the DDS data
- MemoryLeaks : More stock memory leaks fixed, and additional reporting of leaked handlers
1.34.1
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
1.34.1
- Disable BetterEditorUndoRedo when TweakScale/L is installed due to introducing a bug with part attachments in the editor.
1.34.0
Required and must be downloaded separately :
- HarmonyKSP : Download - Homepage - Available on CKAN
- ModuleManager : Download - Forum post - Available on CKAN
Installation
- Go to the GitHub release page and download the file named
KSPCommunityFixes_x.x.x.zip - Open the downloaded *.zip archive
- Open the
GameDatafolder of your KSP installation - Delete any existing
KSPCommunityFixesfolder in yourGameDatafolder - Copy the
KSPCommunityFixesfolder found in the archive into yourGameDatafolder
1.34.0
- New KSP QoL/performance patch : LowerMinPhysicsDTPerFrame : Allow a min value of 0.02 instead of 0.03 for the "Max Physics Delta-Time Per Frame" main menu setting. This allows for higher and smoother framerate at the expense of the game lagging behind real time. This was already possible by manually editing the
settings.cfgfile, but changes would revert when going into the settings screen. - New KSP QoL patch : BetterEditorUndoRedo : Invert the editor undo state capturing logic so part tweaks aren't lost when undoing.
- New KSP bugfix: InventoryPartMass : Fixes bugs where parts stored in inventories would not have the correct mass or volume when their resource levels were modified or variants changed.
- New KSP bugfix: EVAConstructionMass : Fixes a bug where picking up a part in EVA construction would set its mass to the wrong value when mass modifiers are involved (e.g. part variants).
- New KSP bugfix: RespawnDeadKerbals : When respawning is enabled, starts the respawn timer for any dead kerbals (changing their state to "missing") when loading a save. This addresses stock bugs where kerbals could be set to dead even when respawning is enabled.
- New KSP bugfix: ZeroCostTechNode : Fixes a bug where parts in tech nodes that have 0 science cost would become unusable.
- New KSP bugfix: ModulePartVariantsNodePersistence : Fixes an issue with ModulePartVariants where attachnodes would use their default state when resuming flight on a vessel from a saved game. This would lead to different behavior in part joints and flexibility between initial launch and loading a save.
- Changed patch behavior: PAWGroupMemory now tracks group state globally instead of per-window.
- Added zh-cn localization for ManufacturerFixes.cfg (thanks @zhangyuesai)