Phosphor (Forge)

Mods
13,536,583 Downloads Last Updated: Apr 2, 2020 Game Version: 1.15.2

Forge is no longer supported by my mods.

Going forward, my mods will only be available on the Fabric platform. For more information, please see my thoughts here. You can download Phosphor for Fabric over on the newer CurseForge page. The releases on this page are unsupported and will not receive updates.


Phosphor for Forge

Code license (GNU GPL 3.0)

Phosphor is a Minecraft mod which works to optimize one of game'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 amount of time the game takes to generate chunks can be halved for some dimensions, and frame stuttering experienced while traversing the world can be significantly reduced. It's a no-compromises solution for improving performance either in single-player or large multi-player servers, and changes no features or behaviors of the vanilla game.

If you aren't using it already as well, Lithium (another optimization mod) pairs great with Phosphor and is fully compatible.

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!

Installation

Forge on Minecraft 1.15+: You must download and install MixinBootstrap 1.0.2 (or newer) to your mods folder. Afterwards, installing Phosphor is as simple as installing any other Forge mod, simply drop it into your mods folder.

Forge on Minecraft 1.12: No extra dependencies are required, simply drop the mod into your mods folder like any other Forge mod. 

You do not need to create new worlds in order to take advantage of the mod.

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.15+.

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. This mod doesn't cure all world generation lag or client-side hiccups, as lighting is only one part of the equation.

Mod compatibility

OptiFine compatibility

Phosphor is fully compatible with OptiFine, including the Dynamic Lights feature implemented by OptiFine.

OpenCubicChunks compatibility

Due to the fact that OpenCubicChunks implements its own light propagation system, Phosphor is unfortunately fundamentally incompatible with this mod.

DynamicLights compatibility

DynamicLights (the standalone Forge mod) will not function correctly with Phosphor installed. Please see the relevant GitHub issue for more information.

Albedo compatibility

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.

SpongeForge compatibility

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.

 

Modpack Permissions

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.

Special thanks

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.

Reporting issues

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.