Hello developers!
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.
In some of the videos the conffeti gets deleted when it hits the ceiling (When its off screen), I’ve added this for performance. You can remove this in the module code if you want but it might get laggy the more particles you emit.
How to use UIEmitter.
local UIEmitter = require(game.ReplicatedStorage:FindFirstChild("UIEmitter")) -- get & require the module
local Emitter = UIEmitter.New() -- create a new screen gui dedicated to these emits
How to spawn/emit a particle.
Emitter:Emit({
Size = Vector2.new(10, 10),
Position = Vector2.new(0, 0),
Acceleration = Vector2.new(0, 0),
Gravity = Vector2.new(0, 0),
FrictionCoefficient = 1,
LifeTime = 4,
Properties = {},
FadeIn = {
Duration = 1,
EasingStyle = Enum.EasingStyle.Quart,
EasingDirection = Enum.EasingDirection.Out,
TweenProperties = {},
},
FadeOut = {
Duration = 1,
EasingStyle = Enum.EasingStyle.Quart,
EasingDirection = Enum.EasingDirection.In,
TweenProperties = {},
},
Texture = "",
});
Heres my code for some confetti.
This conffeti code emits in the center of the screen, are accelerating up, and theres random waits.
for Int = 0, 100, 1 do
Emitter:Emit({
Size = Vector2.new(10, 10),
Position = Camera.ViewportSize/2,
Acceleration = Vector2.new(math.random(-20, 20), -math.random(10, 70)),
Gravity = Vector2.new(0, 2),
FrictionCoefficient = 1.0005,
LifeTime = 4,
Properties = {
BackgroundColor3 = ({Color3.fromRGB(255, 20, 20), Color3.fromRGB(20, 255, 80), Color3.fromRGB(20, 20, 255), Color3.fromRGB(255, 20, 255)})[math.random(1, 4)],
},
FadeIn = {
Duration = 1,
EasingStyle = Enum.EasingStyle.Quart,
EasingDirection = Enum.EasingDirection.Out,
TweenProperties = {
Rotation = math.random(0, 360),
},
},
FadeOut = {
Duration = 1,
EasingStyle = Enum.EasingStyle.Quart,
EasingDirection = Enum.EasingDirection.In,
TweenProperties = {
BackgroundTransparency = 1,
},
},
Texture = "",
});
if math.random(1, 2) == math.random(1, 2) then
task.wait();
end;
end;
Would you use this?
- Definitely!
- Yes, when I get the chance to.
- I’m not sure.
- Probably not.
- No, sorry.
0 voters
What do you think about UIEmitter?
- Love it! Super easy to use and looks great.
- Seems promising, but I’d like to see more features.
- Fun to experiment with, not sure if it’s essential for my projects.
- I wish it integrated better with my existing UI workflow.
- Too complex for my needs.
- I’ve encountered some bugs/performance issues.
- Not worth the effort compared to other solutions.
0 voters
Thank you for reading and viewing my module!