I have a script inside a button that created a gui for the player:
local exists = false
script.Parent.MouseButton1Click:Connect(function()
local JobPanel
if not exists then
exists = true
JobPanel = Instance.new("Frame", script.Parent.Parent.Parent.Parent)
JobPanel.BackgroundTransparency = 1
JobPanel.Name = "Job Panel"
JobPanel.AnchorPoint = Vector2.new(0.5, 0.5)
JobPanel.Position = UDim2.new(0.5,0,0.5,0)
JobPanel.Size = UDim2.new(0,800,0,450)
local Title = Instance.new("TextLabel", JobPanel)
Title.BackgroundColor3 = Color3.new(255,255,255)
Title.Size = UDim2.new(0,750,0,30)
Title.Text = "Job Menu"
Title.TextScaled = true
local Close = Instance.new("TextButton", JobPanel)
Close.BackgroundColor3 = Color3.new(255,53,53)
Close.Position = UDim2.new(0.938,0,0,0)
Close.Size = UDim2.new(0,50,0,30)
Close.Text = "Close"
Close.MouseButton1Click:Connect(function()
JobPanel:Destroy()
exists = false
end)
local JobFrame = Instance.new("ScrollingFrame", JobPanel)
JobFrame.Position = UDim2.new(0,0,0.067,0)
JobFrame.Size = UDim2.new(0,600,0,420)
JobFrame.ScrollBarThickness = 3
local JobInfo = Instance.new("Frame", JobPanel)
JobInfo.Position = UDim2.new(0.75,0,0.067,0)
JobInfo.Size = UDim2.new(0,200,0,420)
local selectAJob = Instance.new("TextLabel", JobInfo)
selectAJob.Position = UDim2.new(-0.002,0,0,0)
selectAJob.Size = UDim2.new(0,200,0,50)
selectAJob.Text = "Select a job."
end
end)
Is it efficient to just create new instances like that or should I be doing something else?

2 comments
anything but this
?