I'm trying to make it so that when a patty touches a grill, it will slowly cook, 5 stages in total. When it touches it though, it continues cooking regardless if I take it off the grill. Also, the prints from the onHit and onGone function are delayed.
Code:
touching = false function cook(hit) if hit.stage.Value == 1 and touching == true then script.Parent.sizzle:Play() wait(4) hit.BrickColor = BrickColor.new(18) hit.stage.Value = 2 script.Parent.sizzle:Stop() end if hit.stage.Value == 2 and touching == true then script.Parent.sizzle:Play() wait(4) hit.BrickColor = BrickColor.new(217) hit.stage.Value = 3 script.Parent.sizzle:Stop() end if hit.stage.Value == 3 and touching == true then script.Parent.sizzle:Play() wait(5) hit.BrickColor = BrickColor.new(26) hit.stage.Value = 4 script.Parent.sizzle:Stop() end if hit.stage.Value == 4 and touching == true then script.Parent.sizzle:Play() wait(6) hit.BrickColor = BrickColor.new(1003) hit.stage.Value = 5 hit.Fire.Enabled = true script.Parent.sizzle:Stop() end end function onHit(hit) if hit.Name == "Patty" then cook(hit) touching = true print(hit.Name.." is now touching") end end function onGone(hit) if hit.Name == "Patty" then touching = false print(hit.Name.." is no longer touching") script.Parent.sizzle:Stop() script.Parent.antistop.Disabled = true wait(0.01) script.Parent.antistop.Disabled = false end end script.Parent.Touched:connect(onHit) script.Parent.TouchEnded:connect(onGone)
Like I said, it all works fine but it keeps cooking even if I take it off of the grill.
Edit: antistop is a script that manually loops the "sizzle" sound at a certain time in the audio. It works fine.