current page Clean particles
Shape math Minecraft VFX Quick checklist
Minecraft particle VFX

Clean particles are mostly spacing, timing, and restraint.

You can know every particle API call and still make an effect that looks muddy. This guide is about the part people usually skip: making the shape readable, giving motion some rhythm, and knowing when to stop spawning stuff.

shapefirst
timingsecond
detaillast
01

What “clean” actually means

A clean effect is easy to read before you even think about how many particles it uses. You should be able to tell where the center is, what direction it is moving, and what part of the animation matters most.

A
One obvious focal point

If everything glows equally, nothing feels important. Give the eye somewhere to land.

B
Leave empty space

Negative space is part of the shape. Filling every gap usually turns a ring, slash, or burst into a blob.

C
Make the motion explain the ability

A dash should pull forward. A charge should tighten inward. An impact should expand. The motion should make sense before the player reads anything.

good test

Pause the effect on a random frame. If the silhouette still tells you what is happening, the base is probably solid.

02

Spacing beats raw particle count

People usually try to fix weak VFX by spawning more. That works right up until every edge becomes fuzzy and the effect loses its shape.

random densitysame area, no real read
messy
controlled spacingfewer points, stronger shape
clean

For circles and arcs, think in distance between points, not “I want 80 particles.” A tiny ring and a giant ring should not use the same count.

spacing by circumference
circumference = 2 * PI * radius
points = circumference / desiredSpacing
angleStep = 360 / points
easy rule

If two nearby particles visually merge into one thick line, either spread them out or remove some.

03

Timing is what makes it feel expensive

Do not spawn the whole ability on the same tick unless the effect is supposed to be a hard flash. Let the player see the setup, the hit, then the leftovers.

0 msAnticipationsmall core, pull-in, or quiet charge
80 msShapering, slash, trail, or cone becomes readable
140 msImpactbrightest frame and strongest expansion
240 msBreakupsparks peel away at different speeds
450 msDecaysmall leftovers fade instead of hard-cutting

The exact milliseconds do not matter. The separation does. Even a four-tick animation can feel way better when each tick has a job.

04

Build simple shapes first

Most clean VFX are just a few boring shapes animated well. Rings, arcs, spirals, lines, cones, and spheres cover a ridiculous amount of abilities.

ring / evenly spaced
Ringx = cx + cos(a) * r z = cz + sin(a) * r
Spiralr = progress * maxRadius a = progress * rotations * 2PI
Arca = start + progress * arcLength point = center + direction(a) * r
Helixx = cos(a) * r y = progress * height z = sin(a) * r
do this before detail

Get the shape working with one particle type and one color. If it already looks good, layering will help. If it already looks bad, layering will only hide the problem for a second.

05

Linear motion is useful, not universal

Moving something by the exact same amount every tick is fine for a projectile. It feels stiff for charges, shockwaves, and most dramatic transitions.

ease out
t = clamp(age / duration, 0, 1)
progress = 1 - (1 - t) * (1 - t) * (1 - t)
radius = maxRadius * progress

The eased version travels fast early, then settles. Flip the curve around for charge-up motion that starts slow and snaps into the hit.

tiny detail that helps

Do not give every spark the same lifetime and speed. A narrow range of variation adds depth without turning the effect into random noise.

06

Layer with jobs, not vibes

Every layer should explain something. If you cannot say what a layer is doing, try deleting it.

01CoreThe focal point. Usually the brightest or most stable part.
02ShapeThe ring, slash, beam, cone, or trail that explains direction.
03EnergySparks and streaks that make the motion feel fast or unstable.
04AftermathSmoke, dust, embers, or tiny fades that sell the end of the hit.

You do not need all four every time. A small dash might only need shape + energy. A giant explosion can earn the full stack.

07

Color should help the read

A good default is one main color, one supporting color, and one neutral. You can break that whenever the effect needs it, but starting with six equally loud colors usually makes the shape harder to read.

Mainshape / identity
Supportenergy / accent
Neutralsmoke / depth
1
Brightness is hierarchy

The brightest color should usually sit near the part you want the player to notice first.

2
Keep similar layers related

If the core is cyan, the tiny sparks can drift toward white or mint without feeling like a separate ability.

3
Rainbow is a choice

It can look great when the concept calls for it. It looks cheap when it is only there because every particle type had a different color.

08

Performance is part of the design

A particle budget is not just optimization. Limits force you to decide which part of the effect actually matters.

A
Spend particles near the camera and impact

Do not waste the same density on the far end of a 40-block trail.

B
Skip frames when the motion still reads

A smooth path does not mean every point needs to spawn every tick.

C
Cut hidden work

If nobody can see the effect, or the player is too far away for detail, do less.

D
Reuse math

Calculate a ring once per frame, not once for every layer that sits on the exact same points.

practical target

Use the smallest count that still preserves the silhouette. There is no magic universal number because a 1-block ring and a 20-block dome are different problems.

09

Why your effect looks cheap

Everything spawns at once

There is no anticipation or rhythm. Split the animation into setup, hit, and decay.

Every layer uses the same speed

Nothing has depth. Let the core stay stable while sparks break away faster.

Perfect geometry everywhere

It starts looking like debug shapes. Keep the main silhouette clean, then roughen only the secondary layers.

You cannot find the focal point

Lower the brightness or count on filler layers. Make one thing win.

Huge particle count, tiny effect

Your spacing is too tight. Remove points before adding more detail.

The effect just disappears

Add a short decay: shrinking sparks, dust, embers, or a fading ring.

Quick check before you call it done

I can tell where the center is.
The silhouette still reads in a screenshot.
The brightest layer is actually important.
Not every particle moves the same way.
The effect has a beginning, hit, and ending.
Removing 20% of the particles does not make it better.
last thing

If you are staring at the effect and cannot tell what to add, try removing something first.