Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

TextButton not working when clicked, Why?

Asked by 9 years ago

I am trying to make a text button when pressed print "working" to the console, but the button when pressed does nothing (in studio) and in a game the GUI does not even appear...

The script has been tried in StarterPack and StarterGui..

Making Gui:

--ScreenGui
local Screen = Instance.new("ScreenGui")
Screen.Parent =  game.StarterGui
--Frame
local Frame = Instance.new("Frame")
Frame.Parent = Screen
Frame.Size = UDim2.new(1,0,1,0)
Frame.BackgroundTransparency = 0.5
--Back
local Back = Instance.new("TextButton")
Back.Parent = Frame
Back.Name = "back"
Back.Text = "Back"
Back.Position = UDim2.new(0,0,0.1,0)
Back.Size = UDim2.new(0,50,0,50)

Functions (same script):

function onClick()
    print ("working")
end

Back.MouseButton1Click:connect(onClick)

1 answer

Log in to vote
1
Answered by 9 years ago

The problem is right here

local Screen = Instance.new("ScreenGui")
Screen.Parent =  game.StarterGui

That whole Gui is only going in StarterGui. That means that when you bind the input at

function onClick()
    print ("working")
end

Back.MouseButton1Click:connect(onClick)

you're only binding the input for the Gui in the StarterGui. Perhaps try adding it straight to the Player:

game.Players.PlayerAdded:connect(function(p)
p.CharacterAdded:connect(function(c)
--ScreenGui
local Screen = Instance.new("ScreenGui")
Screen.Parent =  p.PlayerGui
--Frame
local Frame = Instance.new("Frame")
Frame.Parent = Screen
Frame.Size = UDim2.new(1,0,1,0)
Frame.BackgroundTransparency = 0.5
--Back
local Back = Instance.new("TextButton")
Back.Parent = Frame
Back.Name = "back"
Back.Text = "Back"
Back.Position = UDim2.new(0,0,0.1,0)
Back.Size = UDim2.new(0,50,0,50)
Back.MouseButton1Click:connect(function()
    print ("working")
end)
end)
end)

That'll create the Gui inside of the Player every time they spawn.

Ad

Answer this question