I'm trying to make a script (and I'm fairly new to this) that when run, would make a black screen, wait a while, then take the screen away.
Here it is:
local function darknessCycle() local darknessClone = game.ServerStorage.Darkness:Clone() darknessClone.Name = ("darknessClone") darknessClone.Parent = game.StarterGui local darknessTimer = 0 math.randomseed(tick()) wait(0.5) local darknessTime = math.random(2,10) for _ = 1, darknessTime, 1 do darknessTimer = darknessTimer + 1 wait(1) print(darknessTime) print(darknessTimer) end print ("darknessTimer finished") darknessClone:Destroy() -- ?????? end
The thing is, when the script is run, and the darknessClone is destroyed, the black screen still stays. Is there something I'm missing that I need to get rid of it?
It's because you're cloning the Gui to the StarterGui
, which is cloned to the PlayerGui
when a player joins. If you want the black screen destroyed, :Destroy()
the Gui from thePlayerGui
.
Example:
for _, v in pairs(game.Players:GetPlayers()) do v.PlayerGui.darknessClone:Destroy() end
Note: You may want to check if the GUI is there before removing it, just a precaution, so it won't error.
Replace line 16 with this.
for _, v in pairs(game.Players:GetPlayers()) do if v.PlayerGui.darknessClone ~= nil then v.PlayerGui.darknessClone:Destroy() else print('123') end end