Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

Why won't this script change the TimeOfDay property in Lighting?

Asked by 10 years ago

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:

01--[[Details:
02Parent of script is Lighting
03It does not say there is an error in output
04The TimeOfDay property will not change
05The default value of the property is "14:00:00"]]
06 
07local Lighting = script.Parent
08local hour = 14
09local minute = 00
10 
11function addMinute()
12    if minute == 59 then
13        minute = 00
14        if hour == 23 then
15            hour = 00
View all 30 lines...
1
I found out the problem: the script won't run in Lighting but it does in workspace. Thanks for the advice xxracerdudexx 75 — 10y
0
Man, you had me worried. I didn't answer because I couldn't see any problem with your code at all. Try putting that script in ServerScriptService instead of Lighting. :P adark 5487 — 10y
0
I tried to accept both answers but I could only accept one xxracerdudexx 75 — 10y

2 answers

Log in to vote
1
Answered by
SirNoobly 165
10 years ago

A much simpler way is just to add 1 every second using :SetMinutesAfterMidnight().

1local lighting = game:GetService("Lighting")
2 
3while wait(1) do
4    local minutes = lighting:GetMinutesAfterMidnight()
5    lighting:SetMinutesAfterMidnight(minutes + 1)
6    print(string.sub(lighting.TimeOfDay, 1, 5)) -- If you want to use it in a textlabel
7end
Ad
Log in to vote
1
Answered by
hudzell 238 Moderation Voter
10 years ago

tostring() is not needed, just put the variable in and it will work. Also, I'd suggest using :SetMinutesAfterMidnight() for a day/night cycle.

01local Lighting = script.Parent
02local hour = 14
03local minute = 00
04 
05function addMinute()
06    if minute == 59 then
07        minute = 00
08        if hour == 23 then
09            hour = 00
10        else
11            hour = hour + 1
12            Lighting.TimeOfDay = hour.. ":" ..minute.. ":00"
13        end
14        Lighting.TimeOfDay = hour.. ":" ..minute.. ":00"
15    else
View all 24 lines...

Answer this question