A downloadable project

Note: these documents are still a work-in-progress

Emitters Panel

This area contains the current list of emitters, along with buttons to add, remove and duplicate the currently selected emitter. This panel also contains controls for triggering the emitters, either individually, or all at once.

Emitter Properties Panel

This panel is where you will control the various parameters of the emitter and the particles it spawns. Below is a list of the available sections, the properties they contain and what they do.

Seamless Looping Info

To get seamless looping on an emitter, please follow these steps:

- Enable 'Seamless Loop' in the emitter properties

- Set 'Preprocess' to the same value as the emitter 'Lifetime' property so that the emitter will begin in a state as if it had already been running for X amount of time

- Set the 'Output Frame Count' value in the render settings to the lifetime of your emitter multiplied by the 'Output Frames Per Second' value

So if your emitter has a lifetime of 3 seconds and you're rending at 60 frames per second, set the output frame count to 3 x 60 = 180 frames

This should give a seamless looping effect. If you have a blank frame at the start of the animation, try setting the 'Delay Capture' value in render settings to 1 so that it skips that first frame. 

Note: Seamless looping with the motion options enabled is possible, but it's a matter of syncing up the timing and takes some experimenting currently.


NameThe name of the emitter. You can edit this to make your projects more manageable.
VisibleToggling this will show or hide the emitter and its particles.
Seamless Loop When enabled, the particle system will repeat itself in a predictable way.
Local Particles will stay parented to the emitter when this is enabled.
RepeatWhether or not the emitter should restart after its lifetime is reached. An emitters lifetime is defined with the Duration property.
BlendThe blending method with which particles are drawn on top of each other. Normal uses alpha blending, Additive will add the values together (good for fire) and Subtract will subtract the values. Subtract will not be visible against the background, but it will affect any particles below it. It's useful for cutting holes or 'cooling' bright areas in explosions.
LayerThis is the drawing order of the emitters. A higher value means it will be drawn last (on top).


PositionThe position of the emitter on the canvas. 0,0 is the center of the canvas. The position can be changed here, or by dragging the emitter in the Source window.
Random SeedThe base value for randomness in the emitter. Mostly useful (and noticeable) when seamless looping is enabled. Emitters with the same random seed will use the same random numbers. This value behaves more like an offset than traditional random seeds, so duplicating an emitter and increasing the random seed value by one will not create a noticeable difference in randomness, whereas increasing by 1000 will.
Duration (seconds)This is the lifetime of the emitter, NOT the particles. If repeat is disabled, then the emitter will stop playing once this time has elapsed.
TimescaleHow quickly the particle system runs.
1.0 = normal speed, 0.5 = half speed, 2.0 = double speed etc.
AmountThe amount of particles to spawn. This isn't per second or frame, but rather the total amount you want to exist. The emitter will create particles at a rate that satisfies reaching this value.
Preprocess (seconds)The particle system will start in a state as if it had already been running for this amount of time. Essential for seamless looping.
Delay (seconds)The amount of time before an emitter will begin spawning particles.
Lifetime (seconds)The lifetime of particles created by this emitter.
Lifetime RandRandomness ratio of the Lifetime property.
Value: 0.0 to 1.0
BurstRatio for whether to spawn particles over time or all at once.
Value: 0.0 to 1.0
GravityA constant X/Y force applied to all particles of this emitter.
Not affected by damping.
AngleThe angle at which particles are emitted. This is the angle the particles velocity will be applied in.
SpreadA +/- range added to the Angle property. Can be a cone (i.e 20 degrees) or a full circle (i.e 180)
Radial Spawn OffsetAn offset in the direction of the emitter angle where the particles will spawn. 
Spread RandThe randomness of the angle chosen from within the Spread value. A value of 0.0 will spawn particles at an increasing angle from the start of the range to the end, whereas a value of 1.0 will randomly pick an angle between the start and the end of the spread range.


Emitter ShapePoint: Particles are spawned from a single point at the position of the emitter

Circle: Particles are spawned between a minimum and maximum radius. Setting the minimum radius close to the maximum radius can create a ring effect.

