Phosphor for Minecraft 1.14+ would not have been possible without my supporters on Patreon.
Consider joining my Patreon to help fund development and gain early access to my other in-development mods. Your support helps me spend more time working on Minecraft mods, and in return you get sweet goodies like prioritized support and a mention in the credits. There's also a Discord server to hang out in and ask questions... if that's your sort of thing.
Phosphor is a Minecraft mod which works to optimize one of Minecraft's most inefficient areas-- the lighting engine. It works on both the client and server, and can be installed on servers without requiring clients to also have the mod. With Phosphor, the time spent generating chunks can be reduced by almost 50% for some dimensions, and server tick rate can be just as greatly improved by freeing up the CPU to work on other tasks.
Feb 13th: Support for Forge on Minecraft 1.14+ is our highest priority, but progress is currently stalled due to the lack of support between Sponge Mixins and Forge. This issue is currently being worked on by the maintainers of the two projects, and as a result, out-of-the-box support for Mixins in Forge should be arriving in the nearby future.
The releases for Minecraft 1.12 may not appear on the sidebar due to a limitation of CurseForge -- please be sure to check the Files tab for all available downloads.
Sounds too good to be true? Phosphor has already shipped enabled by default in the very widely known Aether II mod. Check it out here, and maybe considering installing it today!
Phosphor does not require any additional mods in order to run. You also do not need to create new worlds in order to take advantage of the mod. Simply make sure that you have the latest version of the Fabric Loader (Minecraft 1.14+) or the latest version of Forge (Minecraft 1.12), and drop the mod into your mods folder.
How does it work?
For the technically inclined, expand the spoiler below to see what exactly we do to improve performance. Note that this pertains to the version for Minecraft 1.12 and is outdated in lieu of Minecraft 1.14+.
The code responsible for propagating light changes through the world has been completely rewritten to be significantly more efficient than the vanilla implementation.
Light updates are postponed until the regions they touch are queried. This allows light updates for blocks to be batched together and reduces the number of duplicated scheduled light updates for an area significantly. Light update batching provides an unbelievable reduction to world generation time for modded dimensions like the The Twilight Forest with lots of light-occluding foliage while still providing significant improvements for vanilla generation and other modded dimensions.
Skylight propagation on the vertical axis has been fixed to take into account incoming skylight from neighboring chunks, fixing a variety of lighting issues created during world generation and operations involving large volumes of blocks.
Light data is now sent to the client for empty chunk sections when it is non-trivial (i.e. not completely lit by skylight.) This fixes a few bugs where light would appear incorrect in empty sections of the sky.
Through fixing various errors in vanilla's lighting engine implementation, many expensive checks previously performed when placing or relighting blocks are now skipped, reducing the overhead of these operations significantly.
Phosphor has had a lot of time to mature the last few months, and as such, mod incompatibilities and bugs are very rare.
What doesn't the mod do?
While this is a significant improvement of vanilla's lighting engine implementation, it does not make any changes to how the light model in Minecraft works. In layman's terms, this mod does not change how light is rendered (except where bugs are fixed) or add new features to Minecraft. This allows the mod to work without being installed on the opposite end client or server. The fixes and optimizations provided by Phosphor are specific to improving the lighting engine, keeping it small and self-contained.
Phosphor is fully compatible with OptiFine, including the Dynamic Lights feature implemented by OptiFine.
Due to the fact that OpenCubicChunks implements its own light propagation system, Phosphor is unfortunately fundamentally incompatible with this mod.
DynamicLights (the standalone Forge mod) will not function correctly with Phosphor installed. Please see the relevant GitHub issue for more information.
Both Albedo and Phosphor implement their own lighting system, causing Albedo's light system to be overwritten. While installing Phosphor alongside Albedo will not crash the game, it will prevent colored lights from working. In the future, it may be possible to add support, but research is needed.
Phosphor has been tested to work with the latest versions of SpongeForge on Minecraft 1.12.2, but you must use the latest releases of SpongeForge (1.12.2-2838-7.1.8-RC3844 or newer) and the latest releases of Phosphor (0.2.3+.) Phosphor will refuse to run if an older version of SpongeForge is being used. Additionally, you must disable asynchronous lighting in Sponge's configuration file or you will suffer degraded performance.
Other Forge mods
Currently, I'm not aware of incompatibility issues with any other Forge mods! Phosphor shouldn't cause conflicts with mods which do not modify the game's lighting engine. If you run into an compatibility issue, please report it on the project's issue tracker.
This is a free and open-source project on CurseForge, and as such-- of course you can include it in your modpack! While not required, it's much appreciated if you link back to Phosphor's project page and Patreon in your mods list or credits page.
This mod would not have been possible without the contributions made by Mathe172 and PhiPro95. Some components of this mod are inspired and/or based off their previous work.
Please use the issue tracker linked at the top of the page to report bugs, crashes, and other issues. The Curseforge comments section is not the place to report these kinds of problems and will likely result in you being asked to forward it to the issue tracker.