The TouchEnded part of this script is not working. Basically I am trying to make a part that changes to neon and does a fade effect on touch and when the player comes off the part, it goes back to ForceField and stops.
Script:
local part = script.Parent local debounce = true part.Touched:Connect(function(hit) local humanoid = hit.Parent:FindFirstChildWhichIsA("Humanoid") if humanoid~= nil and debounce == true then debounce = false part.Transparency = 0.05 wait(0.05) part.Transparency = 0.10 wait(0.05) part.Transparency = 0.15 wait(0.05) part.Transparency = 0.20 wait(0.05) part.Transparency = 0.25 wait(0.05) part.Transparency = 0.30 wait(0.05) part.Transparency = 0.35 wait(0.05) part.Transparency = 0.40 wait(0.05) part.Transparency = 0.45 wait(0.05) part.Transparency = 0.50 wait(0.05) part.Transparency = 0.55 wait(0.05) part.Transparency = 0.60 wait(0.05) part.Transparency = 0.65 wait(0.05) part.Transparency = 0.70 wait(0.05) part.Transparency = 0.75 wait(0.05) part.Transparency = 0.80 wait(0.05) part.Transparency = 0.85 wait(0.05) part.Transparency = 0.90 wait(0.05) part.Transparency = 0.95 wait(0.05) part.Transparency = 1.00 part.Material = Enum.Material.Neon wait(0.05) part.Transparency = 0.95 wait(0.05) part.Transparency = 0.90 wait(0.05) part.Transparency = 0.85 wait(0.05) part.Transparency = 0.80 wait(0.05) part.Transparency = 0.75 wait(0.05) part.Transparency = 0.70 wait(0.05) part.Transparency = 0.65 wait(0.05) part.Transparency = 0.60 wait(0.05) part.Transparency = 0.55 wait(0.05) part.Transparency = 0.50 wait(0.05) part.Transparency = 0.45 wait(0.05) part.Transparency = 0.40 wait(0.05) part.Transparency = 0.35 wait(0.05) part.Transparency = 0.30 wait(0.05) part.Transparency = 0.25 wait(0.05) part.Transparency = 0.20 wait(0.05) part.Transparency = 0.15 wait(0.05) part.Transparency = 0.10 wait(0.05) part.Transparency = 0.05 wait(0.05) part.Transparency = 0.00 wait(0.05) debounce = true end end) part.TouchEnded:Connect(function(hit) local humanoid = hit.Parent:FindFirstChildWhichIsA("Humanoid") if humanoid == nil then part.Material = Enum.Material.ForceField print("off") end end)
I added a constant Check() function after every wait to see if the part was touched or not.
local part = script.Parent local debounce = true part.Touched:Connect(function(hit) local humanoid = hit.Parent:FindFirstChildWhichIsA("Humanoid") local player = hit.Parent if humanoid~= nil and debounce == true then debounce = false part.Transparency = 0.05 repeat Color() until not hit ~= player if not hit ~= player then part.Material = "ForceField" end debounce = true end end) function Color() wait(0.05) part.Transparency = 0.10 wait(0.05) part.Transparency = 0.15 wait(0.05) part.Transparency = 0.20 wait(0.05) part.Transparency = 0.25 wait(0.05) part.Transparency = 0.30 wait(0.05) part.Transparency = 0.35 wait(0.05) part.Transparency = 0.40 wait(0.05) part.Transparency = 0.45 wait(0.05) part.Transparency = 0.50 wait(0.05) part.Transparency = 0.55 wait(0.05) part.Transparency = 0.60 wait(0.05) part.Transparency = 0.65 wait(0.05) part.Transparency = 0.70 wait(0.05) part.Transparency = 0.75 wait(0.05) part.Transparency = 0.80 wait(0.05) part.Transparency = 0.85 wait(0.05) part.Transparency = 0.90 wait(0.05) part.Transparency = 0.95 wait(0.05) part.Transparency = 1.00 part.Material = "Neon" wait(0.05) part.Transparency = 0.95 wait(0.05) part.Transparency = 0.90 wait(0.05) part.Transparency = 0.85 wait(0.05) part.Transparency = 0.80 wait(0.05) part.Transparency = 0.75 wait(0.05) part.Transparency = 0.70 wait(0.05) part.Transparency = 0.65 wait(0.05) part.Transparency = 0.60 wait(0.05) part.Transparency = 0.55 wait(0.05) part.Transparency = 0.50 wait(0.05) part.Transparency = 0.45 wait(0.05) part.Transparency = 0.40 wait(0.05) part.Transparency = 0.35 wait(0.05) part.Transparency = 0.30 wait(0.05) part.Transparency = 0.25 wait(0.05) part.Transparency = 0.20 wait(0.05) part.Transparency = 0.15 wait(0.05) part.Transparency = 0.10 wait(0.05) part.Transparency = 0.05 wait(0.05) part.Transparency = 0.00 wait(0.05) end
Found The Problem, The "Part" was still touching something. This checks if its touching the player.