Fire a remote event to a local script. The local script should make the frame visible, since doing it on the server will make it happen on everyone who is in game.
Thats because you need to check whether the part is being touched by a player instead of another part. This can be easily achieved by an if statement checking for a humanoid:
if hit.Parent:FindFirstChild("Humanoid") then
--rest of code
end