Перейти к содержимому
Mineforgian

Light Dust

All light sources will produce a configurable amount of dust. The dust also has physics! Highly customizable via in game config menu.

Загрузки
6K
Подписчики
89
Обновлён
1 июля 2026 г.
Лицензия
LGPL-3.0-only

Опубликован 12 февраля 2026 г.

Light Dust

Light Dust is a lightweight client side mod that adds floating dust to your world. Built with interactive physics, dust reacts to light, weather, and the exact biome you are exploring.

As of v1.9.5+ this mod has an in game config menu (no dependencies) which you can find by doing: menu -> mods -> lightdust -> config

Features

  • You can see some of them by looking at the config options below! But there really is a lot to list so I suggest looking at in via in game config menu.

Spawning & Performance

  • spawnMode (Default: FANCY): Choose between FANCY and FAST for spawning dust.
  • fastSpawnChecks (Default: 120): Math budget for FAST mode. Random sample count. Lower = Better FPS.
  • fancySpawnChecks (Default: 1200): Math budget for FANCY mode. Max blocks mapped by BFS. Restricts radius if too low. Note: If you set fastSpawnChecks to any value >400, I would suggest swapping to fancy.
  • enableMaxYLevel (Default: false): Toggle for the height limit.
  • maxYLevel (Default: 60): The height coordinate where dust stops spawning.
  • ambientRadius (Default: 10): How far away from the player dust will attempt to spawn.
  • ambientHardCapRadius (Default: 12): The absolute maximum distance dust can exist. Particles further than this are deleted instantly.
  • ambientBlockCap (Default: 14): The maximum density of dust allowed in a single block.
  • minBlockLight (Default: 6): The minimum block light level required for ambient dust to spawn.
  • daytimeLightDiff (Default: 5): The minimum difference between Block Light and Sky Light required for dust to spawn during the day.

  • falloffDistance (Default: 6): Distance from the player where dust density starts to decrease.
  • falloffMultiplier (Default: 0.3): Multiplier applied to the max particle cap beyond the falloff distance.

  • enableOcclusionCulling (Default: true): Uses LOS raytracing to prevent dust from spawning behind solid walls.

Visuals & Environment

  • useHdParticles (Default: true): Toggle for the HD dust particles or use the legacy version. Note that if you use this you should lower the values for particle size and opacity slightly. (I suggest 0.016 and 0.18 respectively)
  • enableDynamicBlockColors (Default: true): Toggle for the block color inheritance system.
  • ambientDustOpacity (Default: 0.18): Base opacity for ambient dust.
  • particleSize (Default: 0.016): Adjust the visual size of the ambient dust particles.
  • particleLifetime (Default: 200): Control how long (in ticks) dust particles stick around.

  • enableWind: Globally disables all wind and weather based directional pushing.
  • windSpeedClear (Default: 0.25): Adjusts global wind drift during clear weather.
  • windSpeedRain (Default: 0.35): Adjusts global wind drift during rain.
  • windSpeedThunder (Default: 0.5): Adjusts global wind drift during thunder.
  • disableDuringRain (Default: false): Toggles to prevent outdoor dust from spawning or existing during rain.
  • disableDuringThunder (Default: false): Toggles to prevent outdoor dust from spawning or existing during thunder.

