local LobbySeconds = 15
local GameMinutes = 4
local GameSeconds = 0
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TimerValues = ReplicatedStorage:WaitForChild("TimerValues")
local gameTimer = TimerValues.GameTimer
local lobbyTimer = TimerValues.LobbyTimer
local TweenService = game:GetService("TweenService")
local FadeInfo = TweenInfo.new(1.3,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0)
function teleportPlayers(RP,SpawnPart)
if RP ~= nil then
if SpawnPart ~= nil then
RP.CFrame = SpawnPart.CFrame
end
end
end
while true do
lobbyTimer.Minutes.Value = LobbyMinutes
lobbyTimer.Seconds.Value = LobbySeconds
repeat wait(1)
if lobbyTimer.Seconds.Value > 0 then
lobbyTimer.Seconds.Value -= 1
else
if lobbyTimer.Minutes.Value > 0 then
lobbyTimer.Minutes.Value -= 1
lobbyTimer.Seconds.Value = 59
end
end
until lobbyTimer.Minutes.Value == 0 and lobbyTimer.Seconds.Value == 0
local mapHolder = game:GetService("ServerStorage").MapHolder
local Children = mapHolder:GetChildren()
local Index = math.random(1,#Children)
local randomInt = Children[Index]
local finalMap = mapHolder:FindFirstChild(randomInt.Name):Clone()
finalMap.Parent = workspace
for _, LocalPlayer in pairs(game:GetService("Players"):GetChildren()) do
if LocalPlayer.Character then
if LocalPlayer:FindFirstChild('PlayerGui') and LocalPlayer.Character:FindFirstChild('HumanoidRootPart') then
local GUI = Instance.new("ScreenGui")
GUI.Name = "Fade"
GUI.Parent = LocalPlayer.PlayerGui
GUI.ResetOnSpawn = false
GUI.IgnoreGuiInset = true
GUI.Enabled = true
local NewValue = Instance.new("BoolValue")
NewValue.Name = "Ingame"
NewValue.Parent = LocalPlayer.Character
NewValue.Value = false
local Frame = Instance.new("Frame")
Frame.Parent = GUI
Frame.BackgroundTransparency = 1
Frame.BackgroundColor3 = Color3.fromRGB(0,0,0)
Frame.Visible = true
Frame.Size = UDim2.new(1,0,1,0)
Frame.Position = UDim2.new(0,0,0,0)
local TweenIn = TweenService:Create(Frame,FadeInfo,{BackgroundTransparency = 0})
TweenIn:Play()
TweenIn.Completed:Connect(function()
teleportPlayers(LocalPlayer.Character.HumanoidRootPart,finalMap:FindFirstChild('SpawnPart'))
wait(2)
local TweenOut = TweenService:Create(Frame,FadeInfo,{BackgroundTransparency = 1})
TweenOut:Play()
TweenOut.Completed:Connect(function()
GUI:Destroy()
end)
end)
end
end
end
wait(1.6 + 2)
gameTimer.Minutes.Value = GameMinutes
gameTimer.Seconds.Value = GameSeconds
repeat wait(1)
if gameTimer.Seconds.Value > 0 then
gameTimer.Seconds.Value -= 1
else
if gameTimer.Minutes.Value > 0 then
gameTimer.Minutes.Value -= 1
gameTimer.Seconds.Value = 59
end
end
until gameTimer.Minutes.Value == 0 and gameTimer.Seconds.Value == 0
for _, LocalPlayer in pairs(game:GetService("Players"):GetChildren()) do
if LocalPlayer.Character then
if LocalPlayer:FindFirstChild('PlayerGui') and LocalPlayer.Character:FindFirstChild('Ingame') then
local GUI = Instance.new("ScreenGui")
GUI.Name = "Fade"
GUI.Parent = LocalPlayer.PlayerGui
GUI.ResetOnSpawn = false
GUI.IgnoreGuiInset = true
GUI.Enabled = true
local Frame = Instance.new("Frame")
Frame.Parent = GUI
Frame.BackgroundTransparency = 1
Frame.BackgroundColor3 = Color3.fromRGB(0,0,0)
Frame.Visible = true
Frame.Size = UDim2.new(1,0,1,0)
Frame.Position = UDim2.new(0,0,0,0)
local TweenIn = TweenService:Create(Frame,FadeInfo,{BackgroundTransparency = 0})
TweenIn:Play()
TweenIn.Completed:Connect(function()
LocalPlayer:LoadCharacter()
wait(2)
local TweenOut = TweenService:Create(Frame,FadeInfo,{BackgroundTransparency = 1})
TweenOut:Play()
TweenOut.Completed:Connect(function()
GUI:Destroy()
end)
end)
end
end
end
wait(1.6)
finalMap:Destroy()
wait(2)
end
local TimerValues = ReplicatedStorage:WaitForChild("TimerValues")
local gameTimer = TimerValues.GameTimer
local lobbyTimer = TimerValues.LobbyTimer
function updateGameTimer()
local MinutesString = "00"
local SecondsString = "00"
if gameTimer.Minutes.Value < 10 then
MinutesString = "0" .. gameTimer.Minutes.Value
else
MinutesString = gameTimer.Minutes.Value
end
if gameTimer.Seconds.Value < 10 then
SecondsString = "0" .. gameTimer.Seconds.Value
else
SecondsString = gameTimer.Seconds.Value
end
script.Parent.Text = MinutesString .. ":" .. SecondsString
end
function updateLobbyTimer()
local MinutesString = "00"
local SecondsString = "00"
if lobbyTimer.Minutes.Value < 10 then
MinutesString = "0" .. lobbyTimer.Minutes.Value
else
MinutesString = lobbyTimer.Minutes.Value
end
if lobbyTimer.Seconds.Value < 10 then
SecondsString = "0" .. lobbyTimer.Seconds.Value
else
SecondsString = lobbyTimer.Seconds.Value
end
script.Parent.Text = MinutesString .. ":" .. SecondsString
end
for _, v in pairs(gameTimer:GetChildren()) do
v:GetPropertyChangedSignal('Value'):Connect(function()
updateGameTimer()
end)
end
for _, v in pairs(lobbyTimer:GetChildren()) do
v:GetPropertyChangedSignal('Value'):Connect(function()
updateLobbyTimer()
end)
end
those were both of my scripts, if you would like additional information just ask