0xd1ee8634
Flag = false No documentation available yet. Click "Add documentation" to contribute!
The definition of a single emitter inside a VfxSystemDefinitionData particle system. An emitter spawns particles over time and defines everything about them: emission timing and rate, birth state (velocity, rotation, scale, color), over-lifetime evolution, the rendered primitive (billboard quad, mesh, beam, trail, …), texturing/UV animation, blending, and per-emitter audio and child effects.
Systems reference emitters through two lists: ComplexEmitterDefinitionData
(full feature set) and SimpleEmitterDefinitionData (lightweight path).
Many properties come in Birth* / non-Birth pairs: the Birth* property is
evaluated once when a particle spawns (its initial value, often with a random
range), while the non-Birth counterpart evolves the value over the particle's
lifetime. Most of these use a value-with-dynamics embed: a ConstantValue
plus optional Dynamics (keyframed/randomized curves).
Flag = false No documentation available yet. Click "Add documentation" to contribute!
Pointer to the emitter's audio definition (sound events tied to the emitter/particles).
F32 = 0 Probability (0-1) that the emitter is skipped when the system is instantiated.
Particle color/alpha (RGBA) over lifetime, multiplied with the birth color. Default [1, 1, 1, 1].
Pointer to a custom material used instead of the stock particle shading.
F32 = 0 No documentation available yet. Click "Add documentation" to contribute!
The emitter's position offset relative to the system (value-with-dynamics).
Pointer to filtering settings that further gate the emitter's visibility (e.g. by keyword/context).
Flex-driven scale applied to the whole emitter instance.
Flex-driven spawn-shape parameters.
Flag = false Randomizes the emitter's start phase so multiple instances of a looping effect don't visibly sync up.
Flag = false Simulate particles in emitter space, so already-spawned particles move with the emitter, rather than being left behind in world space.
Pointer to the legacy simple-emitter parameter block, used by emitters in the system's SimpleEmitterDefinitionData list.
Pointer to an extended linger definition with more detailed control over post-deactivation behavior than the plain ParticleLinger / EmitterLinger values.
Legacy link to a material. Removed from current builds - superseded by CustomMaterial / MaterialOverrideDefinitions.
Option<F32> = null Upper clamp for the velocity-driven emission rate (see RateByVelocityFunction).
Flag = false All particles of the emitter share one random roll instead of rolling per particle (synchronizes randomized dynamics).
Flag = false Sort this emitter against others by position for correct transparency ordering.
Pointer to a spawn-shape object that distributes particle birth positions (and optionally velocities) over a shape instead of a single point.
Hash = "0x0" Hash identifying a named stencil reference shared between effects.
Flag = false Flip the texture horizontally.
Flag = false Flip the texture vertically.
Flag = false Write only to the alpha channel of the render target.
Acceleration over the particle's lifetime, in emitter/particle space.
Pointer to an alpha-erosion definition - dissolves particles via an erosion texture/threshold over lifetime.
U8 = 5 Alpha-test threshold (0-255): pixels with alpha below this are discarded. Default 5.
How strongly existing particles follow the moving emitter (value-with-dynamics,
0 = fully world-space, 1 = fully emitter-bound) - a blend between the two
behaviors of IsEmitterSpace.
Initial particle acceleration at spawn, per axis.
Initial particle color/alpha (RGBA) at spawn. Default [1, 1, 1, 1].
Initial per-axis drag (velocity damping) assigned at spawn.
Flipbook frame-rate multiplier assigned at particle spawn (value-with-dynamics). Default 1.
Initial orbital velocity - particles revolve around the emitter origin, per-axis, in degrees per second.
Initial particle rotation at spawn, in degrees per axis.
Particle spin acceleration, in degrees per second squared per axis.
Initial particle spin rate at spawn, in degrees per second per axis.
Initial particle scale at spawn, per axis. Default [1, 1, 1].
Initial UV offset assigned at particle spawn.
Initial UV rotation speed assigned at particle spawn, in degrees per second.
Initial UV scroll speed assigned at particle spawn, in UVs per second.
Initial particle velocity at spawn, per axis (value-with-dynamics; dynamics give each particle a random value in a range).
U8 = 0 How the emitter's output is blended with the scene (alpha-blend, additive and related modes).
Vec4 = [1, 1, 1, 1] RGBA modulation applied when censored/toned-down visuals are active (regional content restrictions). Default [1, 1, 1, 1].
Pointer to a child-particle set - child VFX systems spawned from this emitter's particles (e.g. on particle death or over its life).
Vec2 = [0, 0] Offset applied to the color-lookup coordinates.
Vec2 = [1, 1] Scale applied to the color-lookup coordinates. Default [1, 1].
U8 = 1 What drives the X axis of the ParticleColorTexture lookup (e.g. particle lifetime). Default 1.
U8 = 0 What drives the Y axis of the ParticleColorTexture lookup. Default 0.
U8 = 0 Render flags controlling color output.
U8 = 0 Filters the emitter by colorblind mode: 0 = always visible (default),
1 = only in normal mode, 2 = only in colorblind mode.
Vec2 = [0, 0] Depth-bias slope/constant factors applied when rendering, to fight z-fighting with nearby geometry.
F32 = 1 Minimum stretch factor for velocity-oriented particles. Default 1.
F32 = 0 How much particles stretch along their movement direction with speed (used with IsDirectionOriented).
Bool = false Render both faces of the primitive instead of culling back faces.
Bool = false Kill switch - a disabled emitter is skipped entirely when the effect is loaded.
Pointer to a screen-distortion definition - the emitter warps the scene behind it (heat haze, shockwaves) instead of/in addition to normal rendering.
Flag = false The emitter's geometry casts shadows.
Flag = false Whether the emitter's lifetime scales when the owning effect's duration is scaled.
Flag = false Whether particle lifetime scales when the owning effect's duration is scaled.
Per-axis drag over the particle's lifetime - velocity is damped proportionally to this value.
String = "" Name of a mesh whose surface is used for particle emission. Only resolved for complex emitters.
F32 = 1 Scale applied to the emission mesh. Default 1.
Pointer to an emission-surface definition used to spawn particles across a surface.
Option<F32> = 0 Extra time the emitter lingers after the system is deactivated, letting existing particles finish.
String = "" The emitter's name, used for identification and by overrides that target emitters by name.
Vec2 = [0, 0] UV scroll speed applied uniformly by the emitter, in UVs per second.
String = "ASSETS/Shared/Particles/DefaultFalloff.png" Falloff texture used by the emitter's shading. Default ASSETS/Shared/Particles/DefaultFalloff.png.
Pointer to a collection of force fields (attraction, acceleration, drag, noise) that act on this emitter's particles.
Flex-driven override of BirthRotationalVelocity0 (see FlexBirthVelocity for how flex properties work).
Flex-driven override of BirthUvoffset.
Flex-driven override of BirthUvScrollRate.
Flex-driven override of BirthVelocity. Flex properties scale or replace
their base property depending on an externally provided flex value (identified
by a flex ID), letting one effect definition adapt to spell rank, character
size, or similar parameters.
Flex-driven emitter offset. Removed from current builds.
Flex-driven override of ParticleLifetime.
Flex-driven override of Rate.
Flex-driven scale applied to BirthScale0.
F32 = 0 Flipbook playback rate, in frames per second.
Flag = false Applies an extra fixed rotation after the particle's normal orientation is computed, around PostRotateOrientationAxis.
U8 = 2 Quality-culling priority, checked against the EffectsQuality video setting
(0-4) when the system instantiates its emitters:
| EffectsQuality | Skipped importance values |
|---|---|
| 0-1 (Very Low / Low) | 0, 1, 5 |
| 2 (Medium) | 0, 1 |
| 3 (High) | 0, 4 |
| 4 (Very High) | 4 |
So 0-3 ascend in priority (3 = gameplay-critical, never culled), 4 is a
low-quality substitute shown only on low settings, and 5 is shown only on
Medium and above.
Flag = false Orient particles along their movement direction.
Flag = false Particles follow the terrain height instead of keeping their spawn height.
Flag = false Renders the emitter as part of the ground layer (projected onto the ground, e.g. AoE indicators and decal-like effects).
Flag = true Orient the emitter in the space of what the system is attached to instead of world space. Default true.
Flag = false Each particle starts on a random flipbook frame.
Flag = false Enables particle rotation (the *Rotation* properties).
Flag = false The emitter maintains a single (or fixed set of) persistent particle(s) instead of streaming them over time.
Bool = false Use nearest-neighbor (pixelated) texture filtering instead of bilinear.
Flag = false Use a single uniform scale (X drives all axes) instead of independent per-axis scale.
Option<F32> = null How long the emitter emits, in seconds. Unset (default) makes the emitter run for the life of the system.
Legacy map of named material drivers. Removed from current builds.
Material overrides applied to this emitter (per-submesh/priority overrides of textures or materials).
U8 = 1 Render flags for mesh primitives. Default 1.
U8 = 0 Additional low-level render flags.
Vec4 = [1, 1, 1, 1] RGBA modulation factor applied to the emitter's output. Default [1, 1, 1, 1].
U16 = 1 Number of flipbook frames in the texture (laid out per TexDiv). Default 1.
U8 = 0 How the offset-based lifetime scaling treats negative offsets (see OffsetLifetimeScaling).
Vec3 = [0, 0, 0] Scales particle lifetime by the particle's spawn offset from the emitter, per axis.
Pointer to a palette definition used to recolor the emitter via a palette texture.
String = "ASSETS/Shared/Particles/DefaultColorOverlifetime.png" Gradient texture sampled to color particles (commonly over lifetime).
The lookup axes are configured with ColorLookUpTypeX / ColorLookUpTypeY
and shaped with ColorLookUpScales / ColorLookUpOffsets.
Flag = false Orient individual particles in local (attachment) space instead of world space.
How long each particle lives, in seconds (value-with-dynamics). Default 3.
Option<F32> = 0 Extra time particles are allowed to live out after the emitter stops, in seconds.
U8 = 0 Selects how lingering particles behave after the emitter stops (see ParticleLinger).
Per-particle UV rotation speed over lifetime, in degrees per second.
Per-particle UV scroll speed over lifetime, in UVs per second.
I16 = 0 Sort key for draw order among emitters; higher/lower values shift when this emitter renders relative to others.
Option<F32> = null Length of one emission cycle, in seconds, for looping emitters.
Vec3 = [0, 0, 0] Axis for the post-orientation rotation (see HasPostRotateOrientation).
Pointer<VfxPrimitiveBase> Pointer<VfxLegacyPrimitiveBase> Pointer to the primitive the emitter renders - the object that defines particle geometry (camera-facing quad billboards by default, or meshes, beams, trails, planar projections, arbitrary quads, …). Unset means the default billboard quad.
Emission rate in particles per second (value-with-dynamics). For
single-particle emitters (IsSingleParticle) the rate instead controls the
particle count.
Scales emission rate by the emitter's movement speed (input/output mapping) - e.g. dust trails that only emit while moving.
Pointer to a reflection definition (fresnel/environment reflection parameters) for the emitter's shading.
U8 = 7 Overrides which render phase the emitter draws in. Default 7 (no override).
Particle rotation over lifetime, in degrees per axis.
Vec3 = [0, 0, 0] Overrides the emitter's rotation within the system (degrees per axis).
Particle scale over lifetime, multiplied with the birth scale. Default [1, 1, 1].
Vec3 = [1, 1, 1] Overrides the emitter's scale within the system. Default [1, 1, 1].
{
"emitRotationAngles": [],
"emitRotationAxes": [],
"emitOffset": { "constantValue": [0, 0, 0], "dynamics": null },
"birthTranslation": { "constantValue": [0, 0, 0], "dynamics": null }
}Legacy embedded spawn-shape (emit offsets/rotations and birth translation). Removed from current builds - superseded by SpawnShape.
F32 = 0 No documentation available yet. Click "Add documentation" to contribute!
Pointer to soft-particle parameters - fades particles where they intersect scene geometry to avoid hard clipping edges.
U16 = 0 First flipbook frame to play.
U8 = 0 Stencil-buffer mode used when rendering the emitter.
U8 = 0 Stencil reference value used with StencilMode.
U8 = 0 Texture addressing mode (wrap/clamp) for the base texture.
Vec2 = [1, 1] Columns × rows the texture is divided into for flipbook animation (see NumFrames, FrameRate). Default [1, 1].
String = "" The emitter's main texture.
Optional secondary texture multiplied over the main texture, with its own UV controls.
Option<F32> = null How much of each Period the emitter actually emits, in seconds. Unset = active for the whole period.
F32 = 0 Delay, in seconds, before the emitter starts emitting.
Vec3 = [0, 0, 0] Overrides the emitter's translation within the system.
Flag = true Orient/emit particles along the emission-mesh surface normals. Default true.
Flag = false Masks the effect using the navigation mesh (e.g. so ground effects don't render over walls).
U8 = 0 Selects how UVs are generated/interpreted for the primitive.
F32 = 0 Strength of a view-dependent UV parallax offset.
UV rotation, in degrees, around UvTransformCenter.
UV scale (value-with-dynamics). Default [1, 1].
Flag = false Clamp scrolled UVs instead of wrapping them.
Vec2 = [0.5, 0.5] Pivot for UV rotation/scaling. Default [0.5, 0.5] (texture center).
Velocity applied over the particle's lifetime, on top of its integrated birth velocity.
Acceleration applied in world space regardless of particle orientation - typically gravity (negative Y).