# This file is automatically generated. Please don't edit it manually. # To submit a bug report on the content, see # https://devforum.roblox.com/c/bug-reports/documentation-issues/72 name: ParticleEmitter type: class memory_category: Instances summary: | A special object that emits customizable 2D particles into the world. description: | A **ParticleEmitter** is a special object that emits customizable 2D particles into the world. To emit and render particles, it must be parented to a `Class.BasePart` or an `Class.Attachment` within such a part. When parented to a `Class.BasePart`, particles spawn randomly within the part's bounding box or [shape](../../../effects/particle-emitters.md#shape); when parented to an `Class.Attachment`, particles spawn from the attachment's position. Particles emit automatically when the emitter is `Class.ParticleEmitter.Enabled|Enabled` with a non-zero `Class.ParticleEmitter.Rate|Rate`, or manually when the `Class.ParticleEmitter:Emit()|Emit` method is called. With a non-zero `Class.ParticleEmitter.Speed|Speed`, particles are set in motion outwards and/or inwards, depending on the `Class.ParticleEmitter.ShapeInOut|ShapeInOut` property. By default, particles face the camera, but the `Class.ParticleEmitter.Orientation|Orientation` can be modified to respect the particle velocity instead. During the `Class.ParticleEmitter.Lifetime|Lifetime` of the particles, they can change appearance according to the `Class.ParticleEmitter.Color|Color` and `Class.ParticleEmitter.Size|Size`. Their motion can change over time according to the `Class.ParticleEmitter.Drag|Drag` and `Class.ParticleEmitter.Acceleration|Acceleration` properties, and they can also move as their parent moves when they are `Class.ParticleEmitter.LockedToPart|LockedToPart` or have a non-zero `Class.ParticleEmitter.VelocityInheritance|VelocityInheritance`. To learn more about creating and customizing particle emitters, see [Particle Emitters](../../../effects/particle-emitters.md). code_samples: - Creating-A-ParticleEmitter-from-Scratch inherits: - Instance descendants: [] tags: [] deprecation_message: '' properties: - name: ParticleEmitter.Acceleration summary: | Determines the global-axis acceleration of all active particles, measured in studs per second squared. description: | The **Acceleration** property determines how the `Class.ParticleEmitter.Speed|Speed` of particles changes over their lifetime. It is defined using a `Datatype.Vector3` to determine the acceleration on the global **X**/**Y**/**Z** axes and is measured in studs per second squared. When changed, this property affects all particles emitted by the emitter, both current and future. Acceleration will slow particles down if the vector points in the opposite `Class.ParticleEmitter.EmissionDirection|EmissionDirection` in which they are emitted. Otherwise, it will speed them up. code_samples: [] type: Vector3 tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Motion serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.Brightness summary: | Scales the light emitted from the emitter when `Class.ParticleEmitter.LightInfluence` is 0. description: | Scales the light emitted from the emitter when `Class.ParticleEmitter.LightInfluence` is 0. code_samples: [] type: float tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Appearance serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.Color summary: | Determines the color of all active particles over their individual lifetimes. description: | The **Color** property determines the color of all active particles over their individual lifetimes. The color applies to the `Class.ParticleEmitter.Texture|Texture` when rendering and it uses the texture alpha along with the emitter's `Class.ParticleEmitter.Transparency|Transparency`. If an emitter has a `Class.ParticleEmitter.LightEmission|LightEmission` value that's greater than 0, darker colors make particles appear more transparent. Changing this property affects all particles emitted by the emitter, both current and future. When this property uses a gradient `Datatype.ColorSequence`, a particle's present color is determined by linearly interpolating on the sequence using the particle's age and its total lifetime. For example, if a particle spawned 2 seconds ago and has a 4 second lifetime, the color will be whatever is 50% of the way through the `Datatype.ColorSequence`. code_samples: [] type: ColorSequence tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Appearance serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.Drag summary: | Determines the rate at which particles will lose half their speed through exponential decay. description: | The **Drag** property determines the rate in seconds at which individual particles will lose half their speed via exponential decay. Drag is applied by scaling the expected velocity from `Class.ParticleEmitter.Speed|Speed` and any velocity inherited from the parent from `Class.ParticleEmitter.VelocityInheritance|VelocityInheritance`. Setting this property to a negative value will cause particles' velocities to grow exponentially. code_samples: [] type: float tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Particles serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.EmissionDirection summary: | Determines the face of the object that particles emit from. description: | The **EmissionDirection** property determines the face (`Enum.NormalId`) of the parent object that particles emit from. A negative `Class.ParticleEmitter.Speed|Speed` means particles emit in the opposite direction. `Class.ParticleEmitter.SpreadAngle|SpreadAngle` further varies the emission direction. If you add a `Class.ParticleEmitter` to an `Class.Attachment`, which has a direction, you can rotate the attachment itself (`Class.Attachment.Orientation`) instead of using this property. code_samples: [] type: NormalId tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Emission serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.Enabled summary: | Determines if particles emit from the emitter. description: | The **Enabled** property determines if particles emit from the emitter. Setting this to `false` stops further particles from spawning, but any existing particles remain active until they expire. This property is useful when you have a pre-made particle effect that you want to remain disabled until you need it to emit particles. If you want to clear all particles from a disabled emitter, call `Class.ParticleEmitter:Clear()|Clear()`. Then, if desired, call `Class.ParticleEmitter:Emit()|Emit()` on the emitter to emit and render particles. code_samples: [] type: boolean tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Emission serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.FlipbookFramerate summary: | Determines how fast the flipbook texture animates in frames per second. description: | The **FlipbookFramerate** property determines how fast the flipbook texture animates in frames per second. Like `Class.ParticleEmitter.Lifetime|Lifetime`, you can set a minimum and maximum range to randomize the framerate of the flipbook, with a maximum of 30 frames per second. code_samples: [] type: NumberRange tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Flipbook serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.FlipbookIncompatible summary: | The error message to display if the `Class.ParticleEmitter.Texture|Texture` is incompatible for a flipbook. description: | The error message to display if the `Class.ParticleEmitter.Texture|Texture` is incompatible for a flipbook. The flipbook texture size must be an exact multiple of the flipbook layout size. code_samples: [] type: string tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Flipbook serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.FlipbookLayout summary: | Determines the layout of the flipbook texture. Must be None, Grid2x2, Grid4x4, Grid8x8 or Custom. description: | The **FlipbookLayout** property determines the layout of the texture. It can be any value of the `Enum.ParticleFlipbookLayout` enum: - **None** – Disable flipbook features and use the texture as a single static texture over the particle's lifetime. - **Grid2x2** – 2×2 frames for a 4-frame animation. - **Grid4x4** – 4×4 frames for a 16-frame animation. - **Grid8x8** – 8×8 frames for a 64-frame animation. - **Custom** – A custom grid size defined by `Class.ParticleEmitter.FlipbookSizeX|FlipbookSizeX` and `Class.ParticleEmitter.FlipbookSizeY|FlipbookSizeY`. code_samples: [] type: ParticleFlipbookLayout tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Flipbook serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.FlipbookMode summary: | Determines the type of the flipbook animation. Must be Loop, OneShot, PingPong, or Random. description: | The **FlipbookMode** property determines the type of the flipbook animation. It can be any value of the `Enum.ParticleFlipbookMode` enum: - **Loop** – Continuously play through all frames, starting back at the first frame after playing the last. - **OneShot** – Play through the animation only once across the particle's lifetime. With this setting, the `Class.ParticleEmitter.FlipbookFramerate|FlipbookFramerate` property doesn't apply; instead, the framerate is determined by the particle's `Class.ParticleEmitter.Lifetime|Lifetime` divided evenly by the number of frames in the animation. **OneShot** animations are useful for clear non-repeating animations, such as an explosion that creates a puff of smoke and then fades out. - **PingPong** – Play from the first to the last frame, then in reverse from the last to the first, repeating throughout the `Class.ParticleEmitter.Lifetime|Lifetime` of the particle. - **Random** – Play the frames in a random order, blending/crossfading from one frame to the next. This can be useful for organic particle textures at low framerates, such as stars slowly twinkling between subtly different shapes. code_samples: [] type: ParticleFlipbookMode tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Flipbook serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.FlipbookSizeX summary: | Defines the number of horizontal frames in a custom flipbook layout. description: | The **FlipbookSizeX** property defines the number of horizontal frames (columns) in a custom flipbook layout. This property only applies when `Class.ParticleEmitter.FlipbookLayout|FlipbookLayout` is set to `Enum.ParticleFlipbookLayout.Custom|Custom`. code_samples: [] type: int tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Flipbook serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.FlipbookSizeY summary: | Defines the number of vertical frames in a custom flipbook layout. description: | The **FlipbookSizeY** property defines the number of vertical frames (rows) in a custom flipbook layout. This property only applies when `Class.ParticleEmitter.FlipbookLayout|FlipbookLayout` is set to `Enum.ParticleFlipbookLayout.Custom|Custom`. code_samples: [] type: int tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Flipbook serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.FlipbookStartRandom summary: | Determines whether the animation starts at a random frame chosen per particle instead of always starting at frame zero. description: | The **FlipbookStartRandom** property determines whether each particle begins at a random frame of the animation instead of always starting at the first frame. One use case is to enable this property and also set `Class.ParticleEmitter.FlipbookFramerate|FlipbookFramerate` to zero, causing each emitted particle to be a static frame chosen randomly from the flipbook texture. code_samples: [] type: boolean tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Flipbook serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.Lifetime summary: | Defines a random range of ages for newly emitted particles. description: | The **Lifetime** property defines the maximum and minimum ages for newly emitted particles. Lifetimes are stored on a per-particle basis, so if this value is changed, existing particles will stay active until their randomly chosen lifetime ends. A lifetime of 0 will prevent particles from emitting at all. code_samples: [] type: NumberRange tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Emission serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.LightEmission summary: | Determines how much particles' colors are blended with the colors behind them. description: | The **LightEmission** property determines the blending of the `Class.ParticleEmitter.Texture|Texture` colors with the colors behind them. A value of 0 uses normal blending mode while a value of 1 uses additive blending. When changed, this property instantly affects all particles owned by the emitter, both current and future. This property should not be confused with `Class.ParticleEmitter.LightInfluence|LightInfluence` which determines how particles are affected by environmental light. This property does **not** cause particles to light the environment around them. To accomplish that, consider using a `Class.PointLight`. code_samples: [] type: float tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Appearance serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.LightInfluence summary: | Determines how much particles are influenced by the environmental light. description: | The **LightInfluence** property determines how much environmental light affects the color of individual particles when they render. It must be in the range of 0–1; behavior of values outside of this range are not defined. At 0, particles are not influenced by light at all (they retain full brightness); at 1, particles are fully influenced by light (in complete darkness, particles will be black). By default, this value is 1 if inserted with Studio tools. If inserted using `Datatype.Instance.new()`, it is 0. code_samples: [] type: float tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Appearance serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.LocalTransparencyModifier summary: '' description: '' code_samples: [] type: float tags: - Hidden - NotReplicated deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Appearance serialization: can_load: false can_save: false capabilities: - Basic - name: ParticleEmitter.LockedToPart summary: | Determines whether the particles rigidly move with the part they're being emitted from. description: | The **LockedToPart** property determines if particles "stick" to the emission source (the `Class.Attachment` or `Class.BasePart` to which the `Class.ParticleEmitter` is parented). If `true`, active particles will move in lock step if the parent object moves. Alternatively, consider using the `Class.ParticleEmitter.VelocityInheritance|VelocityInheritance` property with a value of 1 which may be more appropriate for some effects. code_samples: [] type: boolean tags: [] deprecation_message: '' security: read: None write: None thread_safety: ReadSafe category: Particles serialization: can_load: true can_save: true capabilities: - Basic - name: ParticleEmitter.Orientation summary: | Specifies how to orient particles. description: | The **Orientation** property determines which orientation mode to use for an emitter's particle geometry.
| Orientation | Particle Behavior |
| FacingCamera | Standard camera-facing billboard quad; default behavior. |
| FacingCameraWorldUp | Facing the camera, but rotating only on the vertical upward world Y axis. |
| VelocityParallel | Aligned parallel to their direction of movement. |
| VelocityPerpendicular | Aligned perpendicular to their direction movement. |