Interactions & Actions

  • enableBlockBreakingDust: Toggles the directional burst of dust particles when a block is destroyed.
  • breakParticleCount (Default: 12): Controls the volume of the block-breaking debris.
  • breakParticleSpeed (Default: 0.1): Controls the speed of the block-breaking debris.
  • actionDustGravity (Default: 2.0): Controls the fall speed of debris hitting surfaces.
  • actionDustBounce (Default: 0.2): Controls the bounciness of debris hitting surfaces.

  • breakVacuumRadius (Default: 1.2): The radius in blocks that ambient dust is pulled toward a broken block.
  • enableBreakVacuum (Default: true): Toggle for the vacuum effect when a block breaks.
  • breakVacuumForce (Default: 10.0): How strong the dust is pulled toward the broken block.

  • enableCaveTremors: Toggles the ceiling dust falling from Warden sonic booms and explosions.
  • caveTremorParticleCount (Default: 90): The base density of falling debris during explosions.
  • tremorEpicenterMultiplier (Default: 5.0): Controls intensity at the blast center.
  • tremorFalloffExponent (Default: 6.0): Controls how quickly intensity fades from the blast center.
  • tremorCeilingBias (Default: 0.75): Adjusts the ratio of ceiling-to-floor spawns.
  • tremorFloorKickForce (Default: 2.1): Adjusts the upward force for floor dust.
  • tremorWavefrontThickness (Default: 6.0): Controls the depth of the expanding shockwave zone.
  • tremorMaxGravity (Default: 40.0): Adjusts the weight of debris at the center.
  • tremorMinGravity (Default: 1.0): Adjusts the weight of debris at the outer edge.
  • tremorRoofMultiplier (Default: 0.4): Multiplier for the gravity applied to dust falling from the ceiling.
  • tremorFloorMultiplier (Default: 0.2): Multiplier for the gravity applied to dust kicked up from the floor.

  • enablePlayerInteraction: Toggles whether player movement, weapon swinging, and shielding disturbs ambient dust.
  • playerInteractRadius (Default: 4.0): The radius at which player movements physically push dust particles.

  • enableHeavyLandingDust: Toggles the ring of dust kicked up from heavy landings.
  • heavyLandingMaxParticles (Default: 96): Controls how many particles spawn when taking fall damage.
  • heavyLandingParticleMultiplier (Default: 12): Controls the multiplier for particles spawned when taking fall damage.
  • heavyLandingUpwardSpeed (Default: 0.2): Controls the speed of the heavy landing dust ring upward.
  • heavyLandingOutwardSpeed (Default: 0.12): Controls the shape of the heavy landing dust ring outward.
  • heavyLandingAmbientPush (Default: 1.0): Controls the shockwave force that pushes ambient dust away when you land.
  • heavyLandingAmbientRadius (Default: 4.0): Controls the shockwave radius that pushes ambient dust away when you land.

  • enableThermalUpdrafts: Toggles the rising heat physics and updrafts above heat blocks.
  • heatBlocks (Default: DEFAULT_HEAT_BLOCKS): List of blocks that emit heat for thermal updrafts.

Dynamic Lights Compat

  • enableHandheldLights (Default: false): If true, items held in your hand will act as fake light sources, allowing dust to spawn and coloring the dust.
  • handheldLightItems (Default: DEFAULT_HANDHELD_LIGHTS): List of items/tags and their light properties. Format: 'modid:item_name=radius,#HEXCOLOR' or '#modid:tag=radius,#HEXCOLOR'.

Experimental Features (experimental.toml)

  • enableCaveDrafts (Default: true): Enables air pressure and drafts inside caves.
  • caveDraftStrength (Default: 0.85): Multiplier for the speed of wind drafts inside caves.
  • enableEntityDisturbance (Default: true): Allows non-player entities (mobs/projectiles) to kick up and disturb dust. This is hard capped to only track the 6 closest moving entities.
  • entityScanRate (Default: 4): How often in ticks the mod scans for nearby entities.
  • entityPushStrength (Default: 0.05): How strongly entities push dust when moving through it.
  • enableAdvancedWindMath (Default: true): Enable complex spatial turbulence and sweeping wind physics.
  • enableWindDeflection (Default: true): Allows wind to realistically blow dust down tunnels.
  • enableDustSettling (Default: true): Allows dust particles to visually settle when hitting the ground.

Color & Tinting Settings (colors.toml)

  • tintStrength (Default: 0.75): Adjusts how strongly colored lights tint the dust. (suggest higher values if using Hd dust ex: 0.75).
  • customTints: A list of light-emitting blocks and their hex colors for dust tinting.
  • customBiomeTints: Define base ambient colors for biomes using hex codes.
  • caveBiomeTriggers: Map specific blocks to a hex color for underground environment changes.


Q&A

Q: Does this work with true dark mods?

A: Yes. It should work with them. However, you may need to change the opacity of the dust.

Q: Does this work with Shaders?

A: Yes. However, shaders often change how transparency renders. If the dust looks too invisible, increase ambientDustOpacity in the config (try 0.45 or higher).

Q: Will this cause lag in big modpacks?

