Particle editor

The particle editor is an editor found when creating or modifying a particle in the Verse Editor, available through the "Edit Particle" button under "Particle Settings". The editor resembles a level in a Verse, although it lacks most of the verse editing options and is completely barren, save for any particle emitters placed on it. On the bottom left sits a menu showing the selected particle emitter's particle's properties. Towards the bottom right is a small bar with three options: "New Particle Emitter", which spawns a new particle emitter, "Exit" which returns to the Verse Editor and "Upload Particle (PNG/JPG, NO GIF)" which opens a prompt to upload a new particle, replacing the base appearance of the particle attached to the currently selected emitter.

Worth noting is the fact that you cannot undo any actions in the particle properties window.

Particle properties
Below is an explanation for every option in the bottom left window. Whenever the effects of something are spread across the lifetime of a particle, the change speed is linear and its length is equal to the particle's lifetime. Particles also exist in three-dimensional space, despite being rendered as flat 2D objects.

When talking about the X and Y values of the emitter's anchor, higher X values mean further to the right and higher Y values mean further downwards. Those X and Y values use the general scale, which is how many pixels fit in a tile, which equals 48x48px.

If a particle's image size isn't square, OMM will stretch it so that it is. Adiitionally, OMM will automatically crop out any transparency beforehand - if you want to keep a particle's size, fill two opposite corners with an almost-transparent pixel.

alphaStart and alphaStop control the opacity of the particle at the start and end of its lifetime, respectively. 0 is fully transparent and 1 is fully opaque.

startScale and stopScale control the size of the particle at the start and end of its lifetime, respectively. The lower the number, the smaller the particle, and vice versa. 1 on the scale means that the particle is shown as its original file size, using the general scale).

scaleRandomizer randomly decides the end scale of the particle. The lower it is, the more varied it is - 0 means that the end scale can be anywhere between the base start and end scale, and 1 means that the start and end scales are always as they are set under startScale and stopScale.

startColor and stopColor define the colour of the particle at the start and end of its lifetime, respectively.

startSpeed and stopSpeed control the speed of the particle at the start and end of its lifetime, respectively (X pixels per second using the general scale for pixel size, where X is the speed).

speedRandomizer randomly decides the end speed of the particle. The lower it is, the more varied it is - 0 means that the end speed can be anywhere between startSpeed and stopSpeed, and 1 means that the start and stop speed settings are always as they are normally.

directionX, directionY and directionZ define which direction the particle goes in. As previously mentioned, particles move and exist in 3D space. This allows particles to cover only a portion of an sprite when set to the REGULAR layer.

directionX, directionY and directionZ only work when spawnType isn't set to cone.

startRotation is the rotation at which the particle graphic appears. rotationSpeed is how fast it changes (X dergees per second, where X is the current value of rotationSpeed). Interestingly, rotationSpeed cannot be negative.

minLifetime and maxLifetime are the shortest and longest possible lifetime lengths. OMM will choose randomly between minLifetime and maxLifetime to pick the lifetime of every particle it spawns. Whether minLifetime is smaller than maxLifetime or not doesn't matter, and they can be used interchangeably - for example, minLifetime at 1 and maxLifetime at 0 will provide the same results as minLifetime at 0 and maxLifetime at 1.

spawnFrequency is how often OMM will spawn a particle (X per second, where X is the current value).

maxParticles is the highest amount of particles that can coexist.

src is the image used for the particle. If a custom particle is uploaded through the hotbar, src will return "/images/Dog.png".

layer has 3 possible states:


 * REGULAR, which appears on the same layer as sprites;
 * GROUND, which appears below all sprites;
 * WEATHER, which appears above everything.

The REGULAR layer can be used in conjunction with the direction values to only cover a portion of the sprite.

spawnType is the type of particle spawning used. Every state has a different set of arguments under it, but they all share spawnX and spawnY - which define how far the anchor of the spawnType is from the emitter on the X and Y axis respectively. The states of spawnType are as follows:

Worth noting is that cone ignores the directionX, directionY and directionZ values, setting its own; the cone is three-dimensional, and spawnConeDirection rotates the cone along the X axis. This also means that the result of spawnConeWidth can affect and be randomized for all 3 directions, allowing it to interact with objects on the REGULAR layer.
 * point, which doesn't have any arguments beyond spawnX and spawnY, and simply spawns the particles in the anchor spot every time;
 * rectangle, which has two extra arguments: spawnWidth and spawnHeight, which define how large the spawning box is counting from the anchor (which is the top left of the box) on the X and Y axis respectively - it spawns the particles randomly within this box;
 * circle, which only has one extra argument, that being spawnRadius, which defines how large the radius of the spawning circle is (the anchor is the center of the spawning circle) - it spawns the particles randomly within this circle;
 * cone, which has two extra arguments: spawnConeWidth, which is the maximum difference from the inital angle, and spawnConeDirection, which is the direction from which spawnConeWidth is calculated (the anchor is where the particles come from, to move in the direction dictated by the cone).

blendMode refers to the colour blending as defined with startColor and stopColor. It has two possible states:


 * additive, which is additive blending;
 * regular, which is multiplicative blending.

If you simply want to use the color of the original image, you can set the blending to regular and the start and end colors to #ffffff.

worldSpace doesn't seem to do anything.

loop decides whether the particle emission loops or not. If loop is off, the particle is only emitted for the length of time set in emissionTime (counted in X seconds, where X is the value of emissionTime).