Skip to content

Emitters

spad4 edited this page Jun 17, 2026 · 7 revisions

Emitters can spawn groups of particles over time in a variety of shapes. Emitters can reference one another; an emitter can be used to spawn more emitters. Add new emitters in data/dandelion/emitters.json

Cheat Sheets

Emitter

{
    "name": string | REQUIRED
    "duration": number | REQUIRED
    "particles": [
       ...
    ]
}

Emitted Particle

{
    "name": string, particle or emitter name | REQUIRED
    "count": number | REQUIRED
    "frequency": number, in seconds | REQUIRED
    "shape": rectangle|line|circle | REQUIRED
    "delay": number, in seconds | default 0
    "config": { | REQUIRED
        ...
    }
    "overrides": {
        ...
    }
}

Circle Config

{
    "radius": number or chunk, in pixels | default 16
    "distribution": random|even | default random
    "outline": boolean | default false
    "rotation": number or chunk, in radians | default 0
    "motion": number | default 0
    "direction": number or chunk, in radians | default 0
}

Rectangle Config

{
    "width": number or chunk, in pixels | default 16
    "height": number or chunk, in pixels | default 16
    "outline": boolean | default false
}

Line Config

{
    "length": number or chunk, in pixels | default 16
    "thickness": number or chunk, in pixels | default 16
    "distribution": random|even | default random
    "rotation": number or chunk, in radians | default 0
    "centered": boolean | default false
    "motion": number | default 0
    "direction": number or chunk, in radians | default 0
}

Examples

dandelion

{
    "name": "dandelion",
    "duration": 0.05,
    "particles": [
        {
            "name": "dandelion_seed",
            "count": 3,
            "frequency": 0.05
        },
        {
            "name": "dandelion_stem",
            "count": 1,
            "frequency": 0.05
        }
    ]
}

fire_flower

{
    "name": "fire_flower",
    "duration": 1,
    "particles": [
        {
            "name": "flame",
            "count": 5,
            "frequency": 0.05,
            "shape": "circle",
            "config": {
                "radius": "(self.age > 0.5 and (1 - self.age) or self.age) * 128",
                "distribution": "'even'",
                "outline": true,
                "rotation": "self.age * 0.25"
            }
        }
    ]
}

laser_emitter

{
    "name": "laser_emitter",
    "duration": 4,
    "particles": [
        {
            "name": "laser_center",
            "count": 1,
            "frequency": 99999
        },
        {
            "name": "laser_line",
            "count": 1,
            "frequency": 99999
        },
        {
            "name": "laser_circle",
            "count": 25,
            "frequency": 0.1,
            "shape": "line",
            "config": {
                "length": 400,
                "thickness": 4,
                "motion": 128,
                "direction": 0.75,
                "rotation": "self.age * 0.125"
            }
        },
        {
            "name": "laser_triangle",
            "count": 25,
            "frequency": 0.1,
            "shape": "line",
            "config": {
                "length": 400,
                "thickness": 4,
                "motion": 128,
                "direction": 0.75,
                "rotation": "self.age * 0.125"
            }
        }
    ]
}

Clone this wiki locally