Particle
Syntax¶
Particles are created using the par constructor. Like all constructors in Terracotta, the values passed into the constructor are Expressions and can take full advantage of their features.
particle is the name of the potion that appears at the top of a particle effect's button, NOT its minecraft id.

Fields¶
Data about the behavior of a particle like amount, color, spread, etc. are provided via named arguments. All fields are optional and will use default values if ommitted.
The following are all the possible data fields. Amount and spread can always be specified no matter what, the rest may or may not be available depending on the type of particle.
Amount¶
A num specifying how many particles to spawn.
Defaults to 1 if omitted.
Spread¶
Spread is split up into two num fields: spreadHoriz and spreadVert.
Both default to 0 if omitted.
Motion¶
A vec specifying the velocity of the particles. Longer length vectors will result in faster movement.
Defaults to vec(1, 0, 0) if omitted.
Motion Variation¶
A num (0-100) specifying how much to randomize the motion of the particles. Any digits after the decimal place will be removed by DiamondFire. 0 will mean the exact value of motion is always used, 100 will mean the direction is completely random and the speed will be anywhere between 100% and 0% of the length of motion.
Defaults to 100 if omitted.
Color¶
A str specifying the color of the particles as a hexadecimal RGB color. The color must contain exactly 6 hexadecimal digits and must start with a hashtag (#).
Defaults to "#ff0000" if omitted.
Color Variation¶
A num (0-100) specifying how much to randomize the color of the particles. Any digits after the decimal place will be removed by DiamondFire. 0 will mean the exact value of color is always used, 100 will mean the color is completely random.
Defaults to 0 if omitted.
Fade Color¶
A str specifying the color to transition to in particles like Fade Dust. Uses the same syntax as Color.
Defaults to "#000000" if omitted.
Material¶
A str specifying the material id of the particles. Uses item ids, NOT names.
Defaults to "oak_log" if omitted.
Size¶
A num specifying the size of the particles.
Defaults to 1 if omitted.
Size Variation¶
A num (0-100) specifying how much to randomize the size of the particles. Any digits after the decimal place will be removed by DiamondFire. 0 will mean the exact value of size is always used, 100 will mean the size could be anywhere between 3*size and 0.
Defaults to 0 if omitted.
Roll¶
A num specifying the rotation of the particles.
roll uses RADIANS as a unit, not degrees. To convert from degrees to radians, use this.
Defaults to 0 if omitted.
Opacity¶
A num (0-100) specifying the opacity of the particles. Any digits after the decimal place will be removed by DiamondFire. 0 is completely transparent, 100 is completely visible.
Minecraft will round values of 10 and below down to 0 when displaying, meaning the most transparent a particle can be while still being visible will have an opacity of 11.
Defaults to 100 if omitted.
Power¶
A num specifying the power of the particles.
Defaults to 1 if omitted.
Duration¶
A num specifying the duration of the particles, specified in ticks.
Defaults to 20 if omitted.
txt + par: txt¶
Stringifies the Particle then adds it onto the Styled Text.