Ok so the gui flicks on the screen a few times and dissapears. Here is the scripting II used for it

game.ReplicatedStorage.ShowGUI.onClientEvent:Connect(function()
	script.Parent.Frame.Visible = not script.Parent.Frame.Visible
end)

This is to seperate the scripts

game.workspace.Shop.Touched:Connect(function(hit)
	if game.Players:GetPlayerFromCharacter(hit.Parent) then
		game.ReplicatedStorage.ShowGUI:FireClient (game.Players:GetPlayerFromCharacter(hit.Parent))
	end
end)