Is it possible to check if a player has already clicked a button? Like if a player has already went through the Surface GUI and got something and then when they click it again they wouldn't be able to.
You could insert a BoolValue into the player (or the SurfaceGui but I'm not sure if this is a good idea) to check if the button has been clicked before. http://wiki.roblox.com/index.php?title=API:Class/BoolValue
The best way to do this would be to place the surfacegui into StarterGui. That way, you can track which player clicked it. An example:
LocalScript inside surfacegui:
script.Parent.Adornee = workspace.GuiPartExample
Then, to check if the player has already clicked it, you can insert a value into the player! Example inside a localscript:
local plr = game.Players.LocalPlayer script.Parent.Button.MouseButton1Down:connect(function() if not plr:FindFirstChild('ClickedButton') then -- do stuff local value = Instance.new('BoolValue',plr) value.Name = 'ClickedButton' end)