Skip to content

Particle Compositions

Particle compositions are HOCON files that define visual effects for lures. Stack multiple layers with different shapes, particles, and timing to build complex effects from simple building blocks.

config/bloom/particles/
├── grass_aura.conf
├── fire_blaze.conf
└── electric_surge.conf

Three example compositions are generated on first startup. Reference them in your lure’s particle_composition field by filename (without .conf):

"particle_composition": "grass_aura"

Every composition file has two fields: a playback mode and a list of layers.

playback = "LOOPING"
layers = [
{
shape = "circle"
particle = "minecraft:flame"
count = 1
speed = 0.01
durationTicks = 60
offset = { x = 0.0, y = 0.0, z = 0.0 }
params = {
radius = 2.5
points = 6
}
}
]

Playback Mode : LOOPING replays the composition continuously. ONE_SHOT plays it once and stops.

Layers : Each layer is one shape rendered with one particle type. Stack multiple layers to combine effects — a helix of flames inside a ring of sparks, for example.


Every layer shares these common fields:

FieldTypeDefaultDescription
shapeStringShape type (see below)
particleStringMinecraft particle ID (e.g. minecraft:flame)
countInt1Particles spawned per point
speedFloat0.01Particle speed/spread
durationTicksInt60Duration of one animation cycle in ticks
offsetObject{x:0, y:0, z:0}Position offset from the lure center

The offset field shifts the entire shape. Use it to stack layers vertically — one ring at ground level, another floating above.


Seven shape types are available. Each has its own parameters under the params block.

A flat ring of particles on the horizontal plane.

{
shape = "circle"
particle = "minecraft:happy_villager"
count = 1
speed = 0.01
durationTicks = 40
params = {
radius = 2.0
points = 16
}
}
ParameterDefaultDescription
radius1.0Circle radius
points32Number of points around the circle

Particles distributed across a sphere surface.

{
shape = "sphere"
particle = "minecraft:end_rod"
count = 1
speed = 0.02
durationTicks = 60
params = {
radius = 3.0
points = 24
}
}
ParameterDefaultDescription
radius1.0Sphere radius
points32Number of points on the sphere

A spiral that winds upward.

{
shape = "helix"
particle = "minecraft:flame"
count = 1
speed = 0.01
durationTicks = 80
params = {
radius = 1.5
height = 3.0
revolutions = 2.0
points = 48
}
}
ParameterDefaultDescription
radius1.0Helix radius
height3.0Total height
revolutions2.0Number of full rotations
points32Points along the spiral

A torus (donut) shape with configurable thickness.

{
shape = "ring"
particle = "minecraft:electric_spark"
count = 1
speed = 0.01
durationTicks = 40
params = {
radius = 2.0
thickness = 0.3
points = 20
}
}
ParameterDefaultDescription
radius1.0Ring radius
thickness0.1Ring thickness
points32Points around the ring

An upward-pointing cone from a base circle to a point.

{
shape = "cone"
particle = "minecraft:soul_fire_flame"
count = 1
speed = 0.01
durationTicks = 60
params = {
baseRadius = 2.0
height = 4.0
points = 24
}
}
ParameterDefaultDescription
baseRadius1.0Cone base radius
height3.0Cone height
points32Points along the cone

An outward burst of particles from the center.

{
shape = "burst"
particle = "minecraft:totem_of_undying"
count = 2
speed = 0.05
durationTicks = 20
params = {
radius = 3.0
points = 16
}
}
ParameterDefaultDescription
radius1.0Burst radius
points32Number of burst particles

A straight line between two points.

{
shape = "line"
particle = "minecraft:portal"
count = 1
speed = 0.01
durationTicks = 40
params = {
startX = 0.0
startY = 0.0
startZ = 0.0
endX = 0.0
endY = 3.0
endZ = 0.0
points = 12
}
}
ParameterDefaultDescription
startX/Y/Z0.0Line start point
endX/Y/Z0.0/3.0/0.0Line end point
points32Points along the line

A gentle green circle with floating leaves:

playback = "LOOPING"
layers = [
{
shape = "circle"
particle = "minecraft:happy_villager"
count = 1
speed = 0.02
durationTicks = 60
offset = { x = 0.0, y = 0.2, z = 0.0 }
params = {
radius = 2.5
points = 8
}
}
{
shape = "helix"
particle = "minecraft:cherry_leaves"
count = 1
speed = 0.01
durationTicks = 80
offset = { x = 0.0, y = 0.0, z = 0.0 }
params = {
radius = 1.0
height = 2.5
revolutions = 1.5
points = 20
}
}
]

Flames spiraling upward with a burst base:

playback = "LOOPING"
layers = [
{
shape = "helix"
particle = "minecraft:flame"
count = 1
speed = 0.01
durationTicks = 60
offset = { x = 0.0, y = 0.0, z = 0.0 }
params = {
radius = 1.5
height = 3.0
revolutions = 2.0
points = 32
}
}
{
shape = "circle"
particle = "minecraft:soul_fire_flame"
count = 1
speed = 0.02
durationTicks = 40
offset = { x = 0.0, y = 0.1, z = 0.0 }
params = {
radius = 2.0
points = 12
}
}
]

Sparks in a sphere with vertical bolts:

playback = "LOOPING"
layers = [
{
shape = "sphere"
particle = "minecraft:electric_spark"
count = 1
speed = 0.03
durationTicks = 30
offset = { x = 0.0, y = 1.0, z = 0.0 }
params = {
radius = 2.0
points = 16
}
}
{
shape = "line"
particle = "minecraft:electric_spark"
count = 2
speed = 0.05
durationTicks = 10
offset = { x = 0.0, y = 0.0, z = 0.0 }
params = {
startX = 0.0
startY = 0.0
startZ = 0.0
endX = 0.0
endY = 3.0
endZ = 0.0
points = 8
}
}
]