Hi, while browsing my pc files i founded a funny script that i made around 5 mounth ago and so today i will share and explain how it work with you ^^
I do not encourage exploiting or anything related to it even tho i found them funny with the level of acces and the abilities of them and the creativity people can get with them. (I love to see impresive stuff maked with exploit that dont ruin players experience)
ModuleScript Library here : Cool Detection - Roblox
In every script executors there are some customs functions that allow you to do stuffs and sometimes you can detect them
Those Two detection are indeed Serversided
Anti FireClick Click Detector
- How it work
There are events fired on the instance of the ClickDetector and two of them are pretty cool and let us know when someone is Hovering the ClickDetector.
And so we just check if the player is/was Hovering the ClickDetector after firing it and if they dont wich happen when they use the fireclickdetector function it fire the callback
- The exploiter script
fireclickdetector(workspace.Part.ClickDetector)
- The way to Detect/Patch it
_G.AntiFireClickDetector = function(ClickDetector:instance, CallBack)
if typeof(ClickDetector) == "Instance" then
if ClickDetector:IsA("ClickDetector") then
local Holding = {} -- to store players
ClickDetector.MouseHoverEnter:Connect(function(plr)
Holding[plr.Name] = true
end)
ClickDetector.MouseHoverLeave:Connect(function(plr)
task.wait() -- otherwise it will instan kick
Holding[plr.Name] = false
end)
ClickDetector.MouseClick:Connect(function(plr)
if not Holding[plr.Name] then
CallBack(plr)
end
end)
end
end
end
- In Another Script
repeat task.wait() until _G.AntiFireClickDetector ~= nil
_G.AntiFireClickDetector(script.Parent, function(plr)
plr:kick("exploit detected : fireclickdetector")
end)
- Using a module script (With the library) :
local module = require(<ModuleScript>)
module:AntiFireClickDetector(script.Parent, function(plr)
plr:kick("exploit detected : fireclickdetector")
end)
ă…¤
Anti FireProximityPrompt
- How it work
There are events fired on the instance of the ProximityPrompt and two of them are pretty cool and let us know when someone is holding the ProximityPrompt.
And so we just check if the player was holding the proximityprompt after firing it and if they dont wich happen when they use the fireproximityprompt function it fire the callback
- The exploiter script
fireproximityprompt(workspace.Part.ProximityPrompt)
- The way to Detect/Patch it
local function CanDetect(proximityprompt) -- yes cuz it wont work on proximity prompt that are instant xd
if proximityprompt.HoldDuration >= 0.1 then
proximityprompt:SetAttribute("IsSecurised", true)
else
proximityprompt:SetAttribute("IsSecurised", false)
end
end
_G.AntiFireProximityPrompt = function(proximityPrompt, Callback)
if typeof(proximityPrompt) == "Instance" then
if proximityPrompt:IsA("ProximityPrompt") then
CanDetect(proximityPrompt)
local Holding = {} -- to store players
proximityPrompt.PromptButtonHoldBegan:Connect(function(plr)
table.insert(Holding, plr.Name)
end)
proximityPrompt.PromptButtonHoldEnded:Connect(function(plr)
task.wait() -- yes otherwise it will insta kick
Holding[table.find(Holding, plr.Name)] = nil
end)
proximityPrompt.Triggered:Connect(function(plr)
if proximityPrompt:GetAttribute("IsSecurised") == true then
if not table.find(Holding, plr.Name) then
Callback(plr)
end
end
end)
proximityPrompt:GetPropertyChangedSignal("HoldDuration"):Connect(function()
CanDetect(proximityPrompt)
end) -- yes in case it change :p
end
end
end
- In Another Script
repeat task.wait() until _G.AntiFireProximityPrompt ~= nil
_G.AntiFireProximityPrompt(script.Parent, function(plr)
plr:kick("exploit detected : fireproximityprompt")
end)
- Using a module script (With the library) :
local module = require(<ModuleScript>)
module:AntiFireProximityPrompt(script.Parent, function(plr)
plr:kick("exploit detected : fireproximityprompt")
end)
Thanks for reading everything if you did it (hopefully you did it
- Honorable mension to @HlAMBACK he helped me fix my script and have a good AntiExploit (RoGuard)