I've recently been making a custom tool pick up script, however, I've noticed that touch ended can be very buggy in which it can activate even when the player is still inside the part. The player is supposed to pick up the object when pressing "e" however if the player were to walk across the part, if the script does not have touchended, the player would still be able to pick up the object after walking pass it with the press of "e". Thus, I needed a touchended to create a variable to stop this from happening. Though it does solve the previous problem, it created a new one in which touchended would fire even when the player is still touching the object, continuously activating my touch ended variable and breaking my script. Can anyone help with this?
equipped = false --Remote event that fires when touched Prompt.onClientEvent:connect(function(player) HasTouched = true end game:GetService("UserInputService").InputBegan:connect(function(inputObject, gameProcessedEvent) -- check if E is pressed if inputObject.KeyCode == Enum.KeyCode.E then if not Equipped and HasTouched then equipped = true HasTouched = false elseif Equipped then equipped = false HasTouched = true end end end) --Buggy Part that causes HasTouched to be false, thus not entering into both of the ifs above --Remote event that fires when touchended Prompt2.onClientEvent:connect(function() HasTouched = false print("Touched Ended") end)