Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
Steadfast is free and open-source software developed by coderbot, and can be downloaded from https://modrinth.com/shader/steadfast-shaders (Modrinth), https://www.curseforge.com/minecraft/shaders/steadfast (CurseForge), or https://github.com/coderbot16/Steadfast (GitHub). Anyone can modify and distribute it under the terms of the GNU General Public License, version 3.
This is not an official Steadfast release and coderbot does not support it. Bug reports about it do not belong in Steadfast's issue tracker.
This pack is developed and updated on GitHub first - github.com/Remiiil1a/Firmament. Pages like this one are updated when a build is ready to publish, so they can lag behind; for the newest release notes, builds and work in progress, go to the GitHub repository.
Firmament (edit of coderbot's Steadfast)
A shaderpack for Minecraft: Java Edition, built for Iris + Sodium. It is an edit of coderbot's Steadfast, and takes its name from that.
Three tiers
Pick one at the top of the shader options. They change what a frame costs, not what the pack looks like:
| Tier | What it is |
|---|---|
| Medium (the factory setting) | The pack's own look: the temporal resolve on, SMAA off, everything else as it is. A fresh install and a reset both land here. |
| High | Medium plus full-resolution volumetric fog, PBR parallax on, and the coloured-light volume widened from 64 to 128 blocks |
| Low | Medium minus the volumetric fog, minus the PBR reflection trace, minus the water simulation, and minus the coloured-light fill - the pack's two per-frame compute passes |
Each tier sets every option it should, so switching between them is reversible: nothing is left behind from the tier before. Low is the lowest tier this edit ships; there is no tier below it and none is planned - a machine that needs one is better served by upstream Steadfast, which is built for that range.
What this edit adds
- Coloured block light - a soul lantern lights a wall blue where a torch lights it orange, two
sources that meet blend instead of one winning, and a light that is taken down takes its colour
with it. The colour is carried by a flood fill over a grid of voxels around the player, one
computed each frame, so it costs one dispatch of that grid per frame. How bright the world is
has not changed - the fill supplies a hue and never a level, so a cave is exactly as dark as
the game says it is. Two settings under the same switch:
Colored light range(how far the colour is carried - 32 to 128 blocks across, 64 by default) andColored light saturation. It needs Iris with compute shaders and custom images; where those are missing the pack still works and block light keeps the lightmap's own colour. - Materials (PBR) - normal, specular, parallax, subsurface and emissive maps from a labPBR resource pack, with reflections and self-shadowing built on them. Parallax has a smoothing option of its own, and the displacement is held inside the sprite the fragment came from rather than wrapped round to the far side of it.
- Reflections - a sky term per material, plus optional screen-space reflections of the world. A rough surface's reflection is gathered over the cone its own roughness opens rather than taken in one direction and called the answer, and the sky it reflects is gathered over the same cone. Metals have their own strength, because for a metal the reflection is the material rather than a sheen over it.
- Colored shadows - sunlight that has come through stained glass lands on the ground in the colour of the pane, and a nether portal tints the light around it with its own glow. How much colour the light takes on is a setting, and the portal's glow can be switched off on its own.
- Portal surfaces - the nether portal drawn as a body of violet plasma with real parallax, and the end portal and gateway as a void full of fading stars, instead of the game's scrolling textures. The colour follows the vanilla portal particles. Each of the three has its own switch, and the gate's stars answer to the same four settings that draw the End sky's stars. The nether gate ships off; the two end surfaces ship on. (These are surfaces - the end portal glows, it does not light the room around it.)
- Volumetric light, above and below the waterline - the shafts are drawn under water too, along the same light axis, brightened where the surface ripples gather them. They are lit as a medium rather than painted on: brightness follows the angle between the view and the sun, and air the sun does not reach is still lit by the sky instead of going black.
- Volumetric fog - the air marched through as a medium rather than tinted over the frame, at a quarter of the frame's resolution and lit by the shadow map, so the shafts through a canopy are cast by it. The medium is a world-locked noise drifting with the same wind the clouds use, so it never slides with the camera, and rain thickens it. Its density is a setting per part of the day - dawn, noon, dusk and night - and per dimension: the End has one value, the Nether's air one of its own, and water one that follows neither the clock nor the rain. It fades out where the sky cannot reach it and above the surface of water seen from outside, and the last stretch of the march fades rather than stopping, so the medium has no visible edge.
- The End's own sky - a giant celestial body with the gravitational lens around it (the sky behind it bent, the star field stretched into arcs), and the pack's own stars and nebula.
- Water - refraction, screen-space reflection, water parallax, caustics, the sun and moon reflected in it (and no longer drawn into water that has no sky above it), and absorption by depth. Waterfalls and water running downhill are drawn as water too, with the same surface, colour and reflections as a still one.
- Volumetric clouds - a layer of cube-shaped cells in place of Minecraft's flat cloud boxes, with scattering inside the cloud, and its phase, transmittance and height falloff as settings. Plus the Nether's smoke plumes, and the pack's own rain and snow particles.
- Enchantment glint brightness - the sparkle on an enchanted item can be made brighter. At the shipped value it contributes four times what it did.
- Temporal antialiasing - on by default, with the history weighted by how far the pixel moved. Bloom - anything brighter than the display can hold spills a glow around itself; the specular highlight is left out of it by default, because a highlight is a picture of a light rather than a light.
- A full shader options menu - every feature above is a page of its own, with a material debug view and a set of debug views for the light volume.
Requirements
- Iris + Sodium, on Minecraft 1.21.x. OptiFine is not supported.
- Coloured block light - like the water simulation, it needs Iris with compute shaders and custom images: OpenGL 4.2 and up, which macOS does not have. On a loader without them the pack still works, and block light keeps the lightmap's colour.
- Voxy and Distant Horizons are both supported, so distant terrain is drawn in the same frame as the rest of it.
- Optional: a labPBR resource pack. Without one the pack works normally and materials
decode to a flat surface. With one, leave
Materials (PBR) > Material formatonLabPBR; without one, set it toOff.
Known limitations
- TAA has no object motion vectors - the previous frame's camera is used for reprojection, but nothing tells it how an entity or a particle moved, so those are handled by rejecting history that disagrees rather than by tracking it. Voxy terrain is likewise not covered by its sub-pixel jitter.
- Reflections are left out where they cannot be right - a surface seen through water, ice or glass gets no environment reflection at all, and neither does a face turned towards the camera, because a ray that points back at the viewer has nothing in front of it to trace.
- The nether portal's surface ships off, by choice rather than by accident: it is the one of
the three whose look was least settled.
Portals > Nether portal surfaceturns it on.
Derived from
Steadfast, by coderbot - https://github.com/coderbot16/Steadfast
Firmament is an edit of Steadfast. Steadfast's rendering is the base, and this pack modifies and extends it: its own water, the End's sky with a gravitational lens, the volumetric fog and clouds, the three performance tiers, coloured lights and shadows, and the PBR material work are built on top of Steadfast's pipeline. It is distributed under the GPLv3 and Steadfast's additional terms, including the required name ending and the notice reproduced at the top of this description.
Bliss Shader (an edit of Chocapic13's shaders), by X0nk - https://github.com/X0nk/Bliss-Shader
The Nether's smoke plumes and the cloud function were ported from Bliss onto this pack's own noise
and clock (shaders/environment/effects/volumetric_fog.glsl). No assets, logos or screenshots are
reused. Bliss's own LICENSE.md is a single line, "© 2020 Chocapic13. All rights reserved.",
inherited from the base it edits, so both the edit and that base are credited in the pack.
Mellow Shader v3.4, by TheCMK - https://github.com/TheCMK/Mellow-Shader
The temporal antialiasing follows Mellow's implementation - weighting the history by how far the
pixel moved, and its Catmull-Rom fetch of the history - and the material model follows its approach.
Mellow Shader is Copyright (c) 2026 TheCMK, MIT licensed; a verbatim copy of that licence, and the
Apache licence from the same pack, are included in the download as LICENSE-MELLOW-MIT.txt and
LICENSE-MELLOW-APACHE.txt.
Sundial Lite, by geforcelegend - https://github.com/geforcelegend/Sundial-Lite
The metal response follows Sundial Lite: its table of reflectance values at 82 degrees is copied verbatim, including which byte means which metal, and the reflectance curve comes from its Composite0, with the threshold generalised into a setting of its own. The PBR diffuse weight curve is Sundial's as well, and so are several smaller tests - the thickness window the reflection march accepts an occlusion within, the ray-tracing bias, the way a beacon beam's translucent half is dropped, the rain fog, and the closest-to-camera tap pattern. Sundial Lite is GPLv3, the same licence as this pack. (This entry used to credit Sundial for screen-space shadows past the shadow map's reach; that effect was removed in an earlier release, and what is listed here is what is actually still in the tree.)
Eclipse Shader (an edit of Bliss Shader), by Merlin1809 - https://github.com/Merlin1809/Eclipse-Shader
The water interaction - the waves a player or a boat leaves behind - is ported from Eclipse: its
wave simulation, and the arrangement of the two compute steps that integrate it. The shape of the
coloured-light volume follows Eclipse's LPV as well: a voxel grid snapped to whole blocks around the
player, written by the shadow pass, propagated one step per frame by a compute program, and read
back with a filter. What is deliberately not taken is its treatment of brightness - Eclipse lets the
voxel field decide how bright a surface is, and this pack keeps that on the lightmap. No assets,
logos or screenshots are reused. Eclipse's LICENSE.md is the single line "© 2020 Chocapic13. All
rights reserved.", inherited from Bliss, the base it edits, so Eclipse, Bliss and Chocapic13 are
credited together.
No assets are reused from any of these. No textures, no logos, no screenshots, and none of their names is part of this pack's name or branding. The labPBR material layout follows the shaderLABS community's conventions.
Credits
- Direction, testing and tuning are by Remiiil1a; the code is written by DeepSeek V4.1 Flash (AI).
- The screenshots were taken with SPBR by ShulkerSakura, a vanilla PBR and parallax resource pack built on Vanilla Normals Renewed by Poudingue and licensed under the GPLv3. The textures in them are theirs, not part of this pack.


