tick() returns the amount of time has passed since the unix epoch.
I’m assuming what’s happening is that you are giving some amount of time in seconds that you want the timer to run for (for example 120 for 2 minutes), and that’s what the timer is using for it’s math.
So you are doing 120 - 1.6 Billion something seconds.
You should add os.time() or tick() to the time before you start the heartbeat.
local Timer = game:GetService("RunService").Heartbeat
-- Time += tick()
Timer:Connect(function()
...
end)
The other reply should be the solution to this, but I also wanted to mention that tick() is technically deprecated now, so you should use either os.clock() or os.time() in its place
It’s got a really nice method fromUnixTimestamp which takes in a value returned by tick() or os.time() and gives you a DateTime object that can be formatted in a lot of ways.