Box: Particles are spawned within a bounding box defined by Width and Height.


Particle TextureThe image displayed for each particle.
The filter option next to this can enable or disable bilinear filtering (texture smoothing).
Sheet Columns & RowsIf you want animated particles, you can select a texture/sprite sheet as the Particle Texture. Set the Column & Row values to the amount of frames you have horizontally and vertically in the texture. 
Animation SpeedThe speed of the animation.
With a value of 1.0 the animation will take the same amount of time as the particle's lifetime to complete. A value of 2.0 would cause it to play twice within the particle's lifetime etc.


Initial VelocityThe initial speed of the particles when they're spawned. The direction they travel in will depend on the emitter angle (unless this velocity value is negative, then it will be the opposite direction).
Initial Velocity RandRandomness of Initial Velocity.
Value: 0.0 to 1.0
Linear AccelerationThe linear acceleration applied to the particle's velocity over it's lifetime.
Linear Acceleration RandRandomness of Linear Acceleration.
Value: 0.0 to 1.0
Orbital VelocityA velocity applied to the particle over the course of it's life time that causes it to orbit around it's original spawn point.
Orbital Velocity RandRandomness of Orbital Velocity.
Value: 0.0 to 1.0
Radial AccelerationAn acceleration applied to the particle's velocity over the course of it's lifetime that will push the particle away (or towards if negative) the original spawn point.
Radial Acceleration RandRandomness of Radial Acceleration.
Value: 0.0 to 1.0
Tangent AccelerationAn acceleration applied to the particle's velocity over the course of it's lifetime that will push the particle at an angle that is tangent to the original spawn point.
Tangent Acceleration RandRandomness of Tangent Acceleration.
Value: 0.0 to 1.0
DampingA damping force that is applied to the particle's velocity over the course of it's lifetime.
Does not change the effects of gravity.
Damping RandRandomness of Damping.
Value: 0.0 to 1.0


Lifetime ColourColour of the particle over the course of it's lifetime. New colours can be added by double-clicking on an empty area of the gradient. Existing colours can be changed by double-clicking on one of the points on the gradient.
Colours can have alpha values which will change the transparency of the particles.


ScaleScale of the particles over their lifetime.
Scale RandRandomness of the Scale value.
Value: 0.0 to 1.0
Width MultiplierA multiplier value applied to the width of the scale value.
Height MultiplierA multiplier value applied to the height of the scale value


Align to VelocityWhen enabled, the particles will rotate towards the direction they're travelling in.
Initial AngleThe initial angle of the particle when it's spawned.
Initial Angle RandRandomness of the Initial Angle value.
Value: 0.0 to 1.0
Angle OffsetAn offset added to the initial angle after randomness has been applied.
This is useful when you'd like the particle's angle to be randomised between something other than 0 to 'Initial Angle'

Initial Angle = 90
Angle Randomness = 1.0
Angle Offset = -45
The resulting value would range between -45 and 45, instead of 0 and 90.
Angular VelocityThe rate of rotation over the course of a particle's lifetime.
Angular Velocity RandRandomness of the Angular Velocity value.
Value: 0.0 to 1.0
Angle LifetimeUse this to directly set the angle of a particle over it's lifetime.

Flow Map

Use Flow MapWhen enabled the particles velocity will be affected by the Flow Map.
TextureThe texture to use for the Flow Map.
Flow Maps are special textures which can be used to push particles around. The red channel of the image is used for the X velocity, and the green channel is used for the Y velocity. 
A red or green pixel value of 0 is the equivalent to a velocity change of -1
A red or green pixel value of 127 is the equivalent to a velocity change of 0.
A red or green pixel value of 255 is the equivalent to a velocity change of 1.
Here's an Unreal article on how to generate flowmaps in Photoshop
StrengthThe strength of the flow map. The higher the value, the more effect it will have on the particle's velocity.


Motion TypeThe type of motion applied to the emitter

No motion
Sin & Cos: 
The emitter will move using Sine waves for the horizontal movement, and Cosine waves for the vertical movement. The frequency (speed), offset (initial position along the wave) and amplitude (size) can all be adjusted independently.