How can i make a "fade" animation for my gui without having to wait for every single frame in it? here's my current code:
---------------------------------main script
gui = script.Parent
local ok = require(gui.MAINMOD)
ok:FadeOut(gui.loader)
for _,c in pairs(gui.loader:GetDescendants())do
if c.Name~="LocalScript"then
ok:FadeOut(c)
end
end
ok:swait(3)
gui.loader:Destroy()
gui.main.Visible = true
ok:FadeIn(gui.main)
for _,c in pairs(gui.main:GetDescendants())do
ok:FadeIn(c)
end
-------------------- Module script
local module = {}
ArtificialHB = Instance.new("BindableEvent", script)
ArtificialHB.Name = "ArtificialHB"
script:WaitForChild("ArtificialHB")
Frame_Speed = 1 / 60
frame = Frame_Speed
tf = 0
allowframeloss = false
tossremainder = false
lastframe = tick()
script.ArtificialHB:Fire()
game:GetService("RunService").Heartbeat:connect(function(s, p)
tf = tf + s
if tf >= frame then
if allowframeloss then
script.ArtificialHB:Fire()
lastframe = tick()
else
for i = 1, math.floor(tf / frame) do
script.ArtificialHB:Fire()
end
lastframe = tick()
end
if tossremainder then
tf = 0
else
tf = tf - frame * math.floor(tf / frame)
end
end
end)
function module:swait(num)
if num == 0 or num == nil then
ArtificialHB.Event:wait()
else
for i = 1, num do
ArtificialHB.Event:wait()
end
end
end
function module:FadeOut(gui)
if gui:IsA("TextLabel") or gui:IsA("TextBox") or gui:IsA("TextButton") then
for i = 1,100 do
gui.TextTransparency = gui.TextTransparency + 0.01
module:swait()
end
end
for i = 1,100 do
gui.BackgroundTransparency = gui.BackgroundTransparency + 0.01
module:swait()
end
end
function module:FadeIn(gui)
if gui:IsA("TextLabel") or gui:IsA("TextBox") or gui:IsA("TextButton") then
for i = 1,100 do gui.TextTransparency = gui.TextTransparency - 0.01
module:swait()
end
end
for i = 1,100 do
gui.BackgroundTransparency = gui.BackgroundTransparency - 0.01
module:swait()
end
end
return module
This code will wait for every gui part instead of doing it all together. I would like it to do the fade animation all together but I don't know how.

1 comment
do a loop?