Tags
Creators
Details
mc1.21.1-1.0.0-beta.5+neoforge
Compatibility
Changes
Nuit 1.0.0-beta.5 for Minecraft 1.21.1
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.
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.
Full Changelog: https://github.com/FlashyReese/nuit/compare/mc1.20.5-0.7.4...mc1.21.1-1.0.0-beta.5
Supplementary resources
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:YBz7DOs8:4Lc7jdSa"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:YBz7DOs8:4Lc7jdSa"
}

