When I tried to build a script, i included more loops. And not every loops played, only the first loop played. Here’s the script I’m into:
local m = Instance.new("Message",Workspace) m.Text = "REACTOR SABOTAGE -" wait(0.2) m.Text = "REACTOR SABOTAGE -M" wait(0.2) m.Text = "REACTOR SABOTAGE -ME" wait(0.2) m.Text = "REACTOR SABOTAGE -MEL" wait(0.2) m.Text = "REACTOR SABOTAGE -MELT" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTD" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDO" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDOW" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDOWN" wait(0.7) m:Remove() wait() local sound = Instance.new("Sound") sound.Name = "Sound" sound.SoundId = "http://www.roblox.com/asset/?id=332186658" sound.Volume = 3 sound.Pitch = 1 sound.Looped = true sound.archivable = false sound.Parent = game.Workspace wait() sound:play() game.Lighting.FogEnd = 600 wait() while true do game.Lighting.FogColor = Color3.fromRGB(900,0,0) wait(1.1) game.Lighting.FogColor = Color3.fromRGB(255,255,255) wait(1.1) end local m = Instance.new("Hint", game.Workspace) wait() local unit = 190 wait() for i = 1, 190 do unit = unit - 1 m.Text = "Meltdown in" ..unit.. " Seconds" wait(1) end while true do game.Workspace.Baseplate:remove() game.Workspace.Gravity = 0 game.Workspace.Terrain:ClearAllChildren() game.Workspace:ClearAllChildren() end while true do wait(0.1) Hi = game.Players:GetChildren() for i = 1,#Hi do Hi[i]:kick("DEFEAT! THE IMPOSTOR WAS: Naderssrr") end end
This is the script. Please help me.
Simple! This is simply due to how lua functions, when your code hits a loop itll stay on that loop till the loop exits or breaks. So in order to run multiple loops at once you gotta do something fancy, I suggest using the Spawn() function to create another thread!. Heres the edited code!:
local m = Instance.new("Message",Workspace) m.Text = "REACTOR SABOTAGE -" wait(0.2) m.Text = "REACTOR SABOTAGE -M" wait(0.2) m.Text = "REACTOR SABOTAGE -ME" wait(0.2) m.Text = "REACTOR SABOTAGE -MEL" wait(0.2) m.Text = "REACTOR SABOTAGE -MELT" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTD" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDO" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDOW" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDOWN" wait(0.7) m:Remove() wait() local sound = Instance.new("Sound") sound.Name = "Sound" sound.SoundId = "http://www.roblox.com/asset/?id=332186658" sound.Volume = 3 sound.Pitch = 1 sound.Looped = true sound.archivable = false sound.Parent = game.Workspace wait() sound:play() game.Lighting.FogEnd = 600 wait() while true do game.Lighting.FogColor = Color3.fromRGB(900,0,0) wait(1.1) game.Lighting.FogColor = Color3.fromRGB(255,255,255) wait(1.1) end local m = Instance.new("Hint", game.Workspace) wait() local unit = 190 wait() for i = 1, 190 do unit = unit - 1 m.Text = "Meltdown in" ..unit.. " Seconds" wait(1) end spawn(function() --Spawning separate thread to do this loop. while true do game.Workspace.Baseplate:remove() game.Workspace.Gravity = 0 game.Workspace.Terrain:ClearAllChildren() game.Workspace:ClearAllChildren() end end) while true do wait(0.1) Hi = game.Players:GetChildren() for i = 1,#Hi do Hi[i]:kick("DEFEAT! THE IMPOSTOR WAS: Naderssrr") end end
Use coroutines, so the loop won't yield the script:
local m = Instance.new("Message",Workspace) m.Text = "REACTOR SABOTAGE -" wait(0.2) m.Text = "REACTOR SABOTAGE -M" wait(0.2) m.Text = "REACTOR SABOTAGE -ME" wait(0.2) m.Text = "REACTOR SABOTAGE -MEL" wait(0.2) m.Text = "REACTOR SABOTAGE -MELT" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTD" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDO" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDOW" wait(0.2) m.Text = "REACTOR SABOTAGE -MELTDOWN" wait(0.7) m:Remove() wait() local sound = Instance.new("Sound") sound.Name = "Sound" sound.SoundId = "http://www.roblox.com/asset/?id=332186658" sound.Volume = 3 sound.Pitch = 1 sound.Looped = true sound.archivable = false sound.Parent = game.Workspace wait() sound:play() game.Lighting.FogEnd = 600 wait() coroutine.wrap(function() while true do game.Lighting.FogColor = Color3.fromRGB(900,0,0) wait(1.1) game.Lighting.FogColor = Color3.fromRGB(255,255,255) wait(1.1) end end)() -- do not delete those two brackets as they will make the coroutine run local m = Instance.new("Hint", game.Workspace) wait() local unit = 190 wait() for i = 1, 190 do unit = unit - 1 m.Text = "Meltdown in" ..unit.. " Seconds" wait(1) end coroutine.wrap(function() while true do game.Workspace.Baseplate:Destroy() -- remove() is deprecated game.Workspace.Gravity = 0 game.Workspace.Terrain:ClearAllChildren() game.Workspace:ClearAllChildren() wait() -- without teh wait the loop will crash the game end end)() while true do wait(0.1) Hi = game.Players:GetChildren() for i = 1,#Hi do Hi[i]:kick("DEFEAT! THE IMPOSTOR WAS: Naderssrr") end end
I haven't tested it, but by logic it should work