This script is supposed to increase the time by one minute every second, so 1 hour in the game is 1 minute in real life. Here is the script:
--[[Details: Parent of script is Lighting It does not say there is an error in output The TimeOfDay property will not change The default value of the property is "14:00:00"]] local Lighting = script.Parent local hour = 14 local minute = 00 function addMinute() if minute == 59 then minute = 00 if hour == 23 then hour = 00 else hour = hour + 1 Lighting.TimeOfDay = tostring(hour) .. ":" .. tostring(minute) .. ":00" end Lighting.TimeOfDay = tostring(hour) .. ":" .. tostring(minute) .. ":00" else minute = minute + 1 Lighting.TimeOfDay = tostring(hour) .. ":" .. tostring(minute) .. ":00" end end while true do wait(1) addMinute() end
A much simpler way is just to add 1 every second using :SetMinutesAfterMidnight()
.
local lighting = game:GetService("Lighting") while wait(1) do local minutes = lighting:GetMinutesAfterMidnight() lighting:SetMinutesAfterMidnight(minutes + 1) print(string.sub(lighting.TimeOfDay, 1, 5)) -- If you want to use it in a textlabel end
tostring() is not needed, just put the variable in and it will work. Also, I'd suggest using :SetMinutesAfterMidnight() for a day/night cycle.
local Lighting = script.Parent local hour = 14 local minute = 00 function addMinute() if minute == 59 then minute = 00 if hour == 23 then hour = 00 else hour = hour + 1 Lighting.TimeOfDay = hour.. ":" ..minute.. ":00" end Lighting.TimeOfDay = hour.. ":" ..minute.. ":00" else minute = minute + 1 Lighting.TimeOfDay = hour.. ":" ..minute.. ":00" end end while true do wait(1) addMinute() end