Voxel Particles

Makes every particle 3D, even modded ones

Voxel Particles

Modrinth CurseForge GitHub Minecraft 1.21.4 to 26.2

Vanilla particles are flat cards that always face the camera. Voxel Particles turns each one into a small 3D model built from the sprite's own pixels.

Every sprite particle, vanilla or modded, is picked up automatically (even resourcepacks).


Showcase

Break block particles

break_block

Campfire smoke with real depth

campfire

Crumbs of the food you eat

eating

Potion effect particles

potions

Modded particles (example: Fire Staff from Wizards)

modded

On and off comparison

comparison

In-game settings

settings 1

settings 2


Features

  • Any particle, any mod. Vanilla and modded sprite particles become 3D with no extra support.
  • Real crumbs. Block and item particles keep their own piece of the texture and its shape.
  • Four motions. None, gentle sway (default), spin and tumble.
  • Physical debris. Falling crumbs tumble in the air and land flat on the ground.
  • Any resource pack. Custom textures turn 3D just like the vanilla ones.
  • Knows when to back off. Distant and tiny particles stay flat, meshes are cached, and a watchdog pauses the effect for a few seconds if it ever gets too expensive.

Compatibility

Mod or contentStatus
SodiumWorks
Iris and shader packsWorks
Custom resource packsWorks
Particles from other modsWorks

One exception: particles that draw their own geometry instead of a sprite stay as they are. For example, the slash effects of Better Combat remain flat.


Configuration

Change settings in game through Mod Menu, or edit config/voxelparticles.json.

Global options

OptionDefaultWhat it does
enabledtrueTurns the whole effect on and off
maxResolution16Detail: the largest model size per side, 4 to 64
lodDistance64Particles farther than this many blocks are drawn flat, 0 for no limit
excludedSpritessee belowSprite ids that always stay flat, * works as a wildcard

Per-type options

Block, item and other particles each have their own section: blocks, items and particles. They take the same options:

OptionDefaultWhat it does
enabledtrueMakes this kind of particle 3D
motionSWAYBILLBOARD (faces the camera like vanilla), SWAY, SPIN or TUMBLE
depth1.0 (3.0 for blocks)Thickness, 0.1 to 4. At 1.0 every pixel is a cube
shading1.0How much darker the sides are than the front, 0 to 1
motionSpeed1.0Speed of sway, spin and tumble, 0 to 5
tumbleDebristrueCrumbs tumble in the air and land flat (blocks and items only)

Example:

{
  "blocks": { "depth": 3.0, "motion": "TUMBLE" },
  "items": { "depth": 1.0, "motion": "TUMBLE" },
  "particles": { "depth": 0.3, "motion": "SWAY" }
}

Keeping a particle flat

Big effects like sweeps and explosions look better flat, so a few sprites are excluded out of the box:

"excludedSprites": [
  "minecraft:sweep_*",
  "minecraft:sonic_boom_*",
  "minecraft:flash",
  "minecraft:explosion_*",
  "minecraft:shriek",
  "minecraft:vibration",
  "minecraft:missingno"
]

Add the id of any other particle sprite you want to keep flat, for example "somemod:glow".


Building from source

Gradle has to run on Java 25 (the Loom version used requires it). The mod itself targets Java 21 or 25 depending on the Minecraft version.

./gradlew dist                            # every target, jars go to dist/
./gradlew build -Ptargets=1.21.4-fabric   # a single target
PathContents
core/Code that does not touch Minecraft
mc/<name>/API layers shared by several Minecraft versions
loader/Loader entry points
versions/<minecraft>/One target each; version.properties lists the layers it uses

Voxel Particles Team

profile avatar
  • 10
    Followers
  • 4
    Projects
  • 635.2K
    Downloads

More from addavriance