I am currently working on a King of The Hill script and the loop doesn't seem to be breaking at all.
So, basically, I am firing a BindableFunction which is script.Parent.King. That is my BindableFunction, however, when I execute it when I am out of range, the loop doesn't break.
local val = false local function update(upd) val = upd while wait(1) do if val == false then val = false break end print("give | king of hill") end end script.Parent.King.OnInvoke = update game.Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:connect(function(character) while wait(0.5) do local mag = (script.Parent.Position - character:FindFirstChild("HumanoidRootPart").Position).magnitude if mag <= 16 then script.Parent.King:Invoke(true) else script.Parent.King:Invoke(false) end end end) end)
That is my code, please let me know if you have any solutions.