< Back 

Spray

2026-09-28

Roblox ParticleEmitters drawn on the GUI with ImageLabels. Every particle is computed in closed form from a clock, so an effect can be paused, jumped and rewound, and the same seed always gives the same result.

LuauRobloxUIVFX
Go to technical view

High Performance 2D ParticleEmitters in Roblox

Spray Demo

Spray is a library that implements GUI-based ParticleEmitters in a simple way with little code.

At the time of writing, this library addresses a specific issue within the Roblox ecosystem: native particle emitters are only visible in 3D space, not in 2D/GUI. Yet, the ability to render particles in 2D has long been essential for creating dynamic/engaging interfaces, or effects that need to remain on screen at all times or appear above other GUI elements.

Spray implements deterministic particles, this means that given a specific Randomseed, the particles’ movement, size, rotation, and other properties remain consistent. Spray allows this seed to be randomized with each emission, effectively replicating the standard lifecycle of a particle emitter.

Spray also offers time control. Emitted particles can be paused, rewound, or played in reverse, features not even supported by Roblox’s native 3D emitters. This capability enables the creation of stunning and more original GUI effects.

Rewind

A plugin is also available to import the latest version of the library, alongside a real time Emitter editor and a preview mode that shows how emitters would appear during normal gameplay.

Plugin preview


Licensed under the Mozilla Public License v2.0.