Play Sound For Everyone

Hello! So, I am making a FNAF game in Roblox and I was working on the light button. I got the light button to work but I found a few issues. The Light sound wouldn’t play for everyone and as well as the sound plays after the light is off.

Controll LOCALSCRIPT
local LightButton = game.Workspace.LightButton
local DoorButton = game.Workspace.DoorButton
local LightOnValue = script.Parent.ControlScript2["LightOn?"]
local LightButton2 = game.Workspace.LightButton2
local DoorButton2 = game.Workspace.DoorButton2
local LightOnValue2 = script.Parent.ControlScript2["LightOn?2"]
local CameraPart = game.Workspace.CameraPart

function Light()
	if LightOnValue == 0 then
		script["FNaF 1 Door Light [Loop]"]:Play()
	else
		script["FNaF 1 Door Light [Loop]"]:Stop()
	end
end

LightButton.ClickDetector.MouseClick:Connect(Light)

function Light2()
	if LightOnValue2 == 0 then
		script["FNaF 1 Door Light [Loop]2"]:Play()
	else
		script["FNaF 1 Door Light [Loop]2"]:Stop()
	end
end

LightButton2.ClickDetector.MouseClick:Connect(Light2)
Control SCRIPT 2
local LightButton = game.Workspace.LightButton
local DoorButton = game.Workspace.DoorButton
local LightOnValue = script["LightOn?"]
local DoorLight = game.Workspace.DoorLight:Clone()
local LightButton2 = game.Workspace.LightButton2
local DoorButton2 = game.Workspace.DoorButton2
local LightOnValue2 = script["LightOn?2"]
local DoorLight2 = game.Workspace.DoorLight2:Clone()
local DoorButton = game.Workspace.DoorButton
local DoorButton2 = game.Workspace.DoorButton2

function Light()
	local LightPart = script.Light:Clone()
	if LightOnValue.Value == 0 then
		LightOnValue.Value = 1
		game.Workspace.Light:Destroy()
		script.DoorLight.Parent = game.Workspace
		DoorLight.Transparency = 0
		script.Parent.PowerUsage.Value = script.Parent.PowerUsage.Value - 1
	else
		LightOnValue.Value = 0
		LightPart.Parent = game.Workspace
		DoorLight.Parent = script
		DoorLight.Transparency = 0.5
		script.Parent.PowerUsage.Value = script.Parent.PowerUsage.Value + 1
	end
end

LightButton.ClickDetector.MouseClick:Connect(Light)

function Light2()
	local LightPart2 = script.Light2:Clone()
	if LightOnValue2.Value == 0 then
		LightOnValue2.Value = 1
		game.Workspace.Light2:Destroy()
		script.DoorLight2.Parent = game.Workspace
		DoorLight2.Transparency = 0
		script.Parent.PowerUsage.Value = script.Parent.PowerUsage.Value - 1
	else
		LightOnValue2.Value = 0
		LightPart2.Parent = game.Workspace
		DoorLight2.Parent = script
		DoorLight2.Transparency = 0.5
		script.Parent.PowerUsage.Value = script.Parent.PowerUsage.Value + 1
	end
end

LightButton2.ClickDetector.MouseClick:Connect(Light2)

Localscripts will make it show to yourself. Use a server-sided

Light is not a valid member of Workspace "Workspace"  -  Server - ControlScript2:16

Is Light a vaild member of the workspace?

well the code clones it to workspace.

local DoorButton = game.Workspace.DoorButton
local LightOnValue = script["LightOn?"].Value
local DoorLight = game.Workspace.DoorLight:Clone()
local LightButton2 = game.Workspace.LightButton2
local DoorButton2 = game.Workspace.DoorButton2
local LightOnValue2 = script["LightOn?2"]
local DoorLight2 = game.Workspace.DoorLight2:Clone()
local DoorButton = game.Workspace.DoorButton
local DoorButton2 = game.Workspace.DoorButton2

function Light()
	local LightPart = script.Light:Clone()
	if LightOnValue == 0 then
		LightOnValue = 1
		game.Workspace.Light:Destroy()
		script.DoorLight.Parent = game.Workspace
		DoorLight.Transparency = 0
		script.Parent.PowerUsage.Value = script.Parent.PowerUsage.Value - 1
	else
		LightOnValue = 0
		LightPart.Parent = game.Workspace
		DoorLight.Parent = script
		DoorLight.Transparency = 0.5
		script.Parent.PowerUsage.Value = script.Parent.PowerUsage.Value + 1
	end
end

also there is no sounds playing in game.

Did you call :Play() on it?

10 + 20 limit

local LightButton = game.Workspace.LightButton
local DoorButton = game.Workspace.DoorButton
local LightOnValue = script.Parent.ControlScript2["LightOn?"]
local LightButton2 = game.Workspace.LightButton2
local DoorButton2 = game.Workspace.DoorButton2
local LightOnValue2 = script.Parent.ControlScript2["LightOn?2"]
local CameraPart = game.Workspace.CameraPart

function Light()
	if LightOnValue == 0 then
		script["FNaF 1 Door Light [Loop]"]:Play()
	else
		script["FNaF 1 Door Light [Loop]"]:Stop()
	end
end

LightButton.ClickDetector.MouseClick:Connect(Light)

function Light2()
	if LightOnValue2 == 0 then
		script["FNaF 1 Door Light [Loop]2"]:Play()
	else
		script["FNaF 1 Door Light [Loop]2"]:Stop()
	end
end

does this work?

Dont know, go try it out for yourself

You could just disable SoundService.RespectFilteringEnabled as a quick fix.

no sounds play at all from the scripts.

didnt work. no sounds play at all from the scripts.

it works on localscripts but not scripts