OptionalallowWhether particles can rotate.
OptionalboundsOptional world-space bounds — particles outside die instantly.
OptionalburstPeriodic-burst count (particles per burst). Combined with
burstInterval, fires a burst every burstInterval seconds.
OptionalburstPeriod of automatic bursts in seconds. Has no effect when burstCount
is 0.
OptionalenabledWhether the emitter is active.
OptionallifetimeLifetime range maximum (s).
OptionallifetimeLifetime range minimum (s).
OptionalmaxMaximum simultaneously alive particles. The pool size is capped at this value too.
OptionalonFired when a particle's body collides with another body. Requires
particleCbType to be set. The handler runs from inside a Space
callback — do not mutate the space synchronously; use
ParticleEmitter.requestKill for deferred cleanup.
OptionalonFired when a particle dies (lifetime, bounds, manual, or killAll).
OptionalonFired once per spawn, after the body is in the space.
OptionalonFired every update() for each live particle (ages > 0).
Spawn anchor. A Vec2 is captured by reference (mutating it after
construction moves the emitter); a Body is tracked by position each
spawn (the body does not need to be in the same space). Required.
OptionaloverflowPolicy when maxParticles is reached.
OptionalparticleCollision-callback type tagged on every particle body. Required for
onCollide to fire. The emitter never auto-creates one — pass your own
if you need it (so multiple emitters can share a type, or a single
emitter can match a user-defined cbType).
OptionalparticleFilter applied to every particle shape. If omitted and selfCollision
is false, the emitter generates a self-excluding filter automatically.
OptionalparticleMaterial applied to every particle shape.
OptionalparticlePolygon vertices in body-local space (used when
particleShape: "polygon"). Defaults to a small square.
OptionalparticleRadius for circle particles. Ignored for polygon.
OptionalparticleBody shape for each particle.
OptionalrandomDeterministic RNG. All emitter randomness (spawn jitter, velocity cone, lifetime sampling) flows through this.
OptionalrateContinuous spawn rate in particles/second. Accumulated across update()
calls — fractional rates work. 0 disables continuous spawning (use
ParticleEmitter.emit for manual bursts).
OptionalselfWhen false and no explicit particleFilter is given, particles
receive a generated filter that skips its own group — particles in the
same emitter never collide with each other. Has no effect when
particleFilter is provided.
Space the emitted particle bodies live in. Required.
OptionalspawnSpawn-position pattern.
OptionalvelocityInitial velocity pattern.
Configuration options for ParticleEmitter.