Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

What is wrong with my SpotLight script? [REPOSTED TWICE]

Reposting reason: The last 2 times, the answers I was given were all INCORRECT.

So... after I added a day/night cycle script to my game, I made a light column with SpotLight. Then I added a script to the SpotLight to make it opens at a specific time(19:00:00) and closes at(5:00:00). The script is not working, here is it:-

game.Lighting.Changed:connect(function()
	local myTime = game.Lighting.TimeOfDay
	if myTime == "19:00:00" then
		SpotLight.enabled = true
	else if myTime == "5:00:00" then
		SpotLight.enabled = false
	end
end

And here is the day/night cycle script if you think there's something wrong in it, note that I don't have troubles with this script:-

local dayLength = 24

local cycleTime = dayLength*60
local minutesInADay = 24*60

local lighting = game:GetService("Lighting")

local startTime = tick() - (lighting:getMinutesAfterMidnight() / minutesInADay)*cycleTime
local endTime = startTime + cycleTime

local timeRatio = minutesInADay / cycleTime

if dayLength == 0 then
	dayLength = 1
end

repeat
	local currentTime = tick()
	
	if currentTime > endTime then
		startTime = endTime
		endTime = startTime + cycleTime
	end
	
	lighting:setMinutesAfterMidnight((currentTime - startTime)*timeRatio)
	wait(1/15)
until false

NOTE: Please tell in your answer the following:-

1.Shall I put this script in normal script or in local script.

2.Shall I put this script in the SpotLight itself or in the part which has the SpotLight in.

3.Explain what did you change.

4.Should I use PointLight instead.

Thanks for helping.

1 answer

✓ Accepted answer

I think this will be fine in a normal script. The glaring error I have found, unless I have missed something, is that SpotLight is not referenced. You need to locate the spotlight first.

If this script was in the spotlight then it would be:

game.Lighting.Changed:connect(function()
    local myTime = game.Lighting.TimeOfDay
    if myTime == "19:00:00" then
        script.Parent.enabled = true
    else if myTime == "5:00:00" then
        script.Parent.enabled = false
    end
end

A spotlight is probably best too, but you can use PointLights too

1 comment

0

It didn't work, but you helped me in knowing some new things, upvoted!

This discussion is preserved as it was. New answers, comments, and votes are closed.