OpalLight provides a universal colored light API for Minecraft. Unlike common full-screen shader approaches, OpalLight uses per-block, voxel-level RGB light propagation——colors travel through blocks via BFS, attenuate with distance, mix across RGB channels, and take the strongest value within each channel. This means colored lighting renders correctly around corners and through complex geometry, rather than being a screen-space post-effect.
The key advantage: automatically compatible with the vast majority of Iris Shaders with zero user configuration.
ModificationEvent.Seven colored lanterns are included as API usage demonstrations:
| Lantern | Recipe |
|---|---|
| Red / Orange / Yellow / Green / Cyan / Blue / Purple Lantern | Vanilla lantern + matching dye (shapeless) |
Each lantern is registered through OpalLight's API, showing how blocks are associated with RGB colors.





// Listen to ModificationEvent to register colored light for any block
@SubscribeEvent
public static void onLightModification(LightDataLoader.ModificationEvent event) {
event.getDataByBlock().put(
MyBlocks.GLOWING_CRYSTAL,
List.of(new LightDataLoader.OpalData(new OpalColor(0.2f, 0.8f, 1.0f), Optional.empty()))
);
}
Or drop a JSON file under assets/<modid>/opal_data/ for zero-code integration.
| Project | Status |
|---|---|
| Iris Shaders | Auto-compatible with most shader packs |
| NeoForge 1.21.1 | Native platform |
| Other mods' light-emitting blocks | Compatible via API registration |