A: It is designed specifically to be lightweight. The mod has a ton of optimization options such as the newly added LOS and Hemisphere system aswell as Occlusion Culling to skip particle rendering behind solid walls. If you still drop frames, you can disable enableAdvancedWindMath or lower the particle caps in the configs.

Q: Can I change the color of the dust?

A: Yes! You can change the tint of light sources (customTints), the base color of any biome (customBiomeTints), and trigger colors underground using specific blocks (caveBiomeTriggers) in the colors.toml config.

Q: Does this work with modded biomes and caves?

A: Yep. Just add the modded biome ID or the modded blocks to the respective lists in the config, assign a hex color, and it should work just fine.

Q: How do I disable the Block Break particles?

A: Set breakParticleCount to 0 in the config.- breakVacuumRadius (Default: 1.2): The radius in blocks that ambient dust is pulled toward a broken block.

Ченджлог

2.0.0Релиз1.20.1 · 1 июля 2026 г.

Hey! Version 2.0.0 is finally here. It was quite a lot of work to bring the mod over to NeoForge 1.21.1. The config menu was supposed to be part of 2.0.0 but I figured it was easy to implement and I might as well release it early which is why this is pretty small for a v2.0 update. As always if you find any bugs (or have suggestions) please let me know by either posting a comment or making an issue in github, enjoy!

Also, if a few of these features look familiar, it's because that major Windows system corruption wiped out most of my recent work. I had to do a full reinstall and rebuild from older backups, meaning the features from update 1.7.5 and beyond were temporarily lost in the most recent builds. With this update, everything (hopefully) should be restored and added back in amongst a few other things.


Major Features

NeoForge 1.21.1 Port: Light Dust has been fully ported and rewritten to natively support Minecraft 1.21.1 NeoForge!

Spawning Algorithms (FAST vs. FANCY): Added an in game toggle to change how ambient dust calculates its spawn locations, should give you more control over performance.

Configs:

  • spawningMode: Spawning Algorithm Mode. FAST uses a lightweight, randomized sampling method. FANCY uses a flood fill search to map complex rooms. (Default: SpawningMode.FAST)
  • fastSpawnChecks: Math budget for FAST mode. Random sample count. Lower = Better FPS. (Default: 120)
  • fancySpawnChecks: Math budget for FANCY mode. Max blocks mapped by BFS. Restricts radius if too low. Note: If you set fastSpawnChecks to any value >400, I would suggest swapping to fancy. (Default: 1200)


Minor Features & QoL

