This mod is a direct fork of erykczy's Colorful Lighting. Our main goal with this fork is to extend mod compatibility for use in larger modpacks. If you find an incompatible mod, please report it on the GitHub Issues page.
This mod is built on top of Minecraft's vanilla lighting engine. It works by storing an extra set of data alongside the vanilla light levels, representing the color of the light in that block. When a light-emitting block is placed, the mod checks a list of configurable "emitters" to see if it should have a color. If it does, the color is propagated outwards, block by block, diminishing with distance, just like the vanilla engine.
When light passes through a semi-transparent block, the mod checks a list of "filters". These filters can change the color of the light passing through them. For example, red-stained glass can be configured to filter out all but the red component of light. The amount of light that is blocked can also be configured.
To avoid performance issues, all of this light propagation is handled on a separate thread, which means it won't slow down your game. The mod also uses techniques like trilinear interpolation to smooth out the colors between blocks, which creates a more natural look.
/cl on to bypass!In your resourcepack's namespace folder (where folders like textures and models are located), create a light folder. There, you can create an emitters.json file, which defines what light colors blocks emit.
This file defines the color of light emitted by blocks. You can specify a simple color or use a more complex object to handle block states.
{
"minecraft:torch": "vanilla", // Same color used in Vanilla lighting
"minecraft:glowstone": "#00FF00", // color in hex
"minecraft:red_candle": "red", // Minecraft dye name
"minecraft:redstone_lamp": [0,255,255], // RGB array
"minecraft:soul_torch": "purple;5", // override light level emission value after ';' is a hex number from 0 to F (F = 15)
}
You can define different colors for different block states.
{
"minecraft:furnace": {
"default": "orange",
"states": {
"lit=true": "red",
"lit=false": "#000000"
}
}
}
This file defines how light is colored when passing through blocks (like stained glass). You can also specify light absorption (0-15), where 0 allows all light to pass and 15 blocks all light.
{
"minecraft:red_stained_glass": "#00FF00", // color in hex
"minecraft:green_stained_glass": "red", // dye name
"minecraft:glass": [ 0, 255, 255 ], // RGB array
"minecraft:oak_door": "white;5" // light absorption (0=full pass, 15=blocked)
}
Similar to emitters, filters can also depend on block states.
{
"minecraft:stained_glass_pane": {
"default": "white",
"states": {
"waterlogged=true": "blue"
}
},
"minecraft:oak_door": {
"default": "white;15",
"states": {
"open=true": "white;0",
"open=false": "white;15"
}
}
This file defines which blocks will completely eat (absorb) light around them. You can define the color of light it absorbs (or white for all light) as well as how much light it absorbs.
{
"minecraft:end_portal": "#FFFFFF;15",
"minecraft:end_gateway": "#FFFFFF;15"
}
Define what light color entities emit (REQUIRES LIVELY LIGHTING).
{
"minecraft:creeper": "#00FF00", // color in hex
"minecraft:blaze": "orange" // dye name
}
Define what light color held items emit (REQUIRES LIVELY LIGHTING).
{
"minecraft:torch": "#00FF00", // color in hex
"minecraft:lava_bucket": "orange" // dye name
}
Define a separate light intensity/vibrancy value for each moon phase.
{
"0": 0.45,
"1": 0.60,
"2": 0.75,
"3": 0.90,
"4": 1.0,
"5": 0.90,
"6": 0.75,
"7": 0.45
}

Colored Lighting that works with Embeddium/Sodium, Starlight, & more!