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. In other words, the particle with the highest lifetime is drawn at the front.
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.