You never set Injectable to true after you set it to false so the code below the condition will run only once if it’s ever evaluated, set it to true like this:
^ right before the end)
Also move the wait(5) to right before setting Injectable to true as well, unless you only want that wait if the first condition returns true.
I also suggest pasting preformatted code on the forum so it’s easier to alter it.
Edit:
…
local Injectable = true
Gun.Activated:Connect(function()
if Injectable then -- don't need to explicitly compare to check whether its true, this basically is the same thing but looks neater
Injectable = false
script.Parent.Events.Script.RemoteEvent:FireServer()
else
Empty:Play()
end
wait(5)
Injectable = true
end)
Nevermind, I’ve figured out the issue was I had the healing effect not included in the remote script, but in a separate script not affected by the local script. It was a silly thing to miss…