Skip to main content

Particles

Spawning particles tutorial

Using the particle API you can spawn particles from Minecraft. These work similarly to the /particle command in-game. For particles with special properties like dust, they are placed in the name.

Most of the article assumes you know to avoid calling the player in init.

Spawning Particles

particles:newParticle(particleID, position, velocity)

If you're looking at the Minecraft wiki then the particle id is the name under the 'Java Edition ID Name' column. Or, it's the same id used by the /particle command. If you're using Minecraft particles you can exclude the Minecraft "mod name".

particles:newParticle("minecraft:explosion", player:getPos())

I've added the player position, but excluded the velocity.

Dust example, it's color is included in its name:

particles:newParticle("dust 0 1 1 1", player:getPos())

This will spawn an aqua dust particle as the color values need a number between 0 and 1, the fourth number is the alpha. I excluded the 'minecraft:' mod name to demonstrate that it's unnecessary.

Spawning At A Part Location

To spawn a particle at a modelPart's position you'll need to get the position matrix of that part, and insert it into the position like normal.

particles:newParticle("explosion", modelPart:partToWorldMatrix():apply())

Where modelPart is a reference to a real modelPart in your avatar.

An Alternative Method

You can store a reference to a specific particle, and then use it later to change its properties wile it still exists in the world.

local boom = particles["explosion"]

function events.entity_init()
boom:spawn():setPos(player:getPos())
end

It's in an entity_init event to protect from an entity init error

Community Resources

Confetti by Manuel

Spawns custom particles that you make in Blockbench. Find it here on GitHub