Proximity Prompt gets triggered even if disabled

So I thought of a small experiment on proximity prompt. Here is what I did :

Created a part and added proximity prompt inside it. The Enabled property is OFF

  1. I put a server script in server script service. Code :
local PP = workspace.Part.ProximityPrompt


PP.Triggered:Connect(function(plr)
	print("ASDASDASDASD")
end)
  1. Now in the local script located at StarterPlayerScripts, I put this code :
local PP = workspace:WaitForChild('Part').ProximityPrompt
task.wait(5)
PP.Enabled = true


PP.Triggered:Connect(function(plr)
	print("LOCAL_ASDASDASDASD")
end)
  1. Now I tested the game and after 5 seconds, the proximity prompt was enabled for that client (still disabled on server). When I interact or triggered the proximity prompt. I got this output :
    image

Why is server getting notified ? Since it is disabled for server but enabled locally on clients. So the local print statement should only be shown. But in this case, both client and server output is displayed.

Plus this may or may not be in wrong category, idk. I apologize in advance for that so correct me if I did any mistake here.

proximity prompts are client driven, similar to ClickDetectors, tool activation, user input, etc

yes this makes it very exploitable, and yes exploiters also have included this in their arsenal :face_exhaling:

so usually you should do this in serverscripts:

PP.Triggered:Connect(function(player)
    if not someServerCondition then --condition to be met
        return
    end
end)
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.