Lucis
🟡 Updated this year⚠️ Install Order · 2 steps
Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.
🖼️ Gallery (3 images)
🔍 Analysis
- 👍 1.4% endorsement rate — high engagement, a strong quality signal
- 🏆 #2 of 68 neoforge mods in this game by downloads
📋 About This Mod
# Lucis Lucis is a lightweight server-side light engine. It replaces expensive parts of the vanilla Minecraft lighting pipeline with a faster region-based system designed for high update throughput, faster chunk lighting and better scaling on multi-core CPUs allowing for faster worldgen and spawning massive structures without drastic TPS drops. Originally started as a research project to learn how Minecraft's light engine works, ended rewriting lighting because the original one was too slow for me and decided to have some fun attempting to do something with it! I wanted to spawn huge (like really huge!) structures into the world, but got stuck that vanilla light engine just... you know haven't expected THAT much amount of blocks to calculate light and just hangs itself, so I've tried to solve that. Yes, Starlight and ScalableLux exists, you can use them too. However, I wanted to research and look inside myself instead of using existing solutions. So, here is **Lucis**, that speeds up lighting up to ~8-12x than vanilla and ~1.5x faster than ScalableLux/Starlight! ## What Lucis does? Lucis optimizes chunk lighting during world generation on a chunk preparation stage and runtime block light and skylight updates after block changes. Instead of relying only on vanilla per-update lighting behavior, Lucis groups light changes by region, processes them asynchronously where possible, then publishes the resulting light data back to Minecraft's light engine in batches. The goal is very simple. Reduce lighting cost during heavy block updates, chunk loading and skylight changes. ## How it even works? _Is this another fork of Starlight?_ No, this is an another approach to optimize light calculations where possible. Let me attempt to describe that. Minecraft stores light per section and updates it whenever blocks are placed, removed, generated or changed. While that will work well for general gameplay, but it can become slow when the game has to process many light-affecting blocks in a short time or generating the world. Lucis changes this by collecting lighting work into regions. A region is a small owned area of chunks that can be processed as one unit. When a block update happens, Lucis records the change, groups it with nearby changes, and sends that work to its runtime lighting system. This avoids treating every small update as a fully separate lighting operation. For chunk lighting, Lucis can compute light during world generation using its own relighting path. It reads the chunk and nearby light data, calculates skylight and block light, then publishes the finished light sections back into Minecraft light thread. As for runtime block changes, Lucis uses it's own light queue. If many blocks change during the same tick or close together, the queue lets Lucis process them as grouped region jobs. This is especially useful for dense block updates, terrain edits, generated structures, and skylight changes caused by roofs or large openings. Lucis also separates calculation from publishing. The heavy work can be done outside the main light update path, so the final section data can be published back in batches. This reduces the number of small light tasks that have to go through the light thread one by one. The result is lower overhead when many light changes happen together. The main technical quirk is that we still need to respect Minecraft's chunk state and light engine rules to not break many other mods that somehow get light data or implements it's own system. Lucis computes new light data, tracks changed regions, and then hands the result back to the engine. ## Benchmarks Benchmarks were run on Minecraft `1.21.1` with NeoForge `21.1.234`, comparing Vanilla, ScalableLux and Lucis on the same benchmark harness such as seed, coordinates and environment. Tested on AMD Ryzen 3700x with 4 threads delegated to Lucis. ScalableLux left as by default with `parallelism=-1` in the config. Lower `ns/change` is better. | Workload | Vanilla ns/change | ScalableLux ns/change | Lucis ns/change | Lucis vs Vanilla | Lucis vs ScalableLux | |---|---:|---:|---:|---:|---:| | `block_toggle_border` | 322846.1 | 43999.7 | 28881.8 | 11.18x | 1.52x | | `dense_chunk_patch` | 17766.0 | 3480.5 | 3002.3 | 5.92x | 1.16x | | `edge_toggle` | 80824.9 | 26701.6 | 18182.0 | 4.45x | 1.47x | | `roof_toggle` | 22076.0 | 4680.8 | 2441.8 | 9.04x | 1.92x | | `sky_hole` | 213509.0 | 119023.0 | 114414.0 | 1.87x | 1.04x | ## Compatibility While Lucis attempts to maintain compatability with other mods where possible and it should not break anything, something may break eventually. Proceed with a caution when it comes to a large modpack. Known notes: - **ScalableLux** (or any Starlight fork) is incompatible by definition. You should choose only Lucis or only ScalableLux, not both. Attempting to put both will lead to many crashes. Do not try to throw both into your modpack, thanks. It won't work that way. - **Sable** is compatible with Luci
Lucis is a lightweight server-side light engine. It replaces expensive parts of the vanilla Minecraft lighting pipeline with a faster region-based system designed for high update throughput, faster chunk lighting and better scaling on multi-core CPUs allowing for faster worldgen and spawning massive structures without drastic TPS drops.
Originally started as a research project to learn how Minecraft's light engine works, ended rewriting lighting because the original one was too slow for me and decided to have some fun attempting to do something with it!
I wanted to spawn huge (like really huge!) structures into the world, but got stuck that vanilla light engine just... you know haven't expected THAT much amount of blocks to calculate light and just hangs itself, so I've tried to solve that.
Yes, Starlight and ScalableLux exists, you can use them too. However, I wanted to research and look inside myself instead of using existing solutions. So, here is Lucis, that speeds up lighting up to ~8-12x than vanilla and ~1. 5x faster than ScalableLux/Starlight!
## What Lucis does?
Lucis optimizes chunk lighting during world generation on a chunk preparation stage and runtime block light and skylight updates after block changes.
Instead of relying only on vanilla per-update lighting behavior, Lucis groups light changes by region, processes them asynchronously where possible, then publishes the resulting light data back to Minecraft's light engine in batches.
The goal is very simple. Reduce lighting cost during heavy block updates, chunk loading and skylight changes.
## How it even works?
_Is this another fork of Starlight?_
No, this is an another approach to optimize light calculations where possible. Let me attempt to describe that.
Minecraft stores light per section and updates it whenever blocks are placed, removed, generated or changed. While that will work well for general gameplay, but it can become slow when the game has to process many light-affecting blocks in a short time or generating the world.
Lucis changes this by collecting lighting work into regions. A region is a small owned area of chunks that can be processed as one unit. When a block update happens, Lucis records the change, groups it with nearby changes, and sends that work to its runtime lighting system. This avoids treating every small update as a fully separate lighting operation.
For chunk lighting, Lucis can compute light during world generation using its own relighting path. It reads the chunk and nearby light data, calculates skylight and block light, then publishes the finished light sections back into Minecraft light thread.
As for runtime block changes, Lucis uses it's own light queue. If many blocks change during the same tick or close together, the queue lets Lucis process them as grouped region jobs. This is especially useful for dense block updates, terrain edits, generated structures, and skylight changes caused by roofs or large openings.
Lucis also separates calculation from publishing. The heavy work can be done outside the main light update path, so the final section data can be published back in batches. This reduces the number of small light tasks that have to go through the light thread one by one. The result is lower overhead when many light changes happen together.
The main technical quirk is that we still need to respect Minecraft's chunk state and light engine rules to not break many other mods that somehow get light data or implements it's own system. Lucis computes new light data, tracks changed regions, and then hands the result back to the engine.
## Benchmarks
Benchmarks were run on Minecraft `1. 21. 1` with NeoForge `21. 1. 234`, comparing Vanilla, ScalableLux and Lucis on the same benchmark harness such as seed, coordinates and environment.
Tested on AMD Ryzen 3700x with 4 threads delegated to Lucis.
ScalableLux left as by default with `parallelism=-1` in the config.
Lower `ns/change` is better.
| Workload | Vanilla ns/change | ScalableLux ns/change | Lucis ns/change | Lucis vs Vanilla | Lucis vs ScalableLux | |---|---:|---:|---:|---:|---:| | `block_toggle_border` | 322846. 1 | 43999. 7 | 28881. 8 | 11. 18x | 1. 52x | | `dense_chunk_patch` | 17766. 0 | 3480. 5 | 3002. 3 | 5. 92x | 1. 16x | | `edge_toggle` | 80824. 9 | 26701. 6 | 18182. 0 | 4. 45x | 1. 47x | | `roof_toggle` | 22076. 0 | 4680. 8 | 2441. 8 | 9. 04x | 1. 92x | | `sky_hole` | 213509. 0 | 119023. 0 | 114414. 0 | 1. 87x | 1. 04x |
## Compatibility
While Lucis attempts to maintain compatability with other mods where possible and it should not break anything, something may break eventually. Proceed with a caution when it comes to a large modpack.
Known notes: - ScalableLux (or any Starlight fork) is incompatible by definition. You should choose only Lucis or only ScalableLux, not both. Attempting to put both will lead to many crashes. Do not try to throw both into your modpack, thanks. It won't work that way. - Sable is compatible with Luci
📊 Mod Details
- Game
- Minecraft Mods
- Author
- DenisMasterHerobrine
- Version
- 1.0.0
- Downloads
- 585
- Endorsements
- 8
- Category
- neoforge
- Created
- 8/1/2026
- Updated
- 7/10/2026
- Game Versions
- 1.21.1
- Tags
- optimization, worldgen
🔧 How to Install Minecraft Mods Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Mods →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Mods commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Mods versions does Lucis support?
The author lists 1.21.1. Other versions may work but are untested by the author.
What is the latest version of Lucis?
Version 1.0.0, published 2026-07-10 with 585 downloads recorded at the source.
Keep browsing — more Minecraft Mods mods await


