Roblox Particle Effects in Studio: ParticleEmitter Properties, Shapes, Flipbooks, and Performance Limits (October 2026)
Posted: Sat Oct 24, 2026 8:39 am
Quick Summary
A ParticleEmitter has to be parented to something. Drop it under a BasePart and particles spawn randomly inside that part's bounding box or shape. Drop it under an Attachment and they spawn from the attachment's position instead. Parent it to nothing and it renders nothing.
EmissionDirection picks the face of the part the particles leave from, using the NormalId enum values. When the emitter sits under a BasePart, rotating the part rotates the emission direction with it. Under an Attachment you rotate the attachment itself, which is usually easier to animate.
Inserting one takes two clicks. Hover over the part or attachment in the Explorer window, press the plus button, and choose ParticleEmitter. It starts emitting immediately with the default white sparkle texture.
The properties that do the work
Transparency is the property people skip and regret. A particle that appears at full opacity and vanishes at full opacity pops. Fading it near the start and end of its lifetime is what makes fire, smoke, and dust read as a continuous effect.
Shapes, styles, and partial volumes
Shape sets the emitter to Box, Sphere, Cylinder, or Disc. Two of those have a catch: Sphere and Cylinder do not display correctly when the emitter is parented to an Attachment, so keep them on a BasePart.
ShapeStyle then decides whether particles fill the shape or sit on it. Volume emits anywhere inside the shape. Surface emits only from the outside.
ShapeInOut adds a direction on top of that. Inward pulls particles toward the shape, Outward pushes them away, and InAndOut randomises between the two.
ShapePartial is a multiplier for Cylinder, Disc, and Sphere. On a cylinder it multiplies the radius on the side of the emission direction, so a value of 0.5 gives you a half-width plume instead of a full one.
Flipbook textures
A flipbook is a single image holding a grid of frames, and the emitter plays them in order over the particle's lifetime. FlipbookLayout picks the grid: Grid2x2 for 4 frames, Grid4x4 for 16, Grid8x8 for 64, or Custom with FlipbookSizeX and FlipbookSizeY.
FlipbookFramerate sets how fast the frames play, in frames per second, and it accepts a min/max range. The ceiling is 30 frames per second.
Leave transparent spacing between the frames. Mip filtering can bleed neighbouring frames together, and extra spacing is cheaper than a smeared explosion.
Flipbooks cost memory. When a client runs low, it switches them off automatically, which is most likely to show up on older phones. Reusing one texture across several emitters costs less than giving each its own.
Simulating rain
Rain is the classic particle problem because you cannot afford one particle per drop. The documented approach builds the illusion from a few stretched streaks:
One emitter cannot cover a large area. Arrange a grid of emitter parts over the region you want to cover.
Performance limits
Rate is the number to watch. A single emitter is capped at 400 particles per second, and 100 per second on mobile. Overdraw is the other cost: every layer of transparent effect on screen adds to the GPU load, so overlapping particles are expensive even when each one is cheap.
If particles flicker in the distance, cut how many are on screen at once. Place the emitter parts lower in the air and shorten Lifetime to match. Lower Rate to turn a downpour into a lighter shower. Cover a smaller area with fewer emitter parts.
Check your work at both ends of the quality range. Open Studio Settings, search for Editor Quality Level, and set it to the lowest and highest values after you finish customising. Particle quality changes with the graphics settings on the player's device, and a mobile player sees something different from a desktop player.
Other objects in the same family
Particles are one of four effect objects in Studio. Beams render a texture between two Attachments and can curve using a cubic Bezier shape. Trails draw a ribbon behind two moving Attachments, which is the standard way to show a sword swing or a projectile path. Highlight draws a silhouette outline and a solid overlay on a single object, and Studio only displays 255 of them at a time on the client.
FAQ
Why is my ParticleEmitter not showing up?
It is not parented to a BasePart or an Attachment, or it is parented to an Attachment while using the Sphere or Cylinder shape, which do not render correctly there. Check that Enabled is true and Rate is not zero, since particles only emit automatically when both conditions hold.
How many particles can one emitter create?
Up to 400 particles per second on desktop and 100 per second on mobile. Lifetime is capped at 20 seconds, and values above that are internally capped, so the practical ceiling for a single emitter is Rate multiplied by Lifetime.
How do I make particles fade instead of popping?
Set Transparency to a NumberSequence that starts and ends at 1 and passes through a lower value in the middle. The documentation calls Transparency one of the most vital emitter properties for exactly this reason.
Can I animate a particle texture?
Yes. Use a flipbook texture with a 2x2, 4x4, 8x8, or custom grid layout, then set FlipbookFramerate. The maximum framerate is 30 frames per second.
How do I emit particles on demand instead of continuously?
Set Rate to 0 and call Emit with a particle count, for example emitter:Emit(50). Clear() removes the particles already on screen.
Do particles follow global wind?
Only if WindAffectsDrag is enabled and Drag is greater than 0. Enabling WindAffectsDrag alone does nothing without drag.
Sources
- A ParticleEmitter is an object that emits customizable 2D images into the world, and it only renders when parented to a BasePart or an Attachment.
- The emitter is driven by four numbers: Rate (particles per second), Lifetime (seconds, capped at 20), Speed (studs per second), and Size.
- Texture, Color, Transparency, LightEmission, and Squash control how each particle looks and whether it pops in and out of existence.
- Shape and ShapeStyle decide where particles spawn: Box, Sphere, Cylinder, or Disc, either through the whole volume or only from the surface.
- One emitter is capped at 400 particles per second, or 100 on mobile, so heavy effects need many emitter parts and a low Rate.
A ParticleEmitter has to be parented to something. Drop it under a BasePart and particles spawn randomly inside that part's bounding box or shape. Drop it under an Attachment and they spawn from the attachment's position instead. Parent it to nothing and it renders nothing.
EmissionDirection picks the face of the part the particles leave from, using the NormalId enum values. When the emitter sits under a BasePart, rotating the part rotates the emission direction with it. Under an Attachment you rotate the attachment itself, which is usually easier to animate.
Inserting one takes two clicks. Hover over the part or attachment in the Explorer window, press the plus button, and choose ParticleEmitter. It starts emitting immediately with the default white sparkle texture.
The properties that do the work
| Property | What it does | Notes |
| Rate | Particles emitted per second | Up to 400 per second, 100 on mobile |
| Lifetime | How long each particle lives, in seconds | Accepts a single value or a Min/Max range; values above 20 are capped at 20 |
| Speed | Velocity range in studs per second | Chosen at emission; negative values reverse direction |
| Texture | The image each particle displays | Defaults to a white sparkle; use a transparent PNG |
| Color | Tint or gradient across the particle's life | Takes a Color3 or a ColorSequence |
| Transparency | Opacity, 0 is opaque and 1 is clear | Use a NumberSequence to fade in and out |
| Size | Particle size, constant or over a lifetime | Larger particles cost more fill rate |
| LightEmission | Blending mode against what sits behind the particle | 0 is normal blending, 1 is additive |
| Squash | Non-uniform scaling over the lifetime | Positive stretches vertically, negative stretches horizontally |
| SpreadAngle | Cone of emission on the X and Y axes | A value of (45, 0) emits 0 to 45 degrees off the emission direction on X |
| ZOffset | Render position forward or backward, in studs | Lets you layer emitters without changing their screen size |
Shapes, styles, and partial volumes
Shape sets the emitter to Box, Sphere, Cylinder, or Disc. Two of those have a catch: Sphere and Cylinder do not display correctly when the emitter is parented to an Attachment, so keep them on a BasePart.
ShapeStyle then decides whether particles fill the shape or sit on it. Volume emits anywhere inside the shape. Surface emits only from the outside.
ShapeInOut adds a direction on top of that. Inward pulls particles toward the shape, Outward pushes them away, and InAndOut randomises between the two.
ShapePartial is a multiplier for Cylinder, Disc, and Sphere. On a cylinder it multiplies the radius on the side of the emission direction, so a value of 0.5 gives you a half-width plume instead of a full one.
Flipbook textures
A flipbook is a single image holding a grid of frames, and the emitter plays them in order over the particle's lifetime. FlipbookLayout picks the grid: Grid2x2 for 4 frames, Grid4x4 for 16, Grid8x8 for 64, or Custom with FlipbookSizeX and FlipbookSizeY.
FlipbookFramerate sets how fast the frames play, in frames per second, and it accepts a min/max range. The ceiling is 30 frames per second.
Leave transparent spacing between the frames. Mip filtering can bleed neighbouring frames together, and extra spacing is cheaper than a smeared explosion.
Flipbooks cost memory. When a client runs low, it switches them off automatically, which is most likely to show up on older phones. Reusing one texture across several emitters costs less than giving each its own.
Simulating rain
Rain is the classic particle problem because you cannot afford one particle per drop. The documented approach builds the illusion from a few stretched streaks:
- Insert a Part above the area you want rain over, anchor it, set Transparency to 1, and disable CanCollide.
- Insert a ParticleEmitter into that part and set EmissionDirection to Bottom.
- Set Squash to a positive value such as 3 to stretch each particle into a streak. Higher values make streaks thinner, so raise Size to compensate.
- Darken Color, raise LightInfluence so the rain reacts to the scene lighting, raise Speed, and lower Lifetime so particles die near the ground.
- To angle the rain, add a small Rotation or enable WindAffectsDrag so the particles follow global wind. Drag also slows the fall, so increase downward Acceleration to keep the rain moving.
One emitter cannot cover a large area. Arrange a grid of emitter parts over the region you want to cover.
Performance limits
Rate is the number to watch. A single emitter is capped at 400 particles per second, and 100 per second on mobile. Overdraw is the other cost: every layer of transparent effect on screen adds to the GPU load, so overlapping particles are expensive even when each one is cheap.
If particles flicker in the distance, cut how many are on screen at once. Place the emitter parts lower in the air and shorten Lifetime to match. Lower Rate to turn a downpour into a lighter shower. Cover a smaller area with fewer emitter parts.
Check your work at both ends of the quality range. Open Studio Settings, search for Editor Quality Level, and set it to the lowest and highest values after you finish customising. Particle quality changes with the graphics settings on the player's device, and a mobile player sees something different from a desktop player.
Other objects in the same family
Particles are one of four effect objects in Studio. Beams render a texture between two Attachments and can curve using a cubic Bezier shape. Trails draw a ribbon behind two moving Attachments, which is the standard way to show a sword swing or a projectile path. Highlight draws a silhouette outline and a solid overlay on a single object, and Studio only displays 255 of them at a time on the client.
FAQ
Why is my ParticleEmitter not showing up?
It is not parented to a BasePart or an Attachment, or it is parented to an Attachment while using the Sphere or Cylinder shape, which do not render correctly there. Check that Enabled is true and Rate is not zero, since particles only emit automatically when both conditions hold.
How many particles can one emitter create?
Up to 400 particles per second on desktop and 100 per second on mobile. Lifetime is capped at 20 seconds, and values above that are internally capped, so the practical ceiling for a single emitter is Rate multiplied by Lifetime.
How do I make particles fade instead of popping?
Set Transparency to a NumberSequence that starts and ends at 1 and passes through a lower value in the middle. The documentation calls Transparency one of the most vital emitter properties for exactly this reason.
Can I animate a particle texture?
Yes. Use a flipbook texture with a 2x2, 4x4, 8x8, or custom grid layout, then set FlipbookFramerate. The maximum framerate is 30 frames per second.
How do I emit particles on demand instead of continuously?
Set Rate to 0 and call Emit with a particle count, for example emitter:Emit(50). Clear() removes the particles already on screen.
Do particles follow global wind?
Only if WindAffectsDrag is enabled and Drag is greater than 0. Enabling WindAffectsDrag alone does nothing without drag.
Sources
- Roblox Creator Hub: Particle emitters
- Roblox Creator Hub: ParticleEmitter API reference
- Roblox Creator Hub: Beams
- Roblox Creator Hub: Trails
- Roblox Creator Hub: Highlighting objects
- Roblox: The Mystery of Duvall Drive (rain and weather example)
- Roblox resources: weather-island (scripted rain example)