A CPU-based 2D particle emitter.
CPU-based 2D particle node used to create a variety of particle systems and effects.
See also [GPUParticles2D], which provides the same functionality with hardware acceleration, but may not run on older devices.
$DOCS_URL/tutorials/2d/particle_systems_2d.html
Sets this node's properties to match a given [GPUParticles2D] node with an assigned [ParticleProcessMaterial].
Returns the [Curve] of the parameter specified by [enum Parameter].
Returns the maximum value range for the given parameter.
Returns the minimum value range for the given parameter.
Returns the enabled state of the given flag (see [enum ParticleFlags] for options).
Restarts the particle emitter.
Sets the [Curve] of the parameter specified by [enum Parameter].
Sets the maximum value for the given parameter.
Sets the minimum value for the given parameter.
Enables or disables the given flag (see [enum ParticleFlags] for options).
Number of particles emitted in one emission cycle.
Each particle's rotation will be animated along this [Curve].
Maximum initial rotation applied to each particle, in degrees.
Minimum equivalent of [member angle_max].
Each particle's angular velocity will vary along this [Curve].
Maximum initial angular velocity (rotation speed) applied to each particle in [i]degrees[/i] per second.
Minimum equivalent of [member angular_velocity_max].
Each particle's animation offset will vary along this [Curve].
Maximum animation offset that corresponds to frame index in the texture. [code]0[/code] is the first frame, [code]1[/code] is the last one. See [member CanvasItemMaterial.particles_animation].
Minimum equivalent of [member anim_offset_max].
Each particle's animation speed will vary along this [Curve].
Maximum particle animation speed. Animation speed of [code]1[/code] means that the particles will make full [code]0[/code] to [code]1[/code] offset cycle during lifetime, [code]2[/code] means [code]2[/code] cycles etc.
With animation speed greater than [code]1[/code], remember to enable [member CanvasItemMaterial.particles_anim_loop] property if you want the animation to repeat.
Minimum equivalent of [member anim_speed_max].
Each particle's initial color. If [member texture] is defined, it will be multiplied by this color.
Each particle's initial color will vary along this [GradientTexture1D] (multiplied with [member color]).
Each particle's color will vary along this [Gradient] (multiplied with [member color]).
Damping will vary along this [Curve].
The maximum rate at which particles lose velocity. For example value of [code]100[/code] means that the particle will go from [code]100[/code] velocity to [code]0[/code] in [code]1[/code] second.
Minimum equivalent of [member damping_max].
Unit vector specifying the particles' emission direction.
Particle draw order. Uses [enum DrawOrder] values.
Sets the [Color]s to modulate particles by when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS].
Sets the direction the particles will be emitted in when using [constant EMISSION_SHAPE_DIRECTED_POINTS].
Sets the initial positions to spawn particles when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS].
The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_RECTANGLE].
Particles will be emitted inside this region. See [enum EmissionShape] for possible values.
The sphere's radius if [member emission_shape] is set to [constant EMISSION_SHAPE_SPHERE].
If [code]true[/code], particles are being emitted. [member emitting] can be used to start and stop particles from emitting. However, if [member one_shot] is [code]true[/code] setting [member emitting] to [code]true[/code] will not restart the emission cycle until after all active particles finish processing. You can use the [signal finished] signal to be notified once all active particles finish processing.
How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins.
The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect.
Gravity applied to every particle.
Each particle's hue will vary along this [Curve].
Maximum initial hue variation applied to each particle. It will shift the particle color's hue.
Minimum equivalent of [member hue_variation_max].
Maximum initial velocity magnitude for each particle. Direction comes from [member direction] and [member spread].
Minimum equivalent of [member initial_velocity_max].
Amount of time each particle will exist.
Particle lifetime randomness ratio.
Each particle's linear acceleration will vary along this [Curve].
Maximum linear acceleration applied to each particle in the direction of motion.
Minimum equivalent of [member linear_accel_max].
If [code]true[/code], particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the [CPUParticles2D] node (and its parents) when it is moved or rotated. If [code]false[/code], particles use global coordinates; they will not move or rotate along the [CPUParticles2D] node (and its parents) when it is moved or rotated.
If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end.
Each particle's orbital velocity will vary along this [Curve].
Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
Minimum equivalent of [member orbit_velocity_max].
Align Y axis of particle with the direction of its velocity.
Particle system starts as if it had already run for this many seconds.
Each particle's radial acceleration will vary along this [Curve].
Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative.
Minimum equivalent of [member radial_accel_max].
Emission lifetime randomness ratio.
Each particle's scale will vary along this [Curve].
Maximum initial scale applied to each particle.
Minimum equivalent of [member scale_amount_max].
Each particle's horizontal scale will vary along this [Curve].
[member split_scale] must be enabled.
Each particle's vertical scale will vary along this [Curve].
[member split_scale] must be enabled.
Particle system's running speed scaling ratio. A value of [code]0[/code] can be used to pause the particles.
If [code]true[/code], the scale curve will be split into x and y components. See [member scale_curve_x] and [member scale_curve_y].
Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees.
Each particle's tangential acceleration will vary along this [Curve].
Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
Minimum equivalent of [member tangential_accel_max].
Particle texture. If [code]null[/code], particles will be squares.
Emitted when all active particles have finished processing. When [member one_shot] is disabled, particles will process continuously, so this is never emitted.
Particles are drawn in the order emitted.
Particles are drawn in order of remaining lifetime.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set initial velocity properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angular velocity properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set orbital velocity properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set linear acceleration properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set radial acceleration properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set tangential acceleration properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set damping properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angle properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set scale properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set hue variation properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation speed properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation offset properties.
Represents the size of the [enum Parameter] enum.
Use with [method set_particle_flag] to set [member particle_flag_align_y].
Present for consistency with 3D particle nodes, not used in 2D.
Present for consistency with 3D particle nodes, not used in 2D.
Represents the size of the [enum ParticleFlags] enum.
All particles will be emitted from a single point.
Particles will be emitted in the volume of a sphere flattened to two dimensions.
Particles will be emitted on the surface of a sphere flattened to two dimensions.
Particles will be emitted in the area of a rectangle.
Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors].
Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].
Represents the size of the [enum EmissionShape] enum.