Particle Core - Particle Optimization in Minecraft

Particle Core specializes in one thing: optimizing particle performance. The standard version of Minecraft handles particles inefficiently in various aspects. This mod aims to correct this situation.
Main Features
Culling Invisible Particles
The most significant performance improvement - the mod doesn't render particles you can't see. This makes sense! At standard field of view, only about 1/12 of the space around the player is visible - why render the other 11/12 of particles that aren't visible anyway?
Rendering Optimization
Rendered particles undergo additional optimization. Vertex transformations and lighting map operations are improved. For vertex optimization, the mod works with Sodium.
Particle Type Control
Three methods are provided to completely disable or reduce the appearance of specific particle types. Any particles that can be added via the /particle command can be configured.
- particle_type tag. Add particle types to
particle_core:excluded_particlesto completely disable them. Server owners: this will disable specified particles for all clients joining the server - use with caution! - Type-based reduction through configuration. In the Particle Core configuration, users can add mappings of
particle type identifiertoappearance probability (floating-point number). - Complete disabling of potion particles. If potion particles irritate you on screen, simply disable them in settings!
Unlike resource packs that hide particles, this approach prevents their generation at the spawning stage, which actually improves performance.
Fine-tuning Standard Parameters
Two configuration options allow precise adjustment of standard Minecraft parameters: ALL, DECREASED, and MINIMAL. The first regulates the interval between ALL and DECREASED, the second - between DECREASED and MINIMAL. If you want to slightly reduce the number of particles, for example when your computer works fine with DECREASED but you still think there are too many particles, you can reduce their quantity without switching to full MINIMAL.
Configuration
Particle Core provides comprehensive configuration covering all added features. The configuration file is located in the standard .minecraft config folder. File name: particle_core_config_v[x].json, where [x] is the current version number.
At the beginning of the configuration file, there's a detailed "comments" section. It's recommended to review it for understanding configuration usage.
turnOffPotionParticles
For some players, potion particles are extremely irritating. Use this setting to disable them.
reduceParticlesAllChance
Regulator for adjusting particle appearance between Minecraft parameters ALL and DECREASED.
reduceParticlesDecreasedChance
Regulator for adjusting particle appearance between Minecraft parameters DECREASED and MINIMAL.
disableParticles
Completely disables generation of all particles on the client side.
reduceParticlesByType
Map for reducing appearance of specific particle types.
- key: particle type identifier, for example
minecraft:smoke. - value: floating-point number from 0.0 to 1.0. 0.0 completely disables the particle, 1.0 - normal appearance frequency. Any intermediate value determines the probability of successful particle appearance.
disableOptimizations
If any Particle Core feature causes conflicts or is simply undesirable, each feature can be individually disabled by adding its string key to this list. See comments for instructions.
Performance Comparison
Without Particle Core
Without Particle Core, world rendering takes 41% of CPU time, with particle rendering comprising the lion's share - 25% of CPU time.

With Particle Core
With Particle Core, rendering now takes only 16% of CPU time, and particle rendering has almost no impact on performance.

With Sodium
Improves performance compared to Sodium alone. The top part of the screenshot shows operation with Particle Core, the bottom - without it. Improvement is about 5% of CPU time, or 50% relative improvement.
