Skip to content

Custom Particles

Robert Kämpf edited this page Jan 26, 2024 · 2 revisions

As of version 1.2.0.0, one can define custom particle types for use with the VFX Generator. This is done via a custom datapack.

Important

Any changes to the datapack will require a restart of the server.
/reload will not load the changes.

Defining available particles

To define the available particles, the file data/<namespace>/vfxgenerator/particle.json is needed.
Its format is similar to that of a tag file.

The root object.
├─ replace: Optional. Whether or not the list of available particles defined in this file should completely replace those defined in different lower priority data packs sharing the same namespace. 
│           If false the defined available particles here are appended to those defined in lower priority data packs sharing the same namespace. Defaults to false. 
└─ values: A list of resource locations referencing custom particles.

Defining custom particles

To define a custom particle, a JSON file in data/<namespace>/vfxgenerator/particle/ is needed.
Used textures need to be placed in data/<namespace>/vfxgenerator/particle/textures/.
The JSON file should look as follows.

The root object.
├─ type: The particle type. Currently always "single".
└─ value: A resource location referencing the texture to use.

Example

Assume we have a texture called example_texture.png that we want to use with the VFX Generator.
First, the texture should be placed in the data/<namespace>/vfxgenerator/particle/textures/ folder.
For this example we will use the example namespace, so the path will become data/example/vfxgenerator/particle/textures/example_particle.png.
Second we need to define the particle, for that we will create a file called example_particle.json in the data/example/vfxgenerator/particle/ folder.
The file should look like this:

{
  "type": "single",
  "value": "example:example_texture"
}

Lastly we need to make the particle available for use. For that we will create the data/example/vfxgenerator/particle.json file.
It should look like this:

{
  "values": [
    "example:example_particle"
  ]
}
Clone this wiki locally