I'm making a flashlight and I want it to turn off when unequipped, but the script won't register when the item is unequipped.
(Script)
Tool = script.Parent
InUse = false
FlashlightMesh = Tool.FlashlightMesh
SpotLight = FlashlightMesh.SpotLight
IdleAnim = script.Idle
RepStorage = game.ReplicatedStorage
Event = RepStorage.Items.FlashLightEvent
Tool.Activated:connect(function()
print(Tool.Name.. " Activated")
LightingControl = Tool.Parent:WaitForChild('LightingControl')
if InUse == false then
InUse = true
SpotLight.Enabled = true
Event:FireAllClients(20,70,false)
print("1A:")
elseif InUse == true then
InUse = false
SpotLight.Enabled = false
Event:FireAllClients(20,70,true)
print("2A:")
end
end)
Tool.Equipped:connect(function()
local Humanoid = Tool.Parent:WaitForChild('Humanoid')
IdleAnimLoaded = Humanoid:LoadAnimation(IdleAnim)
equipped = true
IdleAnimLoaded:Play()
end)
Tool.Unequipped:connect(function()
print("Unequiped")
equipped = false
IdleAnimLoaded:Stop()
LightingControl = Tool.Parent:WaitForChild('LightingControl')
if InUse == true then
SpotLight.Enabled = false
Event:FireAllClients(20,70,true)
InUse = false
print("3A:")
end
end)
(Local Script)
RepStorage = game.ReplicatedStorage
Event = RepStorage.Items.FlashLightEvent
Tool = script.Parent
Event.OnClientEvent:Connect(function(Ambience,FogEnding,On)
if On == false then
local Character = Tool.Parent
local LightingControl = Character:WaitForChild('LightingControl')
LightingControl.Ambient.Value = LightingControl.Ambient.Value + Ambience
LightingControl.FogEnd.Value = LightingControl.FogEnd.Value + FogEnding
print("1B:")
elseif On == true then
local Character = Tool.Parent
local LightingControl = Character:WaitForChild('LightingControl')
LightingControl.Ambient.Value = LightingControl.Ambient.Value - Ambience
LightingControl.FogEnd.Value = LightingControl.FogEnd.Value - FogEnding
print("2B:")
end
end)

6 comments
Put it in your local script
Also use local variables.
Use a bool value
Use a bool value
Use a bool value
Use a bool value