I’ve made a new impactful module to make your UI designs come to life - introducing UIEmitter!
With UIEmitter you could:
Create celebratory confetti explosions for victories and milestones or even purchases.
Shower players with stars or sparkles when they level up or achieve a goal.
Mimic fire, smoke, rain, or magical auras within UI components.
Add gentle animations or moving patterns behind menus and screens.
Use shimmering effects or subtle trails to highlight important information.
Create subtle particle bursts on button clicks or hovers.
Heres some previews of some confetti I made from the module.
How to use
Setup:
local UIEmitter = require(game.ReplicatedStorage:FindFirstChild("UIEmitter")) -- get & require the module
local Emitter = UIEmitter.New() -- create a new screen gui dedicated to these emits
Those effects are for buttons, not for particles. Although I don’t know what you’re trying to show me since there’s multiple effects in that message.
Can you be more specific?
Thanks.
I’m getting an error when I try to distribute the module on marketplace. So I’m not sure if you can even get it. This is why I created the GitHub Repository.
If you want anything else to be added please tell me. I can’t read your mind.
Random Number Ranges
You can pass a {Min, Max} table to get a random number between the two, each time the particle is emitted.
Size = {8, 24}, -- Emits with a random size between 8 and 24
LifeTime = {1, 3}, -- Particle lives between 1 and 3 seconds
Random Vector2 Ranges
For properties such as Velocity, Direction, or Gravity, you can use a nested table to define randomized ranges. Format it as { {MinX, MaxX}, {MinY, MaxY} }.
If either the X or Y entry isn’t a table, it will be treated as a fixed value.
Velocity = { {5, 20}, 40 }, -- X will be randomized between 5 and 20; Y stays fixed at 40
Direction = { {-1, 1}, {-1, 1} }, -- X and Y are both random between -1 and 1
NumberSequence Support
You can pass a NumberSequence, optionally using the .Envelope property for randomization:
oh i thought you meant like an editable example where you edit configs and everything
i dont see the need for this since the “test” preset is an example all you do is emit it with its configs
local er = require(game.ReplicatedStorage["UIEmitter Version 2-ab"])
local ss = workspace.CurrentCamera.ViewportSize
local cs = ss/2
local testtimetick = os.time();
while task.wait(1) do
er:GetPreset("test"):Emit({Amount = 50, pos = UDim2.fromOffset(cs.X, cs.Y), Parent = script.Parent});
if os.time()-testtimetick >= 10 then
break;
end;
end;
when I run the above ( beside changing the first line to …
local er = require(game.ReplicatedStorage["UIEmitter"])
I get the error
03:05:23.453 Players.Lord_BradyRocks.PlayerGui.LocalScript:12: attempt to call missing method 'GetPreset' of table - Client - LocalScript:12
03:05:23.453 Stack Begin - Studio
03:05:23.453 Script 'Players.Lord_BradyRocks.PlayerGui.LocalScript', Line 12 - Studio - LocalScript:12
03:05:23.453 Stack End - Studio