Config Reloading: You no longer need to restart your game or rejoin your world to see your custom tints. Modifying dust tint colors, biome colors, or handheld light properties in the menu now applies the changes to the game (may need to wait for pre existing dust to decay and new ones to spawn in.

  • Also set the enableHandheldLights to be default false.


Performance Optimizations

  • Global Wind Grid: Instead of each particle doing its own expensive block lookups for cave drafts, a shared GlobalWindGrid now handles this in the background. Particles just do a simple array lookup.

  • Physics Culling: Particles now skip collision checks entirely when floating in open air. hasPhysics only enables when a particle is falling fast, near a floor/ceiling, or already on the ground.

  • Distance Based LOD: Particles further from the player now run expensive math less frequently. The further away, the more ticks they skip between updates.

  • Staggered Caching: Spread out the clearing calls for TINT_CACHE, BIOME_CACHE, BEHAVIOR_CACHE, and DRAFT_CACHE across multiple ticks instead of wiping them all simultaneously. Caches are also now cleared once every 400 ticks (20 seconds) instead of every 20 ticks (1 second).

  • Mathematical Optimizations: Added Math.max guards for distance calculations and reduced Math.sqrt calls inside interaction logic to only evaluate when a particle is confirmed within range.

  • Throttled Inventory and Compatibility Scanning: Adjusted HandheldLightManager to evaluate player slot states and perform reflection checks every 5 ticks rather than every single tick.

The optimizations should significantly increase your FPS. From my testing on a 4060 laptop with 16GB RAM, areas that used to run at 60 FPS (wind, max settings) and 42 FPS (cave drafts, max settings) now sit at ~120 FPS and ~80 FPS respectively. Action dust bursts from breaking blocks and explosions should also feel noticeably smoother, as ActionDustParticle no longer reads actionDustGravity and actionDustBounce from config on every tick.

2.0.0Релиз1.21.1 · 1 июля 2026 г.

Hey! Version 2.0.0 is finally here. It was quite a lot of work to bring the mod over to NeoForge 1.21.1. The config menu was supposed to be part of 2.0.0 but I figured it was easy to implement and I might as well release it early which is why this is pretty small for a v2.0 update. As always if you find any bugs (or have suggestions) please let me know by either posting a comment or making an issue in github, enjoy!

Also, if a few of these features look familiar, it's because that major Windows system corruption wiped out most of my recent work. I had to do a full reinstall and rebuild from older backups, meaning the features from update 1.7.5 and beyond were temporarily lost in the most recent builds. With this update, everything (hopefully) should be restored and added back in amongst a few other things.


Major Features

NeoForge 1.21.1 Port: Light Dust has been fully ported and rewritten to natively support Minecraft 1.21.1 NeoForge!

Spawning Algorithms (FAST vs. FANCY): Added an in game toggle to change how ambient dust calculates its spawn locations, should give you more control over performance.

Configs:

  • spawningMode: Spawning Algorithm Mode. FAST uses a lightweight, randomized sampling method. FANCY uses a flood fill search to map complex rooms. (Default: SpawningMode.FAST)
  • fastSpawnChecks: Math budget for FAST mode. Random sample count. Lower = Better FPS. (Default: 120)
  • fancySpawnChecks: Math budget for FANCY mode. Max blocks mapped by BFS. Restricts radius if too low. Note: If you set fastSpawnChecks to any value >400, I would suggest swapping to fancy. (Default: 1200)


Minor Features & QoL

Config Reloading: You no longer need to restart your game or rejoin your world to see your custom tints. Modifying dust tint colors, biome colors, or handheld light properties in the menu now applies the changes to the game (may need to wait for pre existing dust to decay and new ones to spawn in.

  • Also set the enableHandheldLights to be default false.


Performance Optimizations

  • Global Wind Grid: Instead of each particle doing its own expensive block lookups for cave drafts, a shared GlobalWindGrid now handles this in the background. Particles just do a simple array lookup.

  • Physics Culling: Particles now skip collision checks entirely when floating in open air. hasPhysics only enables when a particle is falling fast, near a floor/ceiling, or already on the ground.

  • Distance Based LOD: Particles further from the player now run expensive math less frequently. The further away, the more ticks they skip between updates.

  • Staggered Caching: Spread out the clearing calls for TINT_CACHE, BIOME_CACHE, BEHAVIOR_CACHE, and DRAFT_CACHE across multiple ticks instead of wiping them all simultaneously. Caches are also now cleared once every 400 ticks (20 seconds) instead of every 20 ticks (1 second).

  • Mathematical Optimizations: Added Math.max guards for distance calculations and reduced Math.sqrt calls inside interaction logic to only evaluate when a particle is confirmed within range.

  • Throttled Inventory and Compatibility Scanning: Adjusted HandheldLightManager to evaluate player slot states and perform reflection checks every 5 ticks rather than every single tick.

The optimizations should significantly increase your FPS. From my testing on a 4060 laptop with 16GB RAM, areas that used to run at 60 FPS (wind, max settings) and 42 FPS (cave drafts, max settings) now sit at ~120 FPS and ~80 FPS respectively. Action dust bursts from breaking blocks and explosions should also feel noticeably smoother, as ActionDustParticle no longer reads actionDustGravity and actionDustBounce from config on every tick.

1.9.5Релиз1.20.1 · 10 июня 2026 г.

Major Features

In-game config menu: Added an in-game config menu (made it myself, no dependencies) that you can access in Menu -> Mods -> Light Dust -> Config.

It features:

  • Categorized Sidebar: A sidebar to jump between different categories and sub sections, with automatic scroll tracking.

  • Search Bar: Instantly filter and find specific settings by their name or description.

  • Setting Descriptions: Hovering directly over a setting name displays detailed descriptions. If a setting is disabled, the tooltip will tell you exactly which master toggle you need to turn on first.

  • Quick Navigation: You can click a category or a sub category to instantly go to that section.

  • Advanced List Editor: Complex string lists (like custom tints or heat blocks) open in a dedicated sub-screen with a format guide that will appear when you click the button on the top right, syntax validation, and an autocomplete suggestion system.

Minor Features

Added more master toggles: Added more configs to allow you to disable/enable each system individually so you can decide what you want to keep (I realized that this mod can be overengineered for some so this should help in some cases).

New Configs:

  • enableWind: Globally disables all wind and weather based directional pushing.

  • enablePlayerInteraction: Toggles whether player movement, weapon swinging, and shielding disturbs ambient dust.

  • enableBlockBreakingDust: Toggles the directional burst of dust particles when a block is destroyed.

  • enableBreakVacuum: Toggles the inward suction effect on ambient dust when a block is destroyed.

  • enableHeavyLandingDust: Toggles the ring of dust kicked up from heavy landings.

  • enableCaveTremors: Toggles the ceiling dust falling from Warden sonic booms and explosions.

  • enableThermalUpdrafts: Toggles the rising heat physics and updrafts above heat blocks.

Sorry for the long wait! Im also working on v2.0.0 for peak stamina which will also use this in game config menu I've made.

1.8.5Релиз1.20.1 · 20 мая 2026 г.

Major Performance Overhauls

I was working to improve performance on my next mod mob detection when I figured that I would take my time looking over and optimizing my older code. Heres what has changed.

TLDR; It is much more optimized. Please use this version hence the version numbering.

  • GC Micro-stutters: Completely overhauled the volumetric scanning system (BFS) used for ambient dust generation. The mod now recycles memory internally using static ArrayDeque and HashSet structures rather than creating thousands of temporary objects every few ticks.
    • ~90% reduction in memory allocation churn, which should eliminate major GC induced lag spikes.

  • Primitive Maps via FastUtil: Purged standard Java ConcurrentHashMap caches in favor of FastUtil's Long2IntOpenHashMap and Long2ObjectOpenHashMap. This stops Java from constantly boxing primitive long coordinates into bloated Long objects, should save massive amounts of hidden memory churn.

  • Distance Based Simulation LOD: Added a Level of Detail (LOD) check to the particle tick loop. Dust particles further than 16 blocks away from the player now skip expensive wind, lighting, and thermal math.

  • Temporal Interleaving: * Maximized the mod's custom tickOffset staggering system. Instead of all 1,200 particles calculating their environment on the exact same frame, the mod splits the workload, forcing only 5% of active particles to calculate heavy environmental physics per frame.

  • Optimized Mod Compatibility Layer: Replaced Java Reflection with native JVM MethodHandles for Curios and Accessories integration. Additionally, adjusted the slot scanning routine to check for handheld lights every 5 ticks instead of every single tick.
    • ~60% faster compatibility layer execution, saves up to 80% of CPU cycles previously spent on inventory polling.

  • Config Caching: Particle properties (such as gravity, bounce forces, and wind deflection rules) are now cached locally as primitive values the moment a dust particle is spawned. This prevents thousands of active particles from concurrently invoking Forge's synchronized config map lookups every single frame.
    • ~85% drop in config related thread stalls, should massively improve FPS when theres a lot of particles on screen.

  • Blockstate Checks for Thermal Drafts: Block searches for heat sources (Lava, Magma, Fire) have been changed to poll every 20 ticks (1 second) instead of 10. The physical force applied to the particles has been scaled to compensate for the delay, you will notice it a little bit but I doubt people are looking that closely to see.
    • 50% fewer getBlockState() chunk lookups.

  • Thermal Draft Physics: Turned off physics, and player interactions when dust is affected by therumal updraft.
    • Should significantly reduce FPS drops when above or near lava pools or large amounts of heat sources.

Old vs New

Note: Data represents estimated (not experimental) performance scaling in a dense underground cave environment in many different environments using an RTX 3090 with default settings.

Metric v1.7.5 (Old) v1.8.5 (New) Net Improvement
Peak FPS ~75 FPS ~121 FPS + 61%
1% Lows ~27 FPS ~53 FPS (Avg) + 96%
Avg Tick Time ~18.5 ms ~6.2 ms - 66%
Memory Heap Churn Rate ~450 MB/s ~250 MB/s - 56%
World BlockState Lookups / sec ~8,400 ~4,200 - 50%

Bug Fixes

  • Critical Lava Pool Lag Fix: Fixed a severe flaw where ambient dust would continuously spawn inside lava pools (because of the high light level) and fail to despawn instantly. Fluid collision checks now run instantly every tick, and the volumetric spawner strictly ignores fluid blocks, fixing a massive FPS drain in the Nether and deep caves.
1.7.5Релиз1.20.1 · 7 мая 2026 г.

Semi Major Feature

  • Spawning Modes: Added a new SPAWN_MODE config option. You can choose between FANCY (uses BFS to map caves and corners) or FAST (uses random sampling to spawn dust).

Minor Features

  • Crouch Disturbance: Crouching now significantly reduces your player's interaction radius. Sneaking allows you to move through dusty environments carefully without violently swatting particles away.

  • Action Dust Cobwebs: Block breaking debris (Action Dust) will now properly get caught and stuck inside cobwebs, matching the behavior of ambient dust.

  • Dust Dissolving: Action Dust now dissolves when it falls into water instead of bouncing on the riverbed. Ambient Dust will now burn up and disappear if it drifts into fire or lava.

Optimizations & Fixes

  • Spectator Mode: Players in Spectator mode will no longer generate ambient dust around the camera or interact with existing dust.

  • Sleep Optimization: dust spawning, volume scanning, and BFS calculations are paused while the player is sleeping in a bed.

  • Action Dust Friction: Fixed a minor redundancy in the ActionDustParticle logic where friction math was being applied twice on the ground.
1.7.4Релиз1.20.1 · 24 апреля 2026 г.

Sorry for the wait! Done with my finals so now I have some time again.

Major Features

Cave Drafts: Ambient dust now dynamically calculates a pressure gradient allowing it to flow through cave systems (high pressure to low pressure basically). Dust should mostly go down long corridors, wrap around corners, and get sucked through U bends just like real atmospheric drafts instead of just bouncing off walls.

  • enableCaveDrafts (Default: true): Enables air pressure and drafts inside caves.
  • caveDraftStrength (Default: 0.85): Multiplier for the speed of wind drafts inside caves.

    In the case that you are worried about the performance of it, don't worry I have done a number of optimizations to it so it should have little to no performance impact except on older computers. The following optimizations were made:

Environmental Collision Optimization: Rewrote the environmental collision logic. The mod now uses fast fail checks that skip heavy collision calculations for empty air blocks.

Wind Caching: Added a new spatial caching system for environmental wind data. Particles flying through the same space share their pressure gradient calculations instead of doing the math individually.

Minor Features

Minecarts: Minecarts will now push the ambient dust ahead of them and disturb the dust.

Cobwebs: Ambient dust that drifts into a cobweb will now get caught and stick to it.

Simplified Configuration: Adjusted the internal math for multiple configs. Configs that used very small (eg 0.0001) numbers can now be written as 1 for 1x or 2 for 2x instead of 0.0001 and 0.0002.

Performance

This is a more general optimization.

BFS Spawning: Replaced the expensive per tick LOS raycasts with an optimized Breadth First Search flood fill. The mod now maps out guaranteed contiguous air spaces twice a second which should eliminate the wasted spawn calculations in solid walls.

Fixes

Crash Fix (issue #5): Fixed a ticking particle crash when dust attempts to interact with soul fire in the Nether. This occurred because I forgot to check if the fire block actually had directional properties (standard fire can attach to walls, but minecraft:soul_fire only burns flat on surfaces).

1.6.4+hotfixРелиз1.20.1 · 10 апреля 2026 г.

This minor update is focused mainly on performance and few fixes including one for a critical issue that was brought to me. It may not contain much but it is a lot more stable and performant so I suggest using this version.

Minor Features

Hd dust particles: I decided it was time to update the dust particles. So I made 18 different variations for the HD dust particle (vs 9 for legacy). They are 32x32 pixels and are blurred slightly so it should look better, however you can freely swap between the two modes.

  • useHdParticles (Default: true): Toggle for HD particles, false for legacy particles.

Tremor Gravity: Separated the gravity calculations for explosion dust based on where it spawns.

  • tremorRoofMultiplier (Default: 0.4): Multiplier for dust gravity falling from above.
  • tremorFloorMultiplier (Default: 0.2): Multiplier for dust gravity kicked up from below.

Performance

Tremor Raycast Caching: Changed how explosion dust detects ceilings and floors. Instead of running 24 block raycasts for every single particle, the mod now uses a per tick spatial cache. This drastically reduces the number of block checks from thousands down to around a hundred during explosions.

Tremor Dust Physics: disabled block collision physics for explosive dust particles. This should reduce FPS drops during loud sounds

Dead Physics Culling: Particles that have landed and come to a complete stop now automatically disable their internal collision boxes.

Math & Memory Profiling: Patched a significant GC memory leak by moving Vec3 eye position calculations out of the main 150 iteration ambient scanning loop.

Fixes

Crash Fix (issue #4): Rewrote the way I handle undefined biomes in the color cache. Previously, biomes missing from the colors.toml configuration would store an empty array in the cache, causing an ArrayIndexOutOfBoundsException when a second particle attempted to spawn in the same block. Undefined biomes now default to a neutral dust tint without crashing.

Tremor Gravity Fix: Fixed an oversight where ExplosionDustParticle was completely ignoring the dynamic CURRENT_GRAVITY variable passed to it. Explosion dust will now properly use the newly added configured max/min gravity settings.

1.6.3Релиз1.20.1 · 5 апреля 2026 г.

Major Features

Directional Block Breaking: Particles now shoot out from the specific side of the block you hit. This debris can bounce and slide off nearby walls. Additionally, breaking a block creates a small vacuum that pulls close ambient dust into it.

  • breakParticleCount / breakParticleSpeed: Controls the volume and speed of the block-breaking debris.

  • actionDustGravity / actionDustBounce: Controls the fall speed and bounciness of debris hitting surfaces.

  • breakVacuumRadius / breakVacuumForce: Adjusts the distance and strength of the suction effect on ambient dust when a block is destroyed.

Cave Tremors (Explosions & Wardens): Explosions and other loud noises now cause debris to drop from the ceiling. And rise from the floor. The effect is strongest at the center of the blast and fades as it travels outward. Most particles fall from above, while any that spawn on the ground are kicked up into the air.

  • caveTremorParticleCount: The base density multiplier for the expanding shockwave.

  • tremorEpicenterMultiplier / tremorFalloffExponent: Controls the intensity at ground zero and the dropoff rate.

  • tremorCeilingBias / tremorFloorKickForce: Adjusts the ratio of ceiling to floor dust spawns and the upward force for floor dust.

  • tremorWavefrontThickness: Controls the thickness in blocks of the expanding shockwave.

  • tremorMaxGravity / tremorMinGravity: Adjusts the gravity applied to debris at the epicenter versus the outer edge.

Also completely rewrote the way ambient dust is affected by the explosion. When the explosion explodes it will no longer instantly affect all ambient dust that is in a radius, instead the actual explosion will travel in the air (1 block per tick) and the force that pushes the dust will scale based off distance from the epicenter. tremors will move at 1.5 blocks per tick.

Minor Features

Altitude Restrictions: Added a maximum Y-level restriction to prevent calculating or spawning dust above a specific height coordinate.

  • enableMaxYLevel: Toggle for the altitude restriction.

  • maxYLevel: The maximum Y-level coordinate where dust is allowed to spawn.

Dynamic Block Colors: Impact and breaking dust now captures the map color data from the interacted block. This applies to block breaking, heavy landing dust, and cave tremor debris.

  • enableDynamicBlockColors: Master toggle for the dynamic block color inheritance.

Fixes

Thermal Updraft Fix: Standard fire blocks (minecraft:fire) now properly trigger thermal updrafts.

Performance

Entity Tracking Optimization: The entity disturbance system now wraps the entity scan in a modulo check based on a configurable rate. You can freely make it scan faster or slower, note that the slower the scan the worse the dust physics will look.

  • entityScanRate: How often in ticks the mod scans for nearby entities.

Caching: Implemented a Cache System. The scan for tints or biome triggers is performed once for a specific block position and stored. Subsequent particles pull data directly from memory. Caches are purged every 20 ticks.

Distributed Spawning Loop: Spawning logic nested loops have been replaced with a Persistent 1D Index and a per tick search budget.

Note: I also reorganized the configs file again (sorry) since it was getting crowded and disorganized again...

Комментарии

Загружаем…