So I have this really basic anti-cheat here but the problem is that when the player walks up to where the proximity prompt will appear but, it will false ban the player since the proximity prompt creates a new GUI so I was wondering if there is a way to not detect the proximity prompt GUI from creating itself
line 59 to 62
code:
local function KickPlayer() replicatedstorage.RemoteEvent:FireServer() --basically just fires a remote event that kicks the player end --No hack tools ex: f3x or tp tool backpack.ChildAdded:Connect(function(Obj) if Obj.Name == "F3X" and Obj:IsA("Tool") then return KickPlayer() end if Obj.Name == "Building Tools" and Obj:IsA("Tool") then return KickPlayer() end if Obj.Name == "Teleport Tool" and Obj:IsA("Tool") then return KickPlayer() end if Obj:IsA("HopperBin") then return KickPlayer() end end) --normal fly (not cfly aka cframe fly) humanoidRootPart.ChildAdded:Connect(function(Obj) if Obj:IsA("BodyGyro") or Obj:IsA("BodyVelocity") or Obj:IsA("BodyPosition") then KickPlayer() end end) -- no cfly and stuff humanoid.Changed:Connect(function() humanoid.Name = "Humanoid" if humanoid.PlatformStand == true then KickPlayer() end if humanoid == nil then KickPlayer() end if humanoid.WalkSpeed > 16 then KickPlayer() end if humanoid.JumpPower > 0 then KickPlayer() end if humanoid.UseJumpPower == false then KickPlayer() end end) -- no noclip torso.Changed:Connect(function() torso.Name = "Torso" if torso.CanCollide == false then KickPlayer() end end) --more security game.ChildAdded:Connect(function() wait(1) KickPlayer() end) local hasLoaded = false player.CharacterAppearanceLoaded:Connect(function() wait(1) hasLoaded = true end) PlayerGui.ChildAdded:Connect(function() if hasLoaded == true then wait(1) KickPlayer() end end) humanoidRootPart.Changed:Connect(function() humanoidRootPart.Name = "HumanoidRootPart" end) --Anti change workspace name players.PlayerAdded:Connect(function() player.CharacterAdded:Connect(function() workspace.Changed:Connect(function() wait(3) KickPlayer() end) end) end) --anti change players name, the service "Players" players.PlayerAdded:Connect(function() player.CharacterAdded:Connect(function() players.Changed:Connect(function() wait(3) KickPlayer() end) end) end)
Use the :IsA function to check if the added part is something from the proximity prompt.
game.ChildAdded:Connect(function(child) if child:IsA(thing that proximity prompt makes) then return end else wait(1) KickPlayer() end end)