So it might be the promixty prompt hasn’t be replicated to the client i suggest to either addibg a task.wait(1) ir use :waitforchild but task.wait is better because it will not yeild
Local scripts do not work in workspaces. Replace the local script with a script and copy the local script’s code to the script.
ProximityPrompt also has it’s Player variable in the triggered event. You can use the Player variable to show the ScreenGui or you could make a remote event that has it’s StarterPlayerScripts LocalScript and fire it when the proximity prompt is triggered.
Can we see your explorer? Do you happen to have another object named ProximityPrompt in the PromptPart? There’s a possibility that you just duplicated the ProximityPrompt instance and the ProximityPrompt variable in your code is choosing one of the two, which would explain why it only works some of the times.