DrexHD / MagicParticles

A server side cosmetics mod, that allows administrator to create custom particles using simple json files
MIT License
2 stars 2 forks source link

Magic Particles

Discord

A fabric server side cosmetics mod, that allows administrator to create custom particles using simple json files

Commands

Custom Particles

This mod includes more than 40 default particles, which can be useful example files for understanding the format.

JSON Format

Each magic particle type needs a human friendly name and a list of particles it consists of

Root

{
  "name": "Some name", // Human friendly name
  "particles": [
    // Particle definitions
  ]
}

Particle definition

There are currently 3 particle definition types (simple, image and bezier). All of these share a couple of common values in addition to their specialized ones.

Simple

{
  "type": "simple",
  "count": 1, // Amount of particles (optional)
  "pos": [1.0, 2.0, 0.0], // Offset from origin (affected by rotation)
  "delta": [0.1, 0.1, 0.1], // Particle area size (optional)
  "speed": 0, // Particle speed parameter, used by some particle types (optional)
  "particle_type": {
    "type": "minecraft:angry_villager" // Particle type: https://minecraft.wiki/w/Particles_(Java_Edition)#Types_of_particles
    // Some particles types have extra attributes, which need to be specified here
  },
  "anchor": "feet", // The particle origin ["feet"|"eyes"] (optional)
  "origin": [0.0, 0.5, 0.0], // Offset from origin (optional)
  "billboard": "fixed" // What rotation axis should affect "pos" ["fixed", "vertical", "horizontal", "center"] (optional)
}

Image

{
  "type": "image",
  "image": "drex.png", // Path to the image, the image needs to be in config/magic-particles/images/<image>
  "size_x": 0.8, // The width of the particle image
  "size_y": 0.8, // The height of the particle image
  "pixel_size": 0.6, // The size of each individual particle
  "pos": [1.0, 2.0, 0.0], // Offset from origin (affected by rotation)
  "anchor": "feet", // The particle origin ["feet"|"eyes"] (optional)
  "origin": [0.0, 0.5, 0.0], // Offset from origin (optional)
  "billboard": "fixed" // What rotation axis should affect "pos" ["fixed", "vertical", "horizontal", "center"] (optional)
}

Bezier

(Can't really recommend to use this, creating an image of the desired shape and using the image type is easier)