It's been a while since I've scripted using GUI's and I seem to be having a problem. I'm trying to make a new Menu gui for my game and I can't seem to get the ServerScript to work w/ any of the buttons. The way the Menu works is, each section is it's own Frame, so I have multiple frames in one gui, and I want to use one script per frame for all the different buttons. Here's the first script for loading and starting a new game:
frame = script.Parent
gui = frame.Parent
pgui = gui.Parent
player = pgui.Parent
New = frame.New
Load = frame.Load
Data = player.Data
enabled = true
function NewGame()
if enabled == true then
enabled = false
for i,v in pairs(Data:GetChildren()) do
if v:IsA("StringValue") then
v.Value = "Blank"
elseif v:ISA("NumberValue") then
v.Value = 0
end
end
gui.Menu.Visible = false
wait(0.5)
gui.Chakras.Visible = true
end
wait(0.2)
enabled = true
end
function LoadGame()
if enabled == true then
enabled = false
wait(0.2)
enabled = true
end
end
New.MouseButton1Click:connect(NewGame)
Load.MouseButton1Click:connect(LoadGame)
I've tried switching to LocalScript and it works just fine, however I want to avoid using LocalScripts if possible, any advice?

2 comments
Are you using FilteringEnabled? Input-driven events don't work on regular Scripts when FilteringEnabled is on.
Avoiding the use LocalScripts for things that only affect the client is typically considered bad practice. Why do you want to avoid them exactly?