|
3 | 3 | Version numbers are shared between libloadorder and libloadorder-ffi. This |
4 | 4 | changelog does not include libloadorder-ffi changes. |
5 | 5 |
|
| 6 | +## [18.6.0] - 2026-03-26 |
| 7 | + |
| 8 | +### Added |
| 9 | + |
| 10 | +- Added support for implicitly activating Starfield BlueprintShips plugins. |
| 11 | + |
| 12 | + Starfield treats a plugin named `BlueprintShips-X.esm` (where `X` can be |
| 13 | + anything) as active even if it is not listed as active in plugins.txt (or not |
| 14 | + listed in plugins.txt at all), so long as there is an active plugin named |
| 15 | + `X.esm`, `X.esp` or `X.esl`. I.e. activating `X.esm` will also activate |
| 16 | + `BlueprintShips-X.esm` is if exists. |
| 17 | + |
| 18 | + libloadorder now follows this behaviour when `WritableLoadOrder::load()` or |
| 19 | + `WritableLoadOrder::activate()` are called. When activating a plugin, it now |
| 20 | + validates that any implicitly-activated BlueprintShips plugin would not |
| 21 | + increase the active plugins counts past their limits. |
| 22 | + `WritableLoadOrder::set_active_plugins()` now validates that the given plugins |
| 23 | + include all BlueprintShips plugins that would be implicitly activated by other |
| 24 | + plugins given to the function. |
| 25 | + |
| 26 | + libloadorder does *not* automatically deactivate a BlueprintShips plugin that |
| 27 | + was implicitly activated by another plugin when that other plugin is |
| 28 | + deactivated, as libloadorder doesn't currently track whether a plugin was |
| 29 | + implicitly or explicitly activated. |
| 30 | +- Add support for persisting blueprint master load order across Starfield |
| 31 | + starts. |
| 32 | + |
| 33 | + When Starfield starts, it reads `plugins.txt`, and then removes all blueprint |
| 34 | + plugins and BlueprintShips plugins from `plugins.txt`. This means that those |
| 35 | + plugins cannot have their load order persisted in `plugins.txt` across |
| 36 | + multiple Starfield starts. However, any blueprint masters that are |
| 37 | + implicitly (not explicitly) active are appended to the load order in |
| 38 | + ascending order of their modification timestamps. |
| 39 | + |
| 40 | + `WritableLoadOrder::save()` now writes the modification timestamps of any |
| 41 | + blueprint masters present so that they match the load order being saved. This |
| 42 | + is done in addition to including the blueprint masters in `plugins.txt`. |
| 43 | + |
| 44 | + This preserves the order of implicitly-active blueprint masters (which all |
| 45 | + current official blueprint and BlueprintShips plugins are) across multiple |
| 46 | + Starfield startups. However, it is unable to preserve the order of any other |
| 47 | + blueprint plugins, or of BlueprintShips plugins that are not |
| 48 | + blueprint-flagged. |
| 49 | + |
6 | 50 | ## [18.5.1] - 2025-09-29 |
7 | 51 |
|
8 | 52 | ### Changed |
|
0 commit comments