Mesh Flipbooks
Used by: Part and Beam.
Doesn’t apply to: ImageLabel uses a different flipbook system (Decals or Spritesheet sources, with
PingPongmode). Native RobloxParticleEmitterhas its own flipbook with aRandommode and aBlendFramestoggle. Screen-space types (Blur, Bloom, ColorCorrection, Atmosphere) have no textures, so no flipbooks. Each is covered in its own chapter.
A flipbook is a child folder of numbered Decal instances. The plugin cycles through them during each particle’s lifetime, swapping one decal for the next. Each frame is one image; played in sequence at speed, you get an animation.
This is how you turn a static mesh particle into something that breathes — a flame whose texture pulses through eight phases, a smoke puff whose shape morphs as it rises, a magic sigil whose runes shift over its life.
Setting up the folder
Section titled “Setting up the folder”When you transform a Part or a Beam, the plugin creates an empty MeshFlipbooks (or BeamFlipbooks) folder as a child. To populate it:
- Open the folder in Studio’s Explorer.
- Add
Decalinstances as children, named1,2,3, and so on. Each Decal points at a different texture. - The plugin reads them in numeric order. Frame
1plays first, then2, and so on.
You don’t have to do anything else to “enable” flipbooks. The presence of numbered Decals in the folder is the trigger. An empty folder means no flipbook animation — the particle uses its base texture.
The frames don’t have to be from a sprite sheet. They can be entirely separate uploaded images. They can be arbitrary in number — three frames or thirty. The plugin handles any count.
Properties at a glance
Section titled “Properties at a glance”| Panel label | Data attribute | Type | Default | What it does |
|---|---|---|---|---|
| Mode | FlipbookMode | enum | OneShot | How the frame sequence plays — once (OneShot) or looping (Loop) |
| Framerate | FlipbookFramerate | NumberRange | 30, 30 | Frames per second of playback |
| StartRandom | FlipbookStartRandom | boolean | false | Each particle starts at a random frame instead of frame 1 |
| Reverse | FlipbookReverse | boolean | false | Plays the sequence backwards |
UI label: Mode. Data attribute: FlipbookMode.
How the frame sequence plays out over the particle’s lifetime. Two modes for transformed Part and Beam emitters: OneShot and Loop.
OneShot (the default)
Section titled “OneShot (the default)”The sequence plays through once, frame 1 to last frame, evenly distributed across the particle’s lifetime. When the last frame is reached, it stays on that frame until the particle dies.
The animation is choreographed to lifetime — every particle, regardless of how long it lives, ends on the last frame at the moment of death. This is the right pick when each frame represents a stage of a single life cycle.
Use cases:
- Flames. Frame 1 = ignite (small spark), frames 2–3 = growth, frames 4–5 = peak burn, frames 6–7 = fade. Every particle goes through all stages, regardless of its individual
Lifetime. - Smoke puffs. Frame 1 = compact puff, frames 2–4 = expansion, frames 5–6 = thinning, frame 7 = wispy fade. Each particle’s frames match its physical timeline.
- Explosion debris. Frame 1 = sharp ember, frames 2–4 = cooling glow, frame 5 = dim coal. The frame progression is the cooling story.
- Magic spell sparks. Frame 1 = bright flash, frames 2–4 = trailing glow, frame 5 = dim afterimage. The visual progression is the spell’s energy curve.
- Anything where “how the particle looks” should track “how old it is.”
The sequence plays through, then restarts from frame 1, repeatedly. The number of full loops depends on FlipbookFramerate and the particle’s Lifetime.
The animation is rate-driven, lifetime-independent — a 12-fps loop on a 6-frame flipbook cycles twice per second whether the particle lives 0.5s or 10s. This is the right pick when each frame is interchangeable with the others — the texture is “alive” on a constant timer, not progressing through stages.
Use cases:
- Swirling magical glyphs. A 4-frame rotation that cycles continuously — every particle shows a perpetual glyph regardless of its lifetime.
- Pulsing energy auras. A 4-frame breathing pattern (small → large → small → smaller) that cycles 1–2 times per second.
- Animated runes / sigils. Repeating glow patterns on stationary or slow-moving particles.
- Background-cycling textures. Patterns of dots, lines, or shapes that scroll or shift continuously — long-lived particles cycle through more iterations than short-lived ones.
- Lightning crackle. A 4-frame jagged-line set that cycles fast (~16 fps) — every visible frame shows different lightning silhouettes, reading as continuous crackle.
Picking between the two
Section titled “Picking between the two”- Should the frames tell a single life-story? →
OneShot. The flame igniting, the spark cooling, the smoke fading. - Should the frames cycle forever and look “alive” regardless of life? →
Loop. Glyphs spinning, auras breathing, lightning crackling.
To turn flipbook animation off, leave the MeshFlipbooks / BeamFlipbooks folder empty — without frames, there’s nothing to swap to regardless of mode. The mode value only matters when the folder has Decal children.
Looking for
PingPongorRandom? Those modes exist on other types but not on transformed Part / Beam mesh flipbooks.PingPongis on ImageLabel (covered on its chapter).Randomis on native RobloxParticleEmitter(covered in the Native Editing chapter). The mesh-flipbook system here keeps to the two modes above.
Framerate
Section titled “Framerate”UI label: Framerate. Data attribute: FlipbookFramerate.
How fast the frames advance, in frames per second. A NumberRange (default 30, 30 — 30 fps, a practical authoring default), so each particle gets a randomly-chosen rate within the range. Lower it to 8 or 12 for slower flipbooks; raise it past 30 only if your frame count and lifetime support it.
A Framerate of 12 advances 12 frames per second, regardless of how many frames you have or how long the particle lives. A 6-frame flipbook at 12 fps plays through twice in a one-second lifetime (since 12 frames ÷ 6 frames per cycle = 2 cycles).
A range like 8,16 gives particles different playback speeds — some animate fast, others slow. Useful when you want a population of particles to feel less mechanically synchronized.
The interaction with the playback mode matters. In OneShot, framerate determines how quickly the animation completes (and whether it finishes before the particle dies). In Loop, it determines how many cycles fit into a lifetime.
A common gotcha: if Framerate × Lifetime is less than the number of frames in OneShot mode, the animation never reaches the last frame. The particle dies mid-sequence. This is sometimes intentional (you want it to die on frame 5 of 10), but more often it’s a misconfiguration.
StartRandom
Section titled “StartRandom”UI label: StartRandom. Data attribute: FlipbookStartRandom.
A boolean. If true, each particle starts its flipbook on a randomly-chosen frame instead of always starting on frame 1.
This is the easy way to break the “all particles synchronized” look. Imagine a smoke effect with a 6-frame flipbook. With StartRandom off, every smoke puff starts at frame 1 and progresses identically — the field of smoke pulses in lockstep. With StartRandom on, each puff starts at a different frame and progresses at its own offset, breaking the synchronization.
For loop-mode flipbooks, this is almost always what you want. The default is false, but consider flipping it on for any loop-mode flipbook.
For one-shot flipbooks, the answer depends on what you want — random start defeats the “ignite-peak-burn out” lifecycle that one-shot is for.
Reverse
Section titled “Reverse”UI label: Reverse. Data attribute: FlipbookReverse.
A boolean. If true, the frame sequence plays backwards — last frame first, frame 1 last.
Useful when you’ve authored a forward-fade animation but want a particle that emerges into existence rather than fading out. A texture that goes from solid to dispersed, played in reverse, becomes one that goes from dispersed to solid.
The default is false.
What’s next
Section titled “What’s next”You’ve now read all four shared chapters: Spawning, Motion, Advanced, and Mesh Flipbooks (this one). The properties covered here are the foundation that the per-type chapters build on.
Now, the per-type chapters. Each one starts with a “Properties at a glance” table linking back to these shared chapters where appropriate. The first type — and the most familiar — is Part.