local Lighting = game:GetService("Lighting")
--------------------------------------------------
-- SETTINGS
--------------------------------------------------
local MORNING_DURATION = 20 * 60
local EVENING_DURATION = 20 * 60
local NIGHT_DURATION = 20 * 60
local UPDATE_RATE = 0.1
--------------------------------------------------
-- TIME
--------------------------------------------------
local MORNING_START = 6
local EVENING_START = 18
local NIGHT_START = 0
--------------------------------------------------
-- CHANGE TIME
--------------------------------------------------
local function changeTime(startTime, endTime, duration)
local elapsed = 0
while elapsed < duration do
local alpha = elapsed / duration
local clockTime =
startTime
+
(endTime - startTime) * alpha
Lighting.ClockTime = clockTime % 24
task.wait(UPDATE_RATE)
elapsed += UPDATE_RATE
end
end
--------------------------------------------------
-- DAY/NIGHT CYCLE
--------------------------------------------------
while true do
-- Morning
changeTime(
MORNING_START,
EVENING_START,
MORNING_DURATION
)
-- Evening
changeTime(
EVENING_START,
24,
EVENING_DURATION
)
-- Night
changeTime(
NIGHT_START,
MORNING_START,
NIGHT_DURATION
)
end