## Major features
- Added support for `Extras` in your planet configs. This allows for
other mods to extend planet and system configs with new features.
- Added new volumes to configs under the `Volumes` module:
- Hazard volumes
- Notification volumes
- Implemented a transparent `cloudsPrefab`. It works mostly the same as
normal clouds except that it allows a transparent texture.
## Minor features
- Can now toggle atmospheric shock layers with `hasShockLayer`.
- Addons can now define `popupMessage` in their addon-manifest. This
will show a one time pop-up when the mod is first installed. Use this
for story mods to give the user a prompt to go in the right direction
with the mod. Means NH now requires [Menu
Framework](https://outerwildsmods.com/mods/menuframework/).
- `Ring` module now replaced with `Rings` module (can have multiple
rings per planet)
- Can override the far clip plane for a system from the star system
config (you're welcome Jammer)
## Improvements
- Various improvements for upcoming Quantum Space Buddies compatibility
mod.
- Made rain/snow heights more robust for larger planets.
- Improved Discord Rich Presence support (icons should show for more
addons)
- Proxies now have atmospheres and fog
- Ship log entry location marking now works in Bramble dimensions.
- If the user has an outdated version of Outer Wilds, a warning popup
will display.
- Adds disabling of renderers/colliders/shapes/lights when you're not at
the planet (can be disabled with `keepLoaded`).
- Allow ship log details to be added to vanilla planets
- Nomai shuttle landing radius is now properly set
- Added on screen button prompts when in debug mode
- Potentially fixes some threading issues when loading slides
- Improved scatter build time by not calling detail builder over and
over
- Added `preventOverlap` option to scatter. Is on by default but can be
disabled to increase performance. Useful when there is low change
anything will overlap (prop low density).
- Nomai remote cameras (projection pools) display the right camera
layers, and better show the protagonist. Uses
[CommonCameraUtility](https://github.com/xen-42/ow-common-camera-util)
## Bug fixes
- **Addons should now work properly on Linux**
- Only autosave debug mode configs if the save button is unlocked.
Prevents overwriting your configs unintentionally.
- Bramble dimensions will hide Bramble nodes inside then when you're
outside.
- Translation keys containing < or > or CDATA now work.
- Translated ship log facts no longer have the entry ID slapped in front
of them
- Fix a vanilla bug where being in a conversation and then getting
attached to something traps you in dialogue.
- Fixed a translation bug that affected Secret Worlds
- Does not fix the vision torch bug affecting "The Vision", but will at
least log an error when it happens now
- Fixed a translation bug where translations for NH itself weren't
reloaded when reloading configs
## Improvements
- Nomai remote cameras (projection pools) display the right camera
layers, and better show the protagonist. Uses
[CommonCameraUtility](https://github.com/xen-42/ow-common-camera-util)
## Improvements
- Improved scatter build time by not calling detail builder over and
over
- Added `preventOverlap` option to scatter. Is on by default but can be
disabled to increase performance. Useful when there is low change
anything will overlap (prop low density).
## Bug fixes
- This fixes race conditions when incrementing `displaySlidesLoaded`
becaise `++` isn't thread safe. In the case of `MakeSlideReel`, another
issue was fixed that happens even without parallelism: `if
(displaySlidesLoaded >= textures.Length)` would always be true after
some point and multiple reel textures would be created. But with
parallelism, it's possible for `displaySlidesLoaded` to never reach
`textures.Length` and in this case the texture wouldn't be created (or
the vision torch enabled). Sadly this doesn't change behavior for vision
targets, so this is unrelated to #381
Makes it handle slides with no path better, properly log errors when it
fails to load images, added tracking for if the image is loaded yet or
not (unused currently, could disable the slide/vision target if the
image don't load?).