GenPeriodic
Generator. Periodically generates particles at a steady rate.
Particles are emitted at regular time intervals determined by the Rate property. The generator interpolates the exact emission time within each frame for smooth results, even at low frame rates.
The rate is specified as a percentage of emitter capacity per second — the same convention as the other generators. A rate of 100% emits the emitter's whole capacity worth of particles every second. Each emission event (shot) produces Burst particles, so the time between shots is 100 × max(1, burst) / (rate × capacity) seconds — for a whole-number burst the percentage always describes particle throughput, regardless of the burst size.
Setting the rate from particle life. As with the other percentage-based generators, pick the rate straight from how long your particles live: rate = 100 / life (2-second particles → 50%). The Particle average life helper field in the block properties does this calculation for you, and the Emitter Guide can keep it up to date automatically — see Linking the rate to particle life.
In the Emitter Guide every numeric parameter of this generator is a value of its own (a fixed number, an emitter property, a graph over time …), wired to the matching input; switching the generator type carries the shared parameters along.
Legacy absolute rate. In effects saved before this convention, the rate meant absolute shots per second. Fixed rate values are converted to percent automatically when the effect is loaded — the emission stays exactly the same. If the rate input is connected to another block, the connected value keeps its absolute shots-per-second meaning: such a block is marked as legacy on the scheme (@rate/sec.), in the block properties (the Legacy absolute rate checkbox) and in the Emitter Guide. Use Convert to % in the Emitter Guide to convert guide-managed values automatically (value graphs are rescaled so the emission does not change), or multiply your connected value by 100 × max(1, burst) / capacity and clear the legacy checkbox when the value graph is hand-made. When the burst itself is connected to another block, there is no single factor to rescale by: Convert to % then only reinterprets the value and tells you the factor per burst particle (100 / capacity, to be multiplied by max(1, burst)).
Properties & inputs:
- Rate (input | property): Generation rate as a percentage of emitter capacity per second.
- Particle average life (property): Helper to pick the rate by eye — enter roughly how long your particles live and the rate is set to 100 / life.
- Fixed time / Time limit (input | property): When enabled, the generator stops after the specified duration in seconds. The input appears when the time limit is made external.
- Fixed shots / Shots limit (input | property): When enabled, the generator stops after the specified number of bursts. An input value is rounded up to whole shots.
- Start delay (input | property): Delay in seconds before the generator starts.
- Start Phase (input | property): Phase offset from 0 to 1. If 1, the first particle is emitted immediately. If 0, a full period elapses first. An input value is read when the generator starts (and on every restart), not continuously.
- Burst (input | property): Number of particles generated per emission event. An input value may be fractional: each shot emits it rounded up to whole particles, while the time between shots uses the value as it is (but at least 1). Zero or a negative value emits nothing. Keep it at or below the emitter's Max. num. particles: a larger burst cannot fit into the emitter, so only as many particles as there are free slots are emitted, the rest are dropped and Burst Pos. never reaches its end. The editor marks the block with a warning in that case.
- Burst pos mode (property): Controls how the Burst Pos. output is spread across the particles of one burst. Normalized (default) runs the first particle to 0 and the last to 1 (index / (burst − 1)). Linear runs the first particle to 0 and the last to 1 − 1/burst (index / burst), so the value never quite reaches 1 — useful when Burst Pos. drives a looping or tiling gradient where the last particle should not land on the same value as the first.
Outputs:
- Burst Amount (float): Number of particles in the current burst.
- Burst Pos. (float): Position of a particle within the burst. The range depends on Burst pos mode: Normalized gives [0; 1] (last particle = 1), Linear gives [0; 1 − 1/burst] (last particle < 1).
A fractional Burst (possible only through its input) breaks these guarantees: each shot emits the value rounded up, while the outputs and the time between shots use the raw value — keep a connected burst a whole number.
- Shots Made (float): How many shots this generator had already completed when the particle was born — 0 for the particles of the very first shot, 1 for the second one, and so on. Useful to make each shot differ from the previous ones (colour, size, direction). In the Emitter Guide the same value is available directly as the Number of shots value type.