I'm helping my friend make a FNaF horror game, and I have the day/night cycle scripted, however, it doesn't work properly. Sure, it'll work in studio just fine, but when multiple players are on the game, the time will either be stuck at "12:00", or just be offset.
Here are the scripts I have.
Regular script in workspace
local remEvent = game.ReplicatedStorage:WaitForChild("changingtime")
local remEvent2 = game.ReplicatedStorage:WaitForChild("fixingtime")
wait(5) -- Waited 5 seconds for clients to pick it up
remEvent:FireAllClients()
remEvent2:FireAllClients()
wait()
script.Disabled = true
LocalScript in StarterGUI that handles the events
local remEvent2 = game.ReplicatedStorage:WaitForChild("fixingtime")
remEvent2.OnClientEvent:Connect(function()
script.Parent.fixer.Disabled = false
script.Parent.LocalScript.Disabled = false
end)
LocalScript in StarterGUI that plays the sound upon joining, (happens once i think)
print("Running time fixer.")
wait(0.2)
print("Fixed time. -2_MMZ")
game.Workspace.Sounds.FNAF6AM:Play()
game.Workspace.Sounds.Day:Play()
game.Workspace.Sounds.Day.Looped = true
script.Parent.Time2.Text = "Daytime"
script.Parent.Time.Text = "6:00 AM"
LocalScript in StarterGUI that handles the time and GUI text
while wait(1) do
game.Lighting.ClockTime += 0.02
print("Changed time.")
if game.Lighting.ClockTime == 0 then
script.Parent.Time.Text = "12:00 AM"
script.Parent.Time2.Text = "Nightshift"
game.Workspace.Sounds.Night:Play()
game.Workspace.Sounds.Night.Looped = true
game.Workspace.Sounds.Day:Stop()
game.Workspace.Sounds.Day.Looped = false
game.Workspace.Sounds.hauntedSOULS:Stop()
game.Workspace.Sounds.hauntedSOULS.Looped = false
game.Workspace.DeezBuildingLights.Light17.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light18.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light19.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light20.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light21.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light22.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light23.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light24.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light25.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light26.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light27.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light28.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light29.SurfaceLight.Brightness = 0
game.Workspace.DeezBuildingLights.Light30.SurfaceLight.Brightness = 0
end
if game.Lighting.ClockTime == 1 then
script.Parent.Time.Text = "1:00 AM"
script.Parent.Time2.Text = "Nightshift"
end
if game.Lighting.ClockTime == 2 then
script.Parent.Time.Text = "2:00 AM"
script.Parent.Time2.Text = "Nightshift"
end
if game.Lighting.ClockTime == 3 then
script.Parent.Time.Text = "3:00 AM"
script.Parent.Time2.Text = "Nightshift"
end
if game.Lighting.ClockTime == 4 then
script.Parent.Time.Text = "4:00 AM"
script.Parent.Time2.Text = "Nightshift"
end
if game.Lighting.ClockTime == 5 then
script.Parent.Time.Text = "5:00 AM"
script.Parent.Time2.Text = "Nightshift"
end
if game.Lighting.ClockTime == 6 then
script.Parent.Time.Text = "6:00 AM"
game.Workspace.Sounds.FNAF6AM:Play()
script.Parent.Time2.Text = "Daytime"
game.Workspace.Sounds.Night:Stop()
game.Workspace.Sounds.Night.Looped = false
game.Workspace.Sounds.Day:Play()
game.Workspace.Sounds.Day.Looped = true
game.Workspace.Sounds.hauntedSOULS:Stop()
game.Workspace.Sounds.hauntedSOULS.Looped = false
game.Workspace.DeezBuildingLights.Light17.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light18.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light19.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light20.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light21.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light22.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light23.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light24.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light25.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light26.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light27.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light28.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light29.SurfaceLight.Brightness = 2
game.Workspace.DeezBuildingLights.Light30.SurfaceLight.Brightness = 2
end
if game.Lighting.ClockTime == 7 then
script.Parent.Time.Text = "7:00 AM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 8 then
script.Parent.Time.Text = "8:00 AM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 9 then
script.Parent.Time.Text = "9:00 AM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 10 then
script.Parent.Time.Text = "10:00 AM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 11 then
script.Parent.Time.Text = "11:00 AM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 12 then
script.Parent.Time.Text = "12:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 13 then
script.Parent.Time.Text = "1:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 14 then
script.Parent.Time.Text = "2:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 15 then
script.Parent.Time.Text = "3:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 16 then
script.Parent.Time.Text = "4:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 17 then
script.Parent.Time.Text = "5:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 18 then
script.Parent.Time.Text = "6:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 19 then
script.Parent.Time.Text = "7:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 20 then
script.Parent.Time.Text = "8:00 PM"
script.Parent.Time2.Text = "Daytime"
end
if game.Lighting.ClockTime == 21 then
script.Parent.Time.Text = "9:00 PM"
script.Parent.Time2.Text = "Closing Time"
game.Workspace.Sounds.hauntedSOULS:Play()
game.Workspace.Sounds.hauntedSOULS.Looped = true
game.Workspace.Sounds.Day:Stop()
game.Workspace.Sounds.Day.Looped = false
game.Workspace.Sounds.Night:Stop()
game.Workspace.Sounds.Night.Looped = false
game.Workspace.DeezBuildingLights.Light17.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light18.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light19.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light20.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light21.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light22.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light23.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light24.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light25.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light26.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light27.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light28.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light29.SurfaceLight.Brightness = 0.1
game.Workspace.DeezBuildingLights.Light30.SurfaceLight.Brightness = 0.1
end
if game.Lighting.ClockTime == 22 then
script.Parent.Time.Text = "10:00 PM"
script.Parent.Time2.Text = "Closing Time"
end
if game.Lighting.ClockTime == 23 then
script.Parent.Time.Text = "11:00 PM"
script.Parent.Time2.Text = "Closing Time"
end
end
I'm very confused, if anyone can help me with this, I would be super grateful! ANY working answer is appreciated!

3 comments
is it the clocktime or the label that doesn't work-
Both
o