Cronômetro Avançado

Esse cronômetro necessita dos códigos Botão, Cronômetro e Teleporte. As partes que colocarei aqui servem apenas para substituir o que já existem nesses três códigos

Para a parte do Cronômetro:

Acesse o script em TextLabel e substitua para o seguinte código:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local bindableEvent = ReplicatedStorage:FindFirstChild("Timer1")

local text = script.Parent
local gui = text.Parent
local player = gui.Parent.Parent
local timer = gui:FindFirstChild("RodandoTimer")
local tempo = gui:FindFirstChild("tempoFinal")


bindableEvent.Event:Connect(function(playerName, status)
	
	if status == "Iniciar" then
		
		text.BackgroundColor =  BrickColor.new("White")
		local tempoInicial = DateTime.now()
		local minutos = tempoInicial:FormatLocalTime("mm", "en-us")
		local segundos = tempoInicial:FormatLocalTime("ss", "en-us")
		local milissegundos = tempoInicial:FormatLocalTime("SSS", "en-us")
		
		timer.Value = true
		
		while timer.Value == true do
			
			local tempoRodando = DateTime.now()
			local minutosR =  tempoRodando:FormatLocalTime("mm", "en-us") - minutos
			local segundosR =  tempoRodando:FormatLocalTime("ss", "en-us") - segundos
			local milissegundosR =  tempoRodando:FormatLocalTime("SSS", "en-us") - milissegundos

			if milissegundosR < 0 then
				milissegundosR = 1000 + milissegundosR
				segundosR = segundosR - 1
			end
			if segundosR < 0 then
				segundosR = 60 + segundosR
				minutosR = minutosR - 1
			end
			if minutosR < 0 then
				minutosR = 0
				segundosR = 0
				milissegundosR = 0
			end
			tempo.Value = minutosR .. ":" .. segundosR .. ":" .. milissegundosR
			text.Text = tempo.Value
			wait(0.001)

		end
		local pontos = player.leaderstats.Tempo
		pontos.Value = tempo.Value

		text.BackgroundColor =  BrickColor.new("Lime green")

	end
end)

Para a parte do Teleporte/Botão:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local bindableEvent = ReplicatedStorage:FindFirstChild("Timer1")

local saida = script.Parent.Parent.Parent.Parent:FindFirstChild("Saída")
local saidaPos = saida.CFrame + Vector3.new(0,5,0)

local clickdetector = script.Parent

clickdetector.MouseClick:Connect(function(hit)
	local players = game.Players:GetPlayers()
	for _, player in pairs(players) do
		local character = player.Character
		if character then
			local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
			if humanoidRootPart then
				humanoidRootPart.CFrame = saidaPos
			end
		end
	end
	bindableEvent:Fire("", "Iniciar")
end)

Para reiniciar o jogo...

...vamos adicionar à plataforma que criamos ao fim do Cronômetro o sistema de Teleporte, então adicione o bloco a uma pasta junto de outro bloco chamado Saída, e coloque a saída no local próximo do botão de início de jogo. Coloque esse código no bloco do cronômetro:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local bindableEvent = ReplicatedStorage:FindFirstChild("Timer1")
local saida = script.Parent.Parent:FindFirstChild("Saída")
local saidaPos = saida.CFrame + Vector3.new(0,5,0)

script.Parent.Touched:connect(function(hit)
	if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
		local player = game.Players:GetPlayerFromCharacter(hit.Parent)
		bindableEvent:Fire(player.Name, "PararTimer")
		local playerPos = hit.Parent:FindFirstChild("HumanoidRootPart")
		playerPos.CFrame = saidaPos
	end

end)