Skip to content

Lifetime and Speed Modules ​

The shield project combining color, size, and shader-driven motion

Lifetime and speed modules are most useful in combination: the shield layers several emitters whose size, color, and motion evolve together.

Lifetime modules sample with normalized particle age. Speed modules first map current speed through a configured range. They multiply or add to the start values instead of replacing the whole particle state blindly.

Lifetime Mode ​

Since 2.2.11
Once, Loop and PingPong from left to right: blue at birth, red at the end of life. The clips end at 6 s.

Lifetime Mode, next to Start Lifetime in a particle emitter's settings, decides how a particle's lifetime turns into the normalized age that every over-lifetime module samples:

ModeNormalized ageThe particle dies
Once (default)Runs from 0 to 1 once.At the end of its lifetime, as before.
LoopRuns from 0 to 1 and starts over every lifetime.When its emitter is stopped, at the end of the cycle it is in.
PingPongRuns from 0 to 1 and back, over and over.When its emitter is stopped, at the end of the cycle it is in.

An emitter is stopped when it winds down: a Drain clip ends, or the effect is stopped with destroy(false). An emitter that reaches the end of its own Duration is not stopped, so a burst of Loop particles keeps cycling after its emitter has finished. This makes a burst of Loop or PingPong particles a cheap ring or aura that lasts as long as its section.

Particles without a lifetime (a Start Lifetime of 0) now end at once when their emitter is stopped. Before 2.2.11 they never ended, so the effect never finished.

Module Reference ​

ModuleInputEffect
Color over Lifetimenormalized ageMultiply particle color/alpha by a gradient or color function.
Size over Lifetimenormalized ageScale X/Y/Z size.
Rotation over Lifetimenormalized ageAdd roll, pitch, and yaw about the axes picked by its Space.
Velocity over Lifetimenormalized ageAdd linear/orbital/radial velocity and speed modification.
Force over Lifetimenormalized ageIntegrate acceleration into velocity.
Color by Speedremapped speedMultiply color according to movement speed.
Size by Speedremapped speedScale size according to speed.
Rotation by Speedremapped speedAdd rotation according to speed.
Lifetime by Emitter Speedemitter speedAdjust lifetime assigned at spawn.
Fixed Lightnormalized ageSet the vanilla Sky Light and Block Light values. See Fixed Light.
Light Emissionnormalized ageTurn a share of the particles into dynamic lights that follow them and fade with them. See Light Emission.
Since 2.2.8 Light Emission.

Enable Is a Runtime Value ​

Animatable module enables since 2.2.0

Toggle modules expose their enable state through the emitter runtime. Timeline animation can therefore turn a module on and off without rewriting authored config.

Speed Range ​

By Speed modules remap the configured minimum and maximum to 0..1 before sampling their function. Keep the range representative of real particle velocity; a range far above actual speed makes the function remain near its first key.

Value Space ​

Vector-producing modules may expose a ValueSpace field. It picks the axes their values are authored in: Local, World, or Custom. It does not change the emitter's Particle Simulation Space.

Since 2.2.8

Custom shows a Custom Space picker. Drag an object from the hierarchy into it, and the values use that object's current axes. While it is unset, or after the object is deleted, Custom uses the world axes.

ModuleFieldDefaultLocalWorld and Custom
Force over LifetimeSimulation SpaceLocalThe emitter's axes.World axes, or the object's axes.
Velocity over LifetimeSpaceLocalThe emitter's axes.World axes, or the object's axes. With Custom, the orbital and radial pivot moves to the object's origin.
Rotation over LifetimeSpace (new in 2.2.8)LocalThe particle's own axes, as before 2.2.8.Spin about world axes or the object's axes. Applies to the Model, Horizontal, Vertical, and None render modes only.
AraTrail PhysicsGravity Space (new in 2.2.8)WorldThe emitter's axes.World axes, or the object's axes.
  • For billboard render modes, keep Rotation over Lifetime's Space on Local.
  • AraTrail files saved before 2.2.8 map Gravity Space from the trail's space, so they look the same.
  • A sub-emitter's Inherit Rotation ignores a World or Custom Rotation over Lifetime.

Combining Modules ​

Start Color × Color over Lifetime × Color by Speed produces the effective particle color before material logic. Size follows an equivalent pattern. Rotation and motion modules accumulate contributions.

When debugging:

  1. Set the start value to a simple constant.
  2. Enable one module.
  3. Use a visible linear curve from zero to one.
  4. Add the second module only after confirming the first input range.

Released under the MIT License.