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
GameData
folder of your KSP installation - Delete any existing
KSPCommunityFixes
folder in yourGameData
folder - Copy the
KSPCommunityFixes
folder found in the archive into yourGameData
folder
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
CollisionEnhancer
component (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
FlightIntegrator
andVesselPrecalculate
, 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
Description
attribute 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.