This script is simply supposed to turn on the lights when a switch is pressed, and turn them off when its pressed again. No errors appear in output.
local L11 = script.Parent.Parent.Parent.CeilingLight1.Light1
local L12 = script.Parent.Parent.Parent.CeilingLight1.Light2
local L13 = script.Parent.Parent.Parent.CeilingLight1.Light3
local L21 = script.Parent.Parent.Parent.CeilingLight2.Light1
local L22 = script.Parent.Parent.Parent.CeilingLight2.Light2
local L23 = script.Parent.Parent.Parent.CeilingLight2.Light3
local L31 = script.Parent.Parent.Parent.CeilingLight3.Light1
local L32 = script.Parent.Parent.Parent.CeilingLight3.Light2
local L33 = script.Parent.Parent.Parent.CeilingLight3.Light3
function buttonPressed()
if script.Parent.Parent.On.Value == true then
turnOn()
else
turnOff()
end
end
function turnOn()
script.Parent.Parent.On.Value = true
script.Parent.Rotation = Vector3.new(0, 0, 12.5)
local L11 = script.Parent.Parent.Parent.CeilingLight1.Light1
local L12 = script.Parent.Parent.Parent.CeilingLight1.Light2
local L13 = script.Parent.Parent.Parent.CeilingLight1.Light3
local L21 = script.Parent.Parent.Parent.CeilingLight2.Light1
local L22 = script.Parent.Parent.Parent.CeilingLight2.Light2
local L23 = script.Parent.Parent.Parent.CeilingLight2.Light3
local L31 = script.Parent.Parent.Parent.CeilingLight3.Light1
local L32 = script.Parent.Parent.Parent.CeilingLight3.Light2
local L33 = script.Parent.Parent.Parent.CeilingLight3.Light3
L11.BrickColor = BrickColor.White()
L12.BrickColor = BrickColor.White()
L13.BrickColor = BrickColor.White()
L21.BrickColor = BrickColor.White()
L22.BrickColor = BrickColor.White()
L23.BrickColor = BrickColor.White()
L31.BrickColor = BrickColor.White()
L32.BrickColor = BrickColor.White()
L33.BrickColor = BrickColor.White()
L11.Material = "Neon"
L12.Material = "Neon"
L13.Material = "Neon"
L21.Material = "Neon"
L22.Material = "Neon"
L23.Material = "Neon"
L31.Material = "Neon"
L32.Material = "Neon"
L33.Material = "Neon"
end
function turnOff()
script.Parent.Parent.On.Value = false
script.Parent.Rotation = Vector3.new(0, 0, -12.5)
local L11 = script.Parent.Parent.Parent.CeilingLight1.Light1
local L12 = script.Parent.Parent.Parent.CeilingLight1.Light2
local L13 = script.Parent.Parent.Parent.CeilingLight1.Light3
local L21 = script.Parent.Parent.Parent.CeilingLight2.Light1
local L22 = script.Parent.Parent.Parent.CeilingLight2.Light2
local L23 = script.Parent.Parent.Parent.CeilingLight2.Light3
local L31 = script.Parent.Parent.Parent.CeilingLight3.Light1
local L32 = script.Parent.Parent.Parent.CeilingLight3.Light2
local L33 = script.Parent.Parent.Parent.CeilingLight3.Light3
L11.BrickColor = BrickColor.Gray()
L12.BrickColor = BrickColor.Gray()
L13.BrickColor = BrickColor.Gray()
L21.BrickColor = BrickColor.Gray()
L22.BrickColor = BrickColor.Gray()
L23.BrickColor = BrickColor.Gray()
L31.BrickColor = BrickColor.Gray()
L32.BrickColor = BrickColor.Gray()
L33.BrickColor = BrickColor.Gray()
L11.Material = "Plastic"
L12.Material = "Plastic"
L13.Material = "Plastic"
L21.Material = "Plastic"
L22.Material = "Plastic"
L23.Material = "Plastic"
L31.Material = "Plastic"
L32.Material = "Plastic"
L33.Material = "Plastic"
end
script.Parent.ClickDetector.MouseClick:connect(buttonPressed)
Thank you in advance for any help you may provide.

2 comments
I think you should pu the function buttonPressed() after turnoOn() and turnOff()
turnOn() and turnOff() are global functions, so it does not matter in this case. Although I would suggest using locals.