Fire all click detectors/proximity prompt/touch interest detection script

This is very basic but is also not implemented and skipped over by many game developers. The exploit is as simple as its name, its a script where the player is able to active any/every click detector/proximity prompt at the same time. This is due to them both being client sided operations.

First of all you need basic protection on any script that uses click detectors, A simple check would be needed. Server sided ofc

local camera = workspace.CurrentCamera
clickdetector.MouseClick:Connect(function(player) 
  local char = player.Character
  if char then
    local distance = player:DistanceFrom(clickdetector.Parent.Position)
    if distance - 2 <= clickdetector.MaxActivationDistance + cam.MaxCamZoom then
      -- allow them to continue with their thingy
    end -- you can make this an else statement since its an illegal trigger
  end -- but there might be false positives so don't punish them too much.
end)

This can also be scripted for proximity prompts ^
This is basic security and can limit what an exploiter can do without a lot of effort.

Another simple script if you don’t wanna add these checks to every click detector in the game is simple.

local impossiblePart = Instance.new('Part')
impossiblePart.Size = Vector3.new(0,0,0)
impossiblePart.Transparency = 1
impossiblePart.Anchored = true
impossiblePart.CanCollide = false
impossiblePart.Positon = Vector3.new() -- place anywhere out of reach of players
-- make sure its not too far cause of streaming enabled.

local click = Instance.new('ClickDetector')
click.MaxActivationDistance = 0.01
click.Triggered:Connect(function(player) player:Kick('Impossible interaction') end)
-- for triggering the event on an impossible part.
clickdetector.Parent = impossiblePart

local prompt = Instance.new('ProximityPrompt') -- also works for prompts
prompt.MaxActivationDistance = 0.01
prompt.Triggered:Connect(function(player) player:Kick('Impossible interaction') end 
prompt.Parent = impossiblePart

impossiblePart.Touched:Connect(function(hit) -- also works for .Touched
  local player = game.Players:GetPlayerFromCharacter(hit)
  if player then
    player:Kick('Impossible interaction')
  end
end)
-- Some exploits like infinite yield also have an exploit to touch all parts
-- this can also prevent it

impossiblePart.Parent = workspace

Feel free to put your own methods for player:Kick() such as bans and stuff.

This works simply because the scripts that include Fire all cd, pp and tis don’t filter anything out and literally fire everything in the workspace.

This is only simple and only stops very niche exploits but its security and an easy way to catch out skids. They may patch this method but its not serious lol

4 Likes

ProximityPrompts are handled on the serverside, even if they do get fired from further away than the max distance, they wont get activated. So most exploiters teleport within the distance and then fire it (So this would be best paired with a teleport detection system.).

2 Likes

Wow, I like the script, congratulations!