Calm Down, Particles!
This mod fixes an annoying Forge bug: "Particles sometimes lose light textures and are rendered at full brightness."
🔺 Important Information
- The bug partially persists even in Forge 1.16.1-32.0.59
- The author is not responsible for possible game or save file issues
- The mod may conflict with other modifications
- To work on version 1.16.2, you need to manually edit the META-INF/mods.toml file
📜 Problem History
Forge supports custom particle types, which leads to changes in rendering order and the appearance of errors. Forge developers attempted to resolve the issue but couldn't fix the particle lighting problem.
After receiving no response to the bug report, I decided to fix it myself.
📖 About This Mod
Sometimes all particles start rendering at maximum brightness when an entity picks up an item or experience orb. This mod eliminates this issue.
📝 Configuration
The fix is implemented correctly and doesn't require parameter settings.
🔗 Dependencies
Required MixinBootstrap: For loading Mixins in the Forge environment.
Incompatible Cull Particles: Conflict is inevitable.
🤷 Frequently Asked Questions
Will it work on the server?
No. This is a client-side mod. Installing it on the server won't have any effect.
Can I suggest fixes for other bugs?
Yes, but send suggestions via private messages instead of creating GitHub issues.
Can I use the mod in modpacks?
Yes, without restrictions. The mod is in the public domain.
Will there be support for older versions?
No. However, technical details are available on GitHub, so you can adapt the mod for version 1.14.4 yourself.
Versions below 1.13 don't suffer from this issue.
🧱 Technical Details
The mod uses Mixins to implement fixes.
In class net.minecraft.client.particle.ParticleManager
Overwrite 🟢renderPaticles
/ To be converted into Injectors /
final Runnable enable = () -> {
+ lightTextureIn.enableLightmap();
RenderSystem.enableAlphaTest();
RenderSystem.defaultAlphaFunc();
RenderSystem.enableDepthTest();
RenderSystem.enableFog();
RenderSystem.activeTexture(org.lwjgl.opengl.GL13.GL_TEXTURE2);
RenderSystem.enableTexture();
RenderSystem.activeTexture(org.lwjgl.opengl.GL13.GL_TEXTURE0);
};
RenderSystem.pushMatrix();