Formerly known as FabricSkyBoxes, Nuit is a powerful and flexible custom skybox engine for Minecraft.
It goes far beyond OptiFine’s skybox system, offering rich features like keyframe-based transitions, rotation, custom weather rendering, and full support for both Fabric and NeoForge.
Design immersive skies with dynamic day/night cycles, custom fog, sunrise/sunset glow, weather-aware rendering, and more, all backed by a robust JSON skybox format.
Nuit is currently in beta. Some features may evolve over time. Feedback is welcome.
View the Wiki and Format Documentation
Source Code on GitHub
Showcase
Features
- Fabric and NeoForge support
- Keyframeable fade and rotation transitions
- Custom sunrise, sunset, night, and weather rendering
- Fog customization per skybox
- Modular JSON-based skybox format
- Animated textures with optional frame interpolation
- Optimized texture loading and runtime performance
Skybox Format
Nuit uses a custom JSON-based format designed for flexibility and future-proofing.
You can create highly detailed and dynamic skyboxes with precise control over how and when they render.
Learn how to create your own skyboxes in the Wiki Format Documentation.
Frequently Asked Questions
Can I use OptiFine/MCPatcher skybox packs?
Nuit does not support those formats natively. Use Nuit Interop to load compatible OptiFine/MCPatcher custom sky resource packs through Nuit.
Is it modpack friendly?
Yes. Nuit is licensed under MIT and fully modpack-compatible.
What happened to FabricSkyBoxes?
FabricSkyBoxes has been rebranded to Nuit to reflect its expanded scope beyond Fabric.
Credits
- Nuit logo by UsernameGeri
- Logo render uses Minecraft World | high quality | free by SOLDMARS, licensed under Creative Commons Attribution
Community & Support
- Feature suggestions & issue tracker
- Discord for help, discussion, and previews
Breathe new life into your Minecraft skies with Nuit.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", a named World Clock (including datapack-provided clocks) or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added custom skybox rendering in dimensions whose vanilla sky type is
none. - Added validation and warnings for missing or incorrectly referenced World Clocks.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- World Clock animations now use render-interpolated time and respect paused or custom-rate clocks.
- Memoized render pipelines and switched skybox rendering to local model-view matrices instead of mutating Minecraft's global render stack.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Corrected the orientation of sunrise and sunset shading.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default.
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", a named World Clock (including datapack-provided clocks) or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added custom skybox rendering in dimensions whose vanilla sky type is
none. - Added validation and warnings for missing or incorrectly referenced World Clocks.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- World Clock animations now use render-interpolated time and respect paused or custom-rate clocks.
- Memoized render pipelines and switched skybox rendering to local model-view matrices instead of mutating Minecraft's global render stack.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Corrected the orientation of sunrise and sunset shading.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default.
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", a named World Clock (including datapack-provided clocks) or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added custom skybox rendering in dimensions whose vanilla sky type is
none. - Added validation and warnings for missing or incorrectly referenced World Clocks.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- World Clock animations now use render-interpolated time and respect paused or custom-rate clocks.
- Reduced per-frame rendering overhead by skipping fully transparent skyboxes and avoiding unused animation work.
- Memoized render pipelines and switched skybox rendering to local model-view matrices instead of mutating Minecraft's global render stack.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Corrected the orientation of sunrise and sunset shading.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default.
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", a named World Clock (including datapack-provided clocks) or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added custom skybox rendering in dimensions whose vanilla sky type is
none. - Added validation and warnings for missing or incorrectly referenced World Clocks.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- World Clock animations now use render-interpolated time and respect paused or custom-rate clocks.
- Reduced per-frame rendering overhead by skipping fully transparent skyboxes and avoiding unused animation work.
- Memoized render pipelines and switched skybox rendering to local model-view matrices instead of mutating Minecraft's global render stack.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Corrected the orientation of sunrise and sunset shading.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default.
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added custom skybox rendering in dimensions whose vanilla sky type is
none.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- Reduced per-frame rendering overhead by skipping fully transparent skyboxes and avoiding unused animation work.
- Memoized render pipelines and switched skybox rendering to local model-view matrices instead of mutating Minecraft's global render stack.
- Decoration stars now use Nuit's own renderer so skybox alpha, color, and blend settings apply without globally overriding Minecraft's render state.
- Tightened Fabric and NeoForge compatibility metadata to Minecraft 1.21.11 instead of declaring compatibility with later versions.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Corrected the orientation of sunrise and sunset shading.
- Restored the intended default for
multi-texturedanimations:interpolateis nowfalseunless explicitly enabled. - Fixed a NeoForge crash when Nuit replaces the vanilla sky render pass.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default. - Minecraft 1.21.11 predates named World Clocks. Named clock identifiers and
clockorworld_clockobjects are rejected; use"default","game_time", or a fixed clock instead.
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added custom skybox rendering in dimensions whose vanilla sky type is
none.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- Reduced per-frame rendering overhead by skipping fully transparent skyboxes and avoiding unused animation work.
- Memoized render pipelines and switched skybox rendering to local model-view matrices instead of mutating Minecraft's global render stack.
- Decoration stars now use Nuit's own renderer so skybox alpha, color, and blend settings apply without globally overriding Minecraft's render state.
- Tightened Fabric and NeoForge compatibility metadata to Minecraft 1.21.11 instead of declaring compatibility with later versions.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Corrected the orientation of sunrise and sunset shading.
- Restored the intended default for
multi-texturedanimations:interpolateis nowfalseunless explicitly enabled. - Fixed a NeoForge crash when Nuit replaces the vanilla sky render pass.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default. - Minecraft 1.21.11 predates named World Clocks. Named clock identifiers and
clockorworld_clockobjects are rejected; use"default","game_time", or a fixed clock instead.
This is the first Nuit beta for Minecraft 1.21.1. It replaces FabricSkyBoxes 0.7.4 on this Minecraft line and completes a backport of the current Nuit feature set.
- Migration note:** Nuit is the successor to FabricSkyBoxes, not a drop-in update. The mod ID, Java API packages, and native resource-pack format have changed. Existing FabricSkyBoxes, OptiFine, and MCPatcher packs require [Nuit Interop](https://modrinth.com/mod/nuit-interop).
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added NeoForge support alongside Fabric through a shared multiloader codebase.
- Added Nuit's schema-based skybox format with
overworld,end,monocolor,square-textured,multi-textured, anddecorationsskybox types. - Added keyframe-based fades and rotation, configurable fog, layer ordering, animated textures, and biome, dimension, sky type, weather, effect, and coordinate conditions.
- Added optional frame interpolation for
multi-texturedanimations, including an Iris-compatible fallback. - Added
visibleUnderwaterso individual skyboxes can opt out of underwater rendering. - Added a client API for registering custom skybox types and managing reloadable or permanent runtime skyboxes.
- Added German, Hungarian, Malay, and Malay (Jawi) translations.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- Reduced per-frame rendering overhead by skipping fully transparent skyboxes and avoiding unused animation work.
- Renamed the project and mod ID from
fabricskyboxestonuit. Native skybox definitions now load fromassets/nuit/sky/**/*.json. - Made
fadeoptional and removed the oldalwaysOnfield. Empty fade keyframes now mean the layer remains visible while its conditions pass. - Renamed the conditions field from
weatherstoweather, expanded weather matching, and made numeric ranges use[min, max)bounds. - Changed the default rotation axis to Y.
- Updated the logo, metadata, schema documentation, and API guide for the Nuit beta line.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Restored the intended default for
multi-texturedanimations:interpolateis nowfalseunless explicitly enabled. - Fixed texture and skybox cleanup during reloads, preventing stale resources and memory leaks.
- Fixed resource reloads being applied before asynchronous preparation completed.
- Fixed decoration textures not being registered before rendering.
- Fixed
monocolorrendering and cyclical fade interpolation. - Fixed custom sun, moon, and star layers disappearing during rain or snow and corrected sunrise/sunset alpha handling.
- Fixed dimension and world exclusion checks, blocked-environment conditions, weather conditions, and condition transition behavior.
- Fixed NeoForge debug-screen initialization and improved compatibility with Iris frame interpolation.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default. - Minecraft 1.21.1 predates named World Clocks. Named clock identifiers and
clockorworld_clockobjects are rejected; use"default","game_time", or a fixed clock instead.
This is the first Nuit beta for Minecraft 1.21.1. It replaces FabricSkyBoxes 0.7.4 on this Minecraft line and completes a backport of the current Nuit feature set.
- Migration note:** Nuit is the successor to FabricSkyBoxes, not a drop-in update. The mod ID, Java API packages, and native resource-pack format have changed. Existing FabricSkyBoxes, OptiFine, and MCPatcher packs require [Nuit Interop](https://modrinth.com/mod/nuit-interop).
### Added
- Added per-skybox
properties.clocksources for fades and uniform rotation. - Clock sources can use
"default","game_time", or a fixed clock. - Added synchronization between eligible rotating sun decorations and Minecraft's sunrise, sunset, and atmospheric fog direction.
- Added NeoForge support alongside Fabric through a shared multiloader codebase.
- Added Nuit's schema-based skybox format with
overworld,end,monocolor,square-textured,multi-textured, anddecorationsskybox types. - Added keyframe-based fades and rotation, configurable fog, layer ordering, animated textures, and biome, dimension, sky type, weather, effect, and coordinate conditions.
- Added optional frame interpolation for
multi-texturedanimations, including an Iris-compatible fallback. - Added
visibleUnderwaterso individual skyboxes can opt out of underwater rendering. - Added a client API for registering custom skybox types and managing reloadable or permanent runtime skyboxes.
- Added German, Hungarian, Malay, and Malay (Jawi) translations.
### Changed
- Sun decorations with conflicting clock or rotation settings now fall back to the dimension's normal celestial direction and emit one warning.
- Rotation durations must now be at least one tick, and the schema documentation now explains clock and rotation behavior.
- Reduced per-frame rendering overhead by skipping fully transparent skyboxes and avoiding unused animation work.
- Renamed the project and mod ID from
fabricskyboxestonuit. Native skybox definitions now load fromassets/nuit/sky/**/*.json. - Made
fadeoptional and removed the oldalwaysOnfield. Empty fade keyframes now mean the layer remains visible while its conditions pass. - Renamed the conditions field from
weatherstoweather, expanded weather matching, and made numeric ranges use[min, max)bounds. - Changed the default rotation axis to Y.
- Updated the logo, metadata, schema documentation, and API guide for the Nuit beta line.
### Fixed
- Restored historical rotation behavior:
skyboxRotation: falsefollows Minecraft's celestial angle,skyboxRotation: trueuses uniform clock rotation, andspeed: 0disables time-based rotation. - Prevented moon-only and stars-only decoration layers from controlling sunrise and fog orientation.
- Restored the intended default for
multi-texturedanimations:interpolateis nowfalseunless explicitly enabled. - Fixed texture and skybox cleanup during reloads, preventing stale resources and memory leaks.
- Fixed resource reloads being applied before asynchronous preparation completed.
- Fixed decoration textures not being registered before rendering.
- Fixed
monocolorrendering and cyclical fade interpolation. - Fixed custom sun, moon, and star layers disappearing during rain or snow and corrected sunrise/sunset alpha handling.
- Fixed dimension and world exclusion checks, blocked-environment conditions, weather conditions, and condition transition behavior.
- Fixed NeoForge debug-screen initialization and improved compatibility with Iris frame interpolation.
### Compatibility
- The
clockproperty is optional; the current dimension's normal clock remains the default. - Minecraft 1.21.1 predates named World Clocks. Named clock identifiers and
clockorworld_clockobjects are rejected; use"default","game_time", or a fixed clock instead.
- Added Hungarian translation by @UsernameGeri in https://github.com/FlashyReese/nuit/pull/156
- Add Malay and Malay (Jawi) translations by @NuruddinPlays in https://github.com/FlashyReese/nuit/pull/149
- Added German Translation by @Lucanoria in https://github.com/FlashyReese/nuit/pull/125
- Fix readme link by @Madis0 in https://github.com/FlashyReese/nuit/pull/150
## New Contributors
- @UsernameGeri made their first contribution in https://github.com/FlashyReese/nuit/pull/156
- @NuruddinPlays made their first contribution in https://github.com/FlashyReese/nuit/pull/149
- @Lucanoria made their first contribution in https://github.com/FlashyReese/nuit/pull/125
- @Madis0 made their first contribution in https://github.com/FlashyReese/nuit/pull/150
- Added Hungarian translation by @UsernameGeri in https://github.com/FlashyReese/nuit/pull/156
- Add Malay and Malay (Jawi) translations by @NuruddinPlays in https://github.com/FlashyReese/nuit/pull/149
- Added German Translation by @Lucanoria in https://github.com/FlashyReese/nuit/pull/125
- Fix readme link by @Madis0 in https://github.com/FlashyReese/nuit/pull/150
## New Contributors
- @UsernameGeri made their first contribution in https://github.com/FlashyReese/nuit/pull/156
- @NuruddinPlays made their first contribution in https://github.com/FlashyReese/nuit/pull/149
- @Lucanoria made their first contribution in https://github.com/FlashyReese/nuit/pull/125
- @Madis0 made their first contribution in https://github.com/FlashyReese/nuit/pull/150
> ⚠️ **Note**: This is a **beta release**. Expect some polish and final adjustments in upcoming updates.
📘 **[View the Wiki and Migration Guide →](https://wiki.nuit.flashyreese.me/)**
## 🆕 What’s New
### 🔁 Mod Rebranding
- Renamed from _FabricSkyboxes_ to _Nuit_** to reflect broader mod loader support.
- New mod icon** and cleaned-up internal package structure.
### 🧱 Loader Support
- ➕ Added support for **NeoForge** alongside **Fabric**.
- 🛠️ Improved multiloader structure and removed dependency on Architectury.
### 🎨 Feature Additions
- ➕ **
visibleUnderwater**: Skyboxes can now render when underwater. - ➕ **Keyframe-Based Fade System**:
fadeis now a flexible, timeline-based system. - ➕ **Keyframe-Based Rotation**: Supports smooth, timed rotation using custom keyframes.
- ➕ **Invertible Conditions**: Biome/world/dimension conditions now support negation.
- ➕ **Texture Preloading**: Skybox textures load at resource pack initialization for better performance.
## 🎨 Visual & Rendering Improvements
- 🌅 Fixed alpha and flickering issues with sunrise/sunset transitions.
- 🌧️ Resolved sun, moon, and stars disappearing during rain/snow.
- 🌑 Fixed rendering for
monocolorandoverworldskybox types. - 🔁 Addressed cyclical fade and alpha interpolation bugs.
## 🔧 Configuration & Refactors
- 🔄 Removed deprecated
alwaysOnfrom fade settings. - 🎛️ Refactored fade, fog, and decoration properties into modular components.
- 🧱 Renamed
weathers→weatherin condition configuration. - 🧪 Improved registry handling and condition serialization.
## 🛠️ Bug Fixes
- ✅ Fixed memory leaks and rendering cleanup issues.
- ✅ Resolved build issues on NeoForge and remapping errors.
- ✅ Corrected keyframe logic, default handlers, and condition resolution.
- ✅ Numerous internal codebase cleanups and naming standardization.
## 👥 Contributors
A huge thank you to everyone who helped push Nuit forward:
- [@FlashyReese](https://github.com/FlashyReese)
- [@UsernameGeri](https://github.com/UsernameGeri)
- [@AMereBagatelle](https://github.com/AMereBagatelle)
- [@lowercasebtw](https://github.com/lowercasebtw)
- [@Happyfrozenfire](https://github.com/Happyfrozenfire)
## ⚠️ Migration Notes
If you're upgrading from **FabricSkyboxes
0.7.4**:
- Update your mod reference from
fabricskyboxesto **nuit**. - Review and update your skybox files to adopt the **new keyframe-based
fadeformat**. - Choose the correct mod loader (**Fabric** or **NeoForge**) for your setup.
- 📘 Full migration documentation:
> ⚠️ **Note**: This is a **beta release**. Expect some polish and final adjustments in upcoming updates.
📘 **[View the Wiki and Migration Guide →](https://wiki.nuit.flashyreese.me/)**
## 🆕 What’s New
### 🔁 Mod Rebranding
- Renamed from _FabricSkyboxes_ to _Nuit_** to reflect broader mod loader support.
- New mod icon** and cleaned-up internal package structure.
### 🧱 Loader Support
- ➕ Added support for **NeoForge** alongside **Fabric**.
- 🛠️ Improved multiloader structure and removed dependency on Architectury.
### 🎨 Feature Additions
- ➕ **
visibleUnderwater**: Skyboxes can now render when underwater. - ➕ **Keyframe-Based Fade System**:
fadeis now a flexible, timeline-based system. - ➕ **Keyframe-Based Rotation**: Supports smooth, timed rotation using custom keyframes.
- ➕ **Invertible Conditions**: Biome/world/dimension conditions now support negation.
- ➕ **Texture Preloading**: Skybox textures load at resource pack initialization for better performance.
## 🎨 Visual & Rendering Improvements
- 🌅 Fixed alpha and flickering issues with sunrise/sunset transitions.
- 🌧️ Resolved sun, moon, and stars disappearing during rain/snow.
- 🌑 Fixed rendering for
monocolorandoverworldskybox types. - 🔁 Addressed cyclical fade and alpha interpolation bugs.
## 🔧 Configuration & Refactors
- 🔄 Removed deprecated
alwaysOnfrom fade settings. - 🎛️ Refactored fade, fog, and decoration properties into modular components.
- 🧱 Renamed
weathers→weatherin condition configuration. - 🧪 Improved registry handling and condition serialization.
## 🛠️ Bug Fixes
- ✅ Fixed memory leaks and rendering cleanup issues.
- ✅ Resolved build issues on NeoForge and remapping errors.
- ✅ Corrected keyframe logic, default handlers, and condition resolution.
- ✅ Numerous internal codebase cleanups and naming standardization.
## 👥 Contributors
A huge thank you to everyone who helped push Nuit forward:
- [@FlashyReese](https://github.com/FlashyReese)
- [@UsernameGeri](https://github.com/UsernameGeri)
- [@AMereBagatelle](https://github.com/AMereBagatelle)
- [@lowercasebtw](https://github.com/lowercasebtw)
- [@Happyfrozenfire](https://github.com/Happyfrozenfire)
## ⚠️ Migration Notes
If you're upgrading from **FabricSkyboxes
0.7.4**:
- Update your mod reference from
fabricskyboxesto **nuit**. - Review and update your skybox files to adopt the **new keyframe-based
fadeformat**. - Choose the correct mod loader (**Fabric** or **NeoForge**) for your setup.
- 📘 Full migration documentation:
> ⚠️ **Note**: This is a **beta release**. Expect some polish and final adjustments in upcoming updates.
📘 **[View the Wiki and Migration Guide →](https://wiki.nuit.flashyreese.me/)**
## 🆕 What’s New
### 🔁 Mod Rebranding
- Renamed from _FabricSkyboxes_ to _Nuit_** to reflect broader mod loader support.
- New mod icon** and cleaned-up internal package structure.
### 🧱 Loader Support
- ➕ Added support for **NeoForge** alongside **Fabric**.
- 🛠️ Improved multiloader structure and removed dependency on Architectury.
### 🎨 Feature Additions
- ➕ **
visibleUnderwater**: Skyboxes can now render when underwater. - ➕ **Keyframe-Based Fade System**:
fadeis now a flexible, timeline-based system. - ➕ **Keyframe-Based Rotation**: Supports smooth, timed rotation using custom keyframes.
- ➕ **Invertible Conditions**: Biome/world/dimension conditions now support negation.
- ➕ **Texture Preloading**: Skybox textures load at resource pack initialization for better performance.
## 🎨 Visual & Rendering Improvements
- 🌅 Fixed alpha and flickering issues with sunrise/sunset transitions.
- 🌧️ Resolved sun, moon, and stars disappearing during rain/snow.
- 🌑 Fixed rendering for
monocolorandoverworldskybox types. - 🔁 Addressed cyclical fade and alpha interpolation bugs.
## 🔧 Configuration & Refactors
- 🔄 Removed deprecated
alwaysOnfrom fade settings. - 🎛️ Refactored fade, fog, and decoration properties into modular components.
- 🧱 Renamed
weathers→weatherin condition configuration. - 🧪 Improved registry handling and condition serialization.
## 🛠️ Bug Fixes
- ✅ Fixed memory leaks and rendering cleanup issues.
- ✅ Resolved build issues on NeoForge and remapping errors.
- ✅ Corrected keyframe logic, default handlers, and condition resolution.
- ✅ Numerous internal codebase cleanups and naming standardization.
## 👥 Contributors
A huge thank you to everyone who helped push Nuit forward:
- [@FlashyReese](https://github.com/FlashyReese)
- [@UsernameGeri](https://github.com/UsernameGeri)
- [@AMereBagatelle](https://github.com/AMereBagatelle)
- [@lowercasebtw](https://github.com/lowercasebtw)
- [@Happyfrozenfire](https://github.com/Happyfrozenfire)
## ⚠️ Migration Notes
If you're upgrading from **FabricSkyboxes
0.7.4**:- Update your mod reference from
fabricskyboxesto **nuit**. - Review and update your skybox files to adopt the **new keyframe-based
fadeformat**. - Choose the correct mod loader (**Fabric** or **NeoForge**) for your setup.
- 📘 Full migration documentation:
> ⚠️ **Note**: This is a **beta release**. Expect some polish and final adjustments in upcoming updates.
📘 **[View the Wiki and Migration Guide →](https://wiki.nuit.flashyreese.me/)**
## 🆕 What’s New
### 🔁 Mod Rebranding
- Renamed from _FabricSkyboxes_ to _Nuit_** to reflect broader mod loader support.
- New mod icon** and cleaned-up internal package structure.
### 🧱 Loader Support
- ➕ Added support for **NeoForge** alongside **Fabric**.
- 🛠️ Improved multiloader structure and removed dependency on Architectury.
### 🎨 Feature Additions
- ➕ **
visibleUnderwater**: Skyboxes can now render when underwater. - ➕ **Keyframe-Based Fade System**:
fadeis now a flexible, timeline-based system. - ➕ **Keyframe-Based Rotation**: Supports smooth, timed rotation using custom keyframes.
- ➕ **Invertible Conditions**: Biome/world/dimension conditions now support negation.
- ➕ **Texture Preloading**: Skybox textures load at resource pack initialization for better performance.
## 🎨 Visual & Rendering Improvements
- 🌅 Fixed alpha and flickering issues with sunrise/sunset transitions.
- 🌧️ Resolved sun, moon, and stars disappearing during rain/snow.
- 🌑 Fixed rendering for
monocolorandoverworldskybox types. - 🔁 Addressed cyclical fade and alpha interpolation bugs.
## 🔧 Configuration & Refactors
- 🔄 Removed deprecated
alwaysOnfrom fade settings. - 🎛️ Refactored fade, fog, and decoration properties into modular components.
- 🧱 Renamed
weathers→weatherin condition configuration. - 🧪 Improved registry handling and condition serialization.
## 🛠️ Bug Fixes
- ✅ Fixed memory leaks and rendering cleanup issues.
- ✅ Resolved build issues on NeoForge and remapping errors.
- ✅ Corrected keyframe logic, default handlers, and condition resolution.
- ✅ Numerous internal codebase cleanups and naming standardization.
## 👥 Contributors
A huge thank you to everyone who helped push Nuit forward:
- [@FlashyReese](https://github.com/FlashyReese)
- [@UsernameGeri](https://github.com/UsernameGeri)
- [@AMereBagatelle](https://github.com/AMereBagatelle)
- [@lowercasebtw](https://github.com/lowercasebtw)
- [@Happyfrozenfire](https://github.com/Happyfrozenfire)
## ⚠️ Migration Notes
If you're upgrading from **FabricSkyboxes
0.7.4**:- Update your mod reference from
fabricskyboxesto **nuit**. - Review and update your skybox files to adopt the **new keyframe-based
fadeformat**. - Choose the correct mod loader (**Fabric** or **NeoForge**) for your setup.
- 📘 Full migration documentation:


