Skip to content

Repository files navigation

✦ IRLights

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.

Minecraft Fabric License


What is IRLights?

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.


Features

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 2048 lights per frame
Patcher Injects GLSL into any supported shaderpack in one click
BBS UI Light forms in the BBS editor, live preview

Supported Shaderpacks

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
Rethinking Voxels gri573 patches/rethinkingvoxels.irlights
IterationRP † Tahnass patches/iterationrp.irlights

† IterationRP is a paid shaderpack — buy it from the author. Our .irlights patch is free and public, but it only applies on top of a copy you already own.


How It Works

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    │
└─────────────────────────────────────────────────────┘

Installation

Requirements: Minecraft 1.20.1 / 1.20.4 · Fabric Loader ≥ 0.19 · Iris ≥ 1.7 · BBS (latest)

Jars are per-version — grab the one matching your instance: irlite-1.1+mc1.20.1.jar or irlite-1.1+mc1.20.4.jar.

  1. Drop irlite-*.jar into your mods/ folder alongside BBS and Iris.
  2. Launch the game once to generate config.
  3. Open the IRLights category in BBS settings and pick your shaderpack.
  4. Click Apply Patch — the patcher injects the GLSL automatically.
  5. Enable the patched shaderpack in Iris and reload shaders.

Usage

  1. Enter a BBS scene and open the Lights panel in the editor.
  2. Add a Point Light or Spotlight and adjust radius, color, intensity, and shadow quality.
  3. Keyframe any light property for animated sequences.
  4. Reload shaders (F3 + R) to see the result in real time.

Building from Source

The addon consumes the shared irl-core engine as a per-version Maven dependency, so publish the matching core to mavenLocal first:

# 1) publish the matching core (from the irl-core repo)
../irl-core/gradlew publishToMavenLocal

# 2) build the addon for a specific Minecraft version
./gradlew build --refresh-dependencies -Pmc=1.20.4   # or -Pmc=1.20.1
# output: build/libs/irlite-1.1+mc1.20.4.jar

# dev-test against a specific version:
./gradlew runClient -Pmc=1.20.4

Each Minecraft version produces its own jar (the +mc<version> suffix); the old universal 1.0-obt jar is gone. irl-core is remapped to the target mappings and JiJ-bundled via Loom's include, so the shipped jar is self-contained.

Minecraft 1.21.1 lives on the port/1.21.1 branch (the final addon line — BBS does not exist past 1.21.1).


Releasing

Cutting a release is one command:

pwsh -File tools/release.ps1 -Version 1.1.2

It bumps mod_version, builds the 1.20.1 product jar, then creates the v1.1.2 tag and a GitHub Release with the jar attached and notes generated from the commit log — all in one step. Add -DryRun to preview, -Draft to review before publishing.

The jar is built locally on purpose: the addon links against the third-party BBS jar, which is not in git and cannot be republished, so it cannot be produced on a clean CI runner. The release.yml workflow is only a safety net — if a v* tag is ever pushed by hand, it creates a draft Release with notes (no jar) so the tag is not lost.


License

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.

About

IRLite - BBS Mod Studio add-on: real-time lights and shadows via shaderpack patching (Fabric)

Resources

Stars

21 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages