Dynamic point & spotlight lighting for Minecraft 1.20.1 · 1.20.4 · 1.21.1
A BBS addon that brings real-time shadows, volumetric light shafts, and per-light specular to Iris shaderpacks — no shaderpack edits required.
IRLights is a client-side Fabric mod that extends BBS with a full dynamic lighting system. You place point lights and spotlights in your scene from the BBS editor, and IRLights does the rest:
- bakes per-light shadow maps every frame
- uploads all light data to the GPU via a single SSBO
- injects the matching GLSL into your shaderpack via a one-click patcher
The result is physically-plausible diffuse + specular lighting, hard/soft shadows, and volumetric fog shafts — all driven by BBS animation keyframes.
| Feature | Details |
|---|---|
| Point lights | Omnidirectional, cube-map shadows, radius + falloff |
| Spotlights | Cone angle, penumbra, atlas shadows |
| Volumetrics | Per-light ray-marched shafts with shadow occlusion |
| Specular | GGX BRDF, per-light roughness + intensity |
| Shadow quality | Four presets — Low / Medium / High / Ultra |
| SSBO pipeline | std430 binding 7, up to 64 lights per frame |
| Patcher | Injects GLSL into any supported shaderpack in one click |
| BBS UI | Light forms in the BBS editor, live preview |
IRLights ships ready-to-use .irlights patch files for all packs below.
Apply them once with the in-game patcher — no manual GLSL edits needed.
| Shaderpack | Author | Patch file |
|---|---|---|
| Photon | SixthSurge | patches/photon.irlights |
| Complementary Reimagined | EminGT | patches/complementaryreimagined.irlights |
| BSL Shaders | CaptTatsu | patches/bsl.irlights |
| Solas | Septonious | patches/solas.irlights |
| Bliss | X0nk | patches/bliss.irlights |
IRLights has three layers that work together:
┌─────────────────────────────────────────────────────┐
│ BBS Editor → PointLightForm / SpotlightForm │ you place lights here
└────────────────────────┬────────────────────────────┘
│
┌────────────────────────▼────────────────────────────┐
│ Java Addon → LightCollector → ShadowBaker │ bakes maps, fills SSBO
│ → LightBuffer (SSBO binding 7) │
│ → Iris sampler injection │
└────────────────────────┬────────────────────────────┘
│
┌────────────────────────▼────────────────────────────┐
│ Patcher → .irlights patches │ injects GLSL once
│ → PatchEngine (anchor-based edits) │
│ → validate / apply / revert UI │
└────────────────────────┬────────────────────────────┘
│
┌────────────────────────▼────────────────────────────┐
│ GLSL Inject → irlite_lights.glsl │ runs on GPU every frame
│ → diffuse · specular · shadows · VL │
└─────────────────────────────────────────────────────┘
Requirements: Minecraft 1.20.1–1.20.4 · Fabric Loader ≥ 0.19 · Iris ≥ 1.7 · BBS (latest)
A single
irlite-*.jarworks on both 1.20.1 and 1.20.4 — drop the same file into either instance.
- Drop
irlite-*.jarinto yourmods/folder alongside BBS and Iris. - Launch the game once to generate config.
- Open the IRLights category in BBS settings and pick your shaderpack.
- Click Apply Patch — the patcher injects the GLSL automatically.
- Enable the patched shaderpack in Iris and reload shaders.
- Enter a BBS scene and open the Lights panel in the editor.
- Add a Point Light or Spotlight and adjust radius, color, intensity, and shadow quality.
- Keyframe any light property for animated sequences.
- Reload shaders (
F3 + R) to see the result in real time.
./gradlew build
# output: build/libs/irlite-1.0-obt.jar (universal — built against 1.20.1, runs on both)
# dev-test against a specific Minecraft version:
./gradlew runClient -Pmc=1.20.1 # default
./gradlew runClient -Pmc=1.20.4The same compiled jar runs on both versions: every Minecraft member the mod touches is intermediary-stable across 1.20.1–1.20.4, so one build covers the whole range.
Minecraft 1.21.1 lives on the
port/1.21.1branch (the final addon line — BBS does not exist past 1.21.1). The shared engine is pulled from irl-core via a Gradle composite build.
Released under the MIT License — © 2026 qualet.
The shared lighting & patcher engine lives in irl-core
(also MIT). Third-party shaderpacks referenced in patches/ remain under the licenses of
their respective authors.