script.Parent.ClickDetector.MouseClick:connect(function()
if script.Parent.SurfaceGui.TextLabel.Text == "______'s Creation Station" then
local clicker = game.Players.LocalPlayer.Name
script.Parent.SurfaceGui.TextLabel.Text = clicker.."'s Creation Station"
elseif
script.Parent.SurfaceGui.TextLabel.Text ~= "______'s Creation Station" then
local gui = game.ServerStorage.alreadyClaimedGui:clone()
gui.Parent = game.Players.LocalPlayer.PlayerGui
gui.TextLabel:TweenPosition(UDim2.new(0.3,0,0.2,0), 'Out', 'Elastic', 2)
wait(3)
gui:Remove()
end
end)
Script above is in a normal script, parent tree looks like game>workspace>signTop>clickToClaim(this script)
It works perfectly fine in studio test mode, but whenever I load into a test server or into a real server, it doesn't work and I can't figure out why.

6 comments
This is a roblox bug... Gui text changing with scripts messes it up for some reason I have the same issue with a leaderstat gui!
A roblox bug, as in there's no way for me to fix it myself?
I don't think it's a roblox bug,While playing your game open Developer Console(press F9) and goto server log, and say what error it's showing?
Workspace.signTop.clickToClaim:3: attempt to index a field 'LocalPlayer' (a nil value)
as far i think local scripts can't access ServerStorage.
wait is your script normal script?