You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-4Lines changed: 29 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ User options are available from the "ESC" in-game settings menu :<br/><img src="
43
43
- Fix many issues and state inconsistencies.
44
44
- An optional `DockingPortExtendedRotation.cfg.extra` MM patch extending rotation range to 360° is available in the `Extras` folder. Copy it to your `GameData` folder and remove the `.extra` extension to use it.
45
45
-**[AutoStrutDrift](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/21)**[KSP 1.8.0 - 1.12.5]<br/>Improves the overall physics stability when using autostruts and prevent autostrut induced deformations following vessel modification events (decoupling, docking/undocking, fairing separation...).
46
-
-**ModuleIndexingMismatch**[KSP 1.8.0 - 1.12.5]<br/>Prevent modules persisted state from being lost in existing saves/ships following a mod installation/uninstallation/update. Note that this won't handle all cases, but it massively reduce occurrences of that issue.
46
+
-[**ModuleIndexingMismatch**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/264)[KSP 1.8.0 - 1.12.5]<br/>Prevent modules persisted state from being lost in existing saves/ships following a mod installation/uninstallation/update. Note that this won't handle all cases, but it massively reduce occurrences of that issue.
47
47
-**PackedPartsRotation**[KSP 1.8.0 - 1.12.5]<br/>Fix part rotations not being reset to their pristine value when a non-landed vessel is packed, resulting in permanent part rotation drift when docking and other minor/cosmetic issues.
48
48
-**[PartStartStability](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/9)**[KSP 1.8.0 - 1.12.5]<br/>Fix vessel deformation and kraken events on flight scene load, also prevent some kraken issues when placing parts with EVA construction.
49
49
@@ -122,7 +122,7 @@ User options are available from the "ESC" in-game settings menu :<br/><img src="
122
122
-[**MemoryLeaks**](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/49)[KSP 1.12.0 - 1.12.5]<br/>Fix a bunch of managed memory leaks, mainly by proactively removing `GameEvents` delegates originating from destroyed `UnityEngine.Object` instances on scene switches. Will log detected leaks and memory usage. Also see`Settings.cfg` to enable advanced logging options that can be useful to hunt down memory leaks in mods.
123
123
-[**ProgressTrackingSpeedBoost**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/57)[KSP 1.12.0 - 1.12.5]<br/>Remove unused ProgressTracking update handlers. Provides a very noticeable performance uplift in career games having a large amount of celestial bodies and/or vessels.
124
124
-[**DisableMapUpdateInFlight**](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/59)[KSP 1.8.0 - 1.12.5]<br/>Disable the update of orbit lines and markers in flight when the map view isn't shown. Provides decent performance gains in games having a large amount of celestial bodies and/or vessels.
125
-
-[**CommNetThrottling**](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/56)[KSP 1.12.0 - 1.12.5]<br/>Implement a throttling mechanism preventing CommNet network updates from happening every frame. When this patch is enabled, network updates will only happen at a set interval of in-game seconds (default is 2.5s, configurable in `Settings.cfg`). This patch will cause events such as line of sight loss or acquisition, or comm link changes to happen with a slight delay, but provide a significant performance uplift in games having a large amount of celestial bodies and/or vessels.
125
+
-[**CommNetThrottling**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/299)[KSP 1.12.0 - 1.12.5]<br/>Implement a throttling mechanism preventing CommNet network updates from happening every frame. When this patch is enabled, network updates will only happen at a set interval of in-game seconds (default is 2.5s, configurable in `Settings.cfg`). This patch will cause events such as line of sight loss or acquisition, or comm link changes to happen with a slight delay, but provide a significant performance uplift in games having a large amount of celestial bodies and/or vessels.
126
126
-[**AsteroidAndCometDrillCache**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/67)[KSP 1.12.5]<br/>Reduce constant overhead of ModuleAsteroidDrill and ModuleCometDrill by using the cached asteroid/comet part lookup results from ModuleResourceHarvester. Improves performance with large part count vessels having at least one drill part.
127
127
-[**FewerSaves**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/80)[KSP 1.8.0 - KSP 1.12.5]<br/>Disables saving on exiting Space Center minor buildings (Mission Control etc) and when deleting vessels in Tracking Station. Disabled by default.
128
128
-[**ConfigNodePerf**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/88)[see also](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/90)[KSP 1.8.0 - KSP 1.12.5]<br/>Speeds up many ConfigNode methods, especially reading and writing ConfigNodes.
@@ -138,11 +138,13 @@ User options are available from the "ESC" in-game settings menu :<br/><img src="
138
138
-[**ModuleDockingNodeFindOtherNodesFaster**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/257)[KSP 1.12.3 - 1.12.5]<br/>Faster lookup of other docking nodes.
139
139
-[**CollisionEnhancerFastUpdate**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/257)[KSP 1.12.3 - 1.12.5]<br/>Optimization of the `CollisionEnhancer` component (responsible for part to terrain collision detection).
140
140
-[**PartSystemsFastUpdate**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/257)[KSP 1.12.3 - 1.12.5]<br/>Optimization of various flight scene auxiliary subsystems : temperature gauges, highlighter, strut position tracking...
141
-
-[**MinorPerfTweaks**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/257)[KSP 1.12.3 - 1.12.5]<br/>Various small performance patches (volume normalizer, eva module checks)
141
+
-[**MinorPerfTweaks**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/257)[KSP 1.12.3 - 1.12.5]<br/>Various small performance patches (volume normalizer, eva module checks, faster `FlightGlobals.fetch` accessor)
142
142
-[**FloatingOriginPerf**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/257)[KSP 1.12.3 - 1.12.5]<br/>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.
143
143
-[**FasterPartFindTransform**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/255)[KSP 1.12.3 - 1.12.5]<br/>Faster, and minimal GC alloc relacements for the Part FindModelTransform* and FindHeirarchyTransform* methods.
144
144
-[**CraftBrowserOptimisations**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/284)[KSP 1.12.0 - 1.12.5]<br/>Significantly reduces the time it takes to open the craft browser and to search by name. Most noticeable with lots of craft.
145
145
-[**OptimisedVectorLines**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/281)[KSP 1.12.0 - 1.12.5]<br/>Improve performance in the Map View when a large number of vessels and bodies are visible via faster drawing of orbit lines and CommNet lines.
146
+
-[**GameDatabasePerf**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/269)[KSP 1.12.3 - 1.12.5]<br/>Faster dictionary backed version of the stock `GameDatabase.GetModel*` / `GameDatabase.GetTexture*` methods. This patch is always enabled and has no entry in `Settings.cfg`.
147
+
-[**PartParsingPerf**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/269)[KSP 1.8.0 - 1.12.5]<br/>Faster part icon generation and `Part` fields parsing.
146
148
147
149
#### API and modding tools
148
150
-**MultipleModuleInPartAPI**[KSP 1.8.0 - 1.12.5]<br/>This API allow other plugins to implement PartModules that can exist in multiple occurrence in a single part and won't suffer "module indexing mismatch" persistent data losses following part configuration changes. [See documentation on the wiki](https://github.com/KSPModdingLibs/KSPCommunityFixes/wiki/MultipleModuleInPartAPI).
@@ -164,6 +166,7 @@ User options are available from the "ESC" in-game settings menu :<br/><img src="
-[**KSPFieldEnumDesc**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/243)[KSP 1.12.2 - 1.12.5]<br/>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.
169
+
-[**BaseFieldListUseFieldHost**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/278)[KSP 1.12.3 - 1.12.5]<br/>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. See the linked PR and code for use cases and example usage.
167
170
168
171
#### Stock configs tweaks
169
172
-**[ManufacturerFixes](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/62)**<br/>Fix a bunch of stock parts not having manufacturers, add icons for the stock "Stratus Corporation" and "LightYear Tire Company" and two new agents, "FreeFall Parachutes" and "Clamp-O-Tron".
@@ -203,12 +206,34 @@ If doing so in the `Debug` configuration and if your KSP install is modified to
203
206
204
207
### Changelog
205
208
209
+
##### 1.37.0
210
+
**New / improved patches**
211
+
- New performance patch : [**CraftBrowserOptimisations**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/284), 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.
212
+
- New performance patch : [**OptimisedVectorLines**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/281), 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.
213
+
- New QoL patch : [**TargetParentBody**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/285), allow targeting the parent body of the current craft, or any body in the parent hierarchy. Thanks to @jamespglaze for this contribution.
214
+
- Improved **PartSystemsFastUpdate** performance patch with a [complete reimplementation of `TemperatureGaugeSystem`](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/270), also see [issue #194](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/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.
215
+
- Various initial **loading performance optimizations**, see [PR #269](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/269):
216
+
- Added performance metrics logging upon reaching the main menu
217
+
- 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.
218
+
- 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.
219
+
- 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.
220
+
- New patch, **PartParsingPerf**, featuring slightly faster part icon generation and faster `Part` fields parsing by creating a dictionary of IL-emitted parser delegates.
221
+
- Improved [**CommNetThrottling**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/299) 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.
222
+
- Improved [**ModuleIndexingMismatch**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/264) 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.
223
+
- New modding API patch : [**BaseFieldListUseFieldHost**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/278). 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.
224
+
225
+
**Bug fixes**
226
+
-**CollisionEnhancerFastUpdate** : Fixed [issue #282](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/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.
227
+
-**PersistentIConfigNode** : Fixed [issue #297](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/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.
228
+
229
+
**Internal changes**
230
+
- 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.
231
+
206
232
##### 1.36.1
207
233
Hotfix release for [issue #273](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/273) : [**ForceSyncSceneSwitch**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/250) patch incompatibility with [Universal Storage 2](https://github.com/linuxgurugamer/universal-storage-2/). The patch will now be disabled when US2 is installed.
208
234
209
235
Note that this patch [might be causing other issues](https://github.com/KSPModdingLibs/KSPCommunityFixes/issues/260), but so far we haven't been able to confirm them.
210
236
211
-
212
237
##### 1.36.0
213
238
**User facing changes**
214
239
- New KSP performance patch : [**FasterPartFindTransform**](https://github.com/KSPModdingLibs/KSPCommunityFixes/pull/255)[KSP 1.12.3 - 1.12.5] : Faster, and minimal GC alloc relacements for the Part FindModelTransform* and FindHeirarchyTransform* methods.
0 commit comments