I have encountered this problem before. The problem I'm facing is whenever I click on the part with a ClickDetector, the GUI shows up on every player's screen instead of the player who clicked it. This inside of a LocalScript and StarterGui.
shop = game.Players.LocalPlayer.PlayerGui.Shop
frame = shop:WaitForChild("Frame")
exitButton = frame:WaitForChild("ExitShop")
Player = game.Players.LocalPlayer
Alexis = game.workspace.Alexis
Clicker = Alexis.Torso:WaitForChild("ClickDetector")
ShopSound = shop:WaitForChild("ShopSound")
--------------------
Clicker.MouseClick:connect(function(playerWhoClicked)
ShopSound:Play()
frame:TweenPosition(UDim2.new(0.5,-250,0.5,-200), "In", "Quint", 0.35, true)
Player.DevComputerMovementMode = "Scriptable"
end)
--Do stuff when the exit button is clicked
exitButton.MouseButton1Down:connect(function()
ShopSound:Play()
frame:TweenPosition(UDim2.new(0.5,-250,0.5,300), "Out", "Quint", 0.35, true)
--Give control back to the player
Player.DevComputerMovementMode = "UserChoice"
end)

1 comment
This does not have anything on cloning the Gui into a player. Since it's in a LocalScript, this should not affect anyone else. Bad question. Also, use the playerWhoClicked if you're gonna define it.