Skip to content

VfxEmitterDefinitionData

Class Documentation

Edit documentation

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).

Properties

0xd1ee8634

Flag = false
Add documentation

No documentation available yet. Click "Add documentation" to contribute!

ChanceToNotExist

F32 = 0
Edit documentation

Probability (0-1) that the emitter is skipped when the system is instantiated.

Color

Embed<ValueColor> = { "constantValue": [1, 1, 1, 1], "dynamics": null }
Edit documentation

Particle color/alpha (RGBA) over lifetime, multiplied with the birth color. Default [1, 1, 1, 1].

DepthPushPull

F32 = 0
Add documentation

No documentation available yet. Click "Add documentation" to contribute!

EmitterPosition

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
14.1
Edit documentation

The emitter's position offset relative to the system (value-with-dynamics).

HasVariableStartTime

Flag = false
Edit documentation

Randomizes the emitter's start phase so multiple instances of a looping effect don't visibly sync up.

IsEmitterSpace

Flag = false
Edit documentation

Simulate particles in emitter space, so already-spawned particles move with the emitter, rather than being left behind in world space.

Linger

Pointer<VfxLingerDefinitionData> = null
Edit documentation

Pointer to an extended linger definition with more detailed control over post-deactivation behavior than the plain ParticleLinger / EmitterLinger values.

Material

Link<IMaterialDef> = "0x0"
Removed in 14.1
Edit documentation

Legacy link to a material. Removed from current builds - superseded by CustomMaterial / MaterialOverrideDefinitions.

MaximumRateByVelocity

Option<F32> = null
Edit documentation

Upper clamp for the velocity-driven emission rate (see RateByVelocityFunction).

ParticlesShareRandomValue

Flag = false
Edit documentation

All particles of the emitter share one random roll instead of rolling per particle (synchronizes randomized dynamics).

SortEmittersByPos

Flag = false
Edit documentation

Sort this emitter against others by position for correct transparency ordering.

SpawnShape

Pointer<IVfxShape> = null
14.1
Edit documentation

Pointer to a spawn-shape object that distributes particle birth positions (and optionally velocities) over a shape instead of a single point.

StencilReferenceId

Hash = "0x0"
14.1
Edit documentation

Hash identifying a named stencil reference shared between effects.

WriteAlphaOnly

Flag = false
Edit documentation

Write only to the alpha channel of the render target.

acceleration

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Acceleration over the particle's lifetime, in emitter/particle space.

alphaRef

U8 = 5
Edit documentation

Alpha-test threshold (0-255): pixels with alpha below this are discarded. Default 5.

bindWeight

Embed<ValueFloat> = { "constantValue": 0, "dynamics": null }
Edit documentation

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.

birthAcceleration

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Initial particle acceleration at spawn, per axis.

birthColor

Embed<ValueColor> = { "constantValue": [1, 1, 1, 1], "dynamics": null }
Edit documentation

Initial particle color/alpha (RGBA) at spawn. Default [1, 1, 1, 1].

birthDrag

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Initial per-axis drag (velocity damping) assigned at spawn.

birthFrameRate

Embed<ValueFloat> = { "constantValue": 1, "dynamics": null }
Edit documentation

Flipbook frame-rate multiplier assigned at particle spawn (value-with-dynamics). Default 1.

birthOrbitalVelocity

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Initial orbital velocity - particles revolve around the emitter origin, per-axis, in degrees per second.

birthRotation0

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Initial particle rotation at spawn, in degrees per axis.

birthRotationalAcceleration

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Particle spin acceleration, in degrees per second squared per axis.

birthRotationalVelocity0

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Initial particle spin rate at spawn, in degrees per second per axis.

birthScale0

Embed<ValueVector3> = { "constantValue": [1, 1, 1], "dynamics": null }
Edit documentation

Initial particle scale at spawn, per axis. Default [1, 1, 1].

birthUVOffset

Embed<ValueVector2> = { "constantValue": [0, 0], "dynamics": null }
Edit documentation

Initial UV offset assigned at particle spawn.

birthUvRotateRate

Embed<ValueFloat> = { "constantValue": 0, "dynamics": null }
Edit documentation

Initial UV rotation speed assigned at particle spawn, in degrees per second.

birthUvScrollRate

Embed<ValueVector2> = { "constantValue": [0, 0], "dynamics": null }
Edit documentation

Initial UV scroll speed assigned at particle spawn, in UVs per second.

birthVelocity

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Initial particle velocity at spawn, per axis (value-with-dynamics; dynamics give each particle a random value in a range).

blendMode

U8 = 0
Edit documentation

How the emitter's output is blended with the scene (alpha-blend, additive and related modes).

censorModulateValue

Vec4 = [1, 1, 1, 1]
Edit documentation

RGBA modulation applied when censored/toned-down visuals are active (regional content restrictions). Default [1, 1, 1, 1].

colorLookUpOffsets

Vec2 = [0, 0]
Edit documentation

Offset applied to the color-lookup coordinates.

colorLookUpScales

Vec2 = [1, 1]
Edit documentation

Scale applied to the color-lookup coordinates. Default [1, 1].

colorLookUpTypeX

U8 = 1
Edit documentation

What drives the X axis of the ParticleColorTexture lookup (e.g. particle lifetime). Default 1.

colorLookUpTypeY

U8 = 0
Edit documentation

What drives the Y axis of the ParticleColorTexture lookup. Default 0.

colorblindVisibility

U8 = 0
Edit documentation

Filters the emitter by colorblind mode: 0 = always visible (default), 1 = only in normal mode, 2 = only in colorblind mode.

depthBiasFactors

Vec2 = [0, 0]
Edit documentation

Depth-bias slope/constant factors applied when rendering, to fight z-fighting with nearby geometry.

directionVelocityMinScale

F32 = 1
Edit documentation

Minimum stretch factor for velocity-oriented particles. Default 1.

directionVelocityScale

F32 = 0
Edit documentation

How much particles stretch along their movement direction with speed (used with IsDirectionOriented).

disableBackfaceCull

Bool = false
Edit documentation

Render both faces of the primitive instead of culling back faces.

disabled

Bool = false
Edit documentation

Kill switch - a disabled emitter is skipped entirely when the effect is loaded.

distortionDefinition

Pointer<VfxDistortionDefinitionData> = null
Edit documentation

Pointer to a screen-distortion definition - the emitter warps the scene behind it (heat haze, shockwaves) instead of/in addition to normal rendering.

doesCastShadow

Flag = false
Edit documentation

The emitter's geometry casts shadows.

doesLifetimeScale

Flag = false
Edit documentation

Whether the emitter's lifetime scales when the owning effect's duration is scaled.

doesParticleLifetimeScale

Flag = false
Edit documentation

Whether particle lifetime scales when the owning effect's duration is scaled.

drag

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Per-axis drag over the particle's lifetime - velocity is damped proportionally to this value.

emissionMeshName

String = ""
Edit documentation

Name of a mesh whose surface is used for particle emission. Only resolved for complex emitters.

emissionMeshScale

F32 = 1
Edit documentation

Scale applied to the emission mesh. Default 1.

emitterLinger

Option<F32> = 0
Edit documentation

Extra time the emitter lingers after the system is deactivated, letting existing particles finish.

emitterName

String = ""
Edit documentation

The emitter's name, used for identification and by overrides that target emitters by name.

emitterUvScrollRate

Vec2 = [0, 0]
Edit documentation

UV scroll speed applied uniformly by the emitter, in UVs per second.

falloffTexture

String = "ASSETS/Shared/Particles/DefaultFalloff.png"
Edit documentation

Falloff texture used by the emitter's shading. Default ASSETS/Shared/Particles/DefaultFalloff.png.

flexBirthRotationalVelocity0

Pointer<FlexValueVector3> = null
Edit documentation

Flex-driven override of BirthRotationalVelocity0 (see FlexBirthVelocity for how flex properties work).

flexBirthVelocity

Pointer<FlexValueVector3> = null
Edit documentation

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.

hasPostRotateOrientation

Flag = false
Edit documentation

Applies an extra fixed rotation after the particle's normal orientation is computed, around PostRotateOrientationAxis.

importance

U8 = 2
Edit documentation

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.

isDirectionOriented

Flag = false
Edit documentation

Orient particles along their movement direction.

isFollowingTerrain

Flag = false
Edit documentation

Particles follow the terrain height instead of keeping their spawn height.

isGroundLayer

Flag = false
Edit documentation

Renders the emitter as part of the ground layer (projected onto the ground, e.g. AoE indicators and decal-like effects).

isLocalOrientation

Flag = true
Edit documentation

Orient the emitter in the space of what the system is attached to instead of world space. Default true.

isRandomStartFrame

Flag = false
Edit documentation

Each particle starts on a random flipbook frame.

isRotationEnabled

Flag = false
Edit documentation

Enables particle rotation (the *Rotation* properties).

isSingleParticle

Flag = false
Edit documentation

The emitter maintains a single (or fixed set of) persistent particle(s) instead of streaming them over time.

isTexturePixelated

Bool = false
Edit documentation

Use nearest-neighbor (pixelated) texture filtering instead of bilinear.

isUniformScale

Flag = false
Edit documentation

Use a single uniform scale (X drives all axes) instead of independent per-axis scale.

lifetime

Option<F32> = null
Edit documentation

How long the emitter emits, in seconds. Unset (default) makes the emitter run for the life of the system.

meshRenderFlags

U8 = 1
Edit documentation

Render flags for mesh primitives. Default 1.

modulationFactor

Vec4 = [1, 1, 1, 1]
Edit documentation

RGBA modulation factor applied to the emitter's output. Default [1, 1, 1, 1].

numFrames

U16 = 1
Edit documentation

Number of flipbook frames in the texture (laid out per TexDiv). Default 1.

offsetLifeScalingSymmetryMode

U8 = 0
Edit documentation

How the offset-based lifetime scaling treats negative offsets (see OffsetLifetimeScaling).

offsetLifetimeScaling

Vec3 = [0, 0, 0]
Edit documentation

Scales particle lifetime by the particle's spawn offset from the emitter, per axis.

particleColorTexture

String = "ASSETS/Shared/Particles/DefaultColorOverlifetime.png"
Edit documentation

Gradient texture sampled to color particles (commonly over lifetime). The lookup axes are configured with ColorLookUpTypeX / ColorLookUpTypeY and shaped with ColorLookUpScales / ColorLookUpOffsets.

particleIsLocalOrientation

Flag = false
Edit documentation

Orient individual particles in local (attachment) space instead of world space.

particleLifetime

Embed<ValueFloat> = { "constantValue": 3, "dynamics": null }
Edit documentation

How long each particle lives, in seconds (value-with-dynamics). Default 3.

particleLinger

Option<F32> = 0
Edit documentation

Extra time particles are allowed to live out after the emitter stops, in seconds.

particleLingerType

U8 = 0
Edit documentation

Selects how lingering particles behave after the emitter stops (see ParticleLinger).

pass

I16 = 0
Edit documentation

Sort key for draw order among emitters; higher/lower values shift when this emitter renders relative to others.

period

Option<F32> = null
Edit documentation

Length of one emission cycle, in seconds, for looping emitters.

postRotateOrientationAxis

Vec3 = [0, 0, 0]
Edit documentation

Axis for the post-orientation rotation (see HasPostRotateOrientation).

primitive

Pointer<VfxLegacyPrimitiveBase> = {}
Type history (2 revisions)
Edit documentation

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.

rate

Embed<ValueFloat> = { "constantValue": 0, "dynamics": null }
Edit documentation

Emission rate in particles per second (value-with-dynamics). For single-particle emitters (IsSingleParticle) the rate instead controls the particle count.

rateByVelocityFunction

Embed<ValueVector2> = { "constantValue": [0, 0], "dynamics": null }
Edit documentation

Scales emission rate by the emitter's movement speed (input/output mapping) - e.g. dust trails that only emit while moving.

renderPhaseOverride

U8 = 7
Edit documentation

Overrides which render phase the emitter draws in. Default 7 (no override).

rotationOverride

Vec3 = [0, 0, 0]
Edit documentation

Overrides the emitter's rotation within the system (degrees per axis).

scale0

Embed<ValueVector3> = { "constantValue": [1, 1, 1], "dynamics": null }
Edit documentation

Particle scale over lifetime, multiplied with the birth scale. Default [1, 1, 1].

scaleOverride

Vec3 = [1, 1, 1]
Edit documentation

Overrides the emitter's scale within the system. Default [1, 1, 1].

shape

Embed<VfxShape>
Removed in 14.1
Default value
{
  "emitRotationAngles": [],
  "emitRotationAxes": [],
  "emitOffset": { "constantValue": [0, 0, 0], "dynamics": null },
  "birthTranslation": { "constantValue": [0, 0, 0], "dynamics": null }
}
Edit documentation

Legacy embedded spawn-shape (emit offsets/rotations and birth translation). Removed from current builds - superseded by SpawnShape.

sliceTechniqueRange

F32 = 0
Add documentation

No documentation available yet. Click "Add documentation" to contribute!

stencilMode

U8 = 0
Edit documentation

Stencil-buffer mode used when rendering the emitter.

texAddressModeBase

U8 = 0
Edit documentation

Texture addressing mode (wrap/clamp) for the base texture.

texDiv

Vec2 = [1, 1]
Edit documentation

Columns × rows the texture is divided into for flipbook animation (see NumFrames, FrameRate). Default [1, 1].

timeActiveDuringPeriod

Option<F32> = null
Edit documentation

How much of each Period the emitter actually emits, in seconds. Unset = active for the whole period.

timeBeforeFirstEmission

F32 = 0
Edit documentation

Delay, in seconds, before the emitter starts emitting.

translationOverride

Vec3 = [0, 0, 0]
Edit documentation

Overrides the emitter's translation within the system.

useEmissionMeshNormalForBirth

Flag = true
Edit documentation

Orient/emit particles along the emission-mesh surface normals. Default true.

useNavmeshMask

Flag = false
Edit documentation

Masks the effect using the navigation mesh (e.g. so ground effects don't render over walls).

uvMode

U8 = 0
Edit documentation

Selects how UVs are generated/interpreted for the primitive.

uvParallaxScale

F32 = 0
Edit documentation

Strength of a view-dependent UV parallax offset.

uvRotation

Embed<ValueFloat> = { "constantValue": 0, "dynamics": null }
Edit documentation

UV rotation, in degrees, around UvTransformCenter.

uvScrollClamp

Flag = false
Edit documentation

Clamp scrolled UVs instead of wrapping them.

uvTransformCenter

Vec2 = [0.5, 0.5]
Edit documentation

Pivot for UV rotation/scaling. Default [0.5, 0.5] (texture center).

velocity

Embed<ValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Velocity applied over the particle's lifetime, on top of its integrated birth velocity.

worldAcceleration

Embed<IntegratedValueVector3> = { "constantValue": [0, 0, 0], "dynamics": null }
Edit documentation

Acceleration applied in world space regardless of particle orientation - typically gravity (negative Y).

Referenced by 1 class · 2 properties