This is so funny because I’ve had to deal with the same problem today. Fortunately I found a solution!
In a local script, you want to detect anything that enters the player’s rootpart and disable it locally, meaning it appears disabled only to the player. Put this in StarterPlayerScripts and you’re good to go.
--< Services
local PlayerService = game:GetService('Players')
--< Variables
local Player = PlayerService.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:wait()
local rootPart = Character:WaitForChild("HumanoidRootPart")
rootPart.ChildAdded:Connect(function(item)
wait() -- the wait here IS IMPORTANT!
if item:IsA("ProximityPrompt") then
item.Enabled = false
end
end)