Are you tired of making beautiful UIs to realize that it was better to use a text button instead of an image button, well I have the solution with this completely free plugin. You can convert all UI elements, their texts, images and even their attributes… Select the elements to convert (you can select several) and with the plugin menu, you can convert the selected elements super easily
You will find the plugin here :https://create.roblox.com/store/asset/17745253067
If you want i will also give you the source code :
---------------------- Variables ----------------------
local selection = game:GetService("Selection")
local CHS = game:GetService("ChangeHistoryService")
local toolbar = plugin:CreateToolbar("UI Convertion Menu")
local button = toolbar:CreateButton("UI Convertion", "Open/Close the converter menu", "rbxassetid://17745027478")
local menu = plugin:CreatePluginMenu("UI Conversion Menu", "Select a conversion type", "rbxassetid://17745027478")
local button1 = menu:AddNewAction("Convert to \"Frame\"","Convert to \"Frame\"", "rbxassetid://17743111518")
local button2 = menu:AddNewAction("Convert to \"TextLabel\"", "Convert to \"TextLabel\"", "rbxassetid://17743125741")
local button3 = menu:AddNewAction("Convert to \"ImageLabel\"", "Convert to \"ImageLabel\"", "rbxassetid://17743268042")
local button4 = menu:AddNewAction("Convert to \"TextButton\"", "Convert to \"TextButton\"", "rbxassetid://17743272279")
local button5 = menu:AddNewAction("Convert to \"ImageButton\"", "Convert to \"ImageButton\"", "rbxassetid://17743278198")
local button6 = menu:AddNewAction("Convert to \"TextBox\"", "Convert to \"TextBox\"", "rbxassetid://17743280235")
local button7 = menu:AddNewAction("Convert to \"ScrollingFrame\"", "Convert to \"ScrollingFrame\"", "rbxassetid://17743313709")
---------------------- Function ----------------------
local function convert(what)
local selected, v = {}, 0
for i, ui in ipairs(selection:Get()) do
if ui:IsA("Frame") or ui:IsA("TextLabel") or ui:IsA("ImageLabel")
or ui:IsA("TextButton") or ui:IsA("ImageButton") or ui:IsA("TextBox") or ui:IsA("ScrollingFrame") then
v += 1 if v == 1 then CHS:SetWaypoint("UI Convertion button pressed") end
local new = Instance.new(what, ui.Parent)
--Values
new.Archivable = ui.Archivable
new.Active = ui.Active
new.AnchorPoint = ui.AnchorPoint
new.AutomaticSize = ui.AutomaticSize
new.BackgroundColor3 = ui.BackgroundColor3
new.BackgroundTransparency = ui.BackgroundTransparency
new.BorderColor3 = ui.BorderColor3
new.BorderMode = ui.BorderMode
new.BorderSizePixel = ui.BorderSizePixel
new.Interactable = ui.Interactable
new.LayoutOrder = ui.LayoutOrder
new.Name = ui.Name
new.Position = ui.Position
new.Rotation = ui.Rotation
new.Size = ui.Size
new.SizeConstraint = ui.SizeConstraint
new.Visible = ui.Visible
new.ZIndex = ui.ZIndex
new.AutoLocalize = ui.AutoLocalize
new.RootLocalizationTable = ui.RootLocalizationTable
new.NextSelectionDown = ui.NextSelectionDown
new.NextSelectionLeft = ui.NextSelectionLeft
new.NextSelectionUp = ui.NextSelectionUp
new.NextSelectionRight = ui.NextSelectionRight
new.Selectable = ui.Selectable
new.SelectionGroup = ui.SelectionGroup
new.SelectionOrder = ui.SelectionOrder
for i, tag in ui:GetTags() do new:AddTag(tag) end
for key, att in ui:GetAttributes() do new:SetAttribute(i, att) end
for i, child in ui:GetChildren() do child.Parent = new end
--Check for textLabels
if (what == "TextLabel" or what == "TextButton" or what == "TextBox")
and (ui:IsA("TextBox") or ui:IsA("TextLabel") or ui:IsA("TextButton")) then
new.FontFace = ui.FontFace
new.LineHeight = ui.LineHeight
new.MaxVisibleGraphemes = ui.MaxVisibleGraphemes
new.RichText = ui.RichText
new.Text = ui.Text
new.TextColor3 = ui.TextColor3
new.TextDirection = ui.TextDirection
new.TextScaled = ui.TextScaled
new.TextSize = ui.TextSize
new.TextStrokeColor3 = ui.TextStrokeColor3
new.TextStrokeTransparency = ui.TextStrokeTransparency
new.TextTransparency = ui.TextTransparency
new.TextTruncate = ui.TextTruncate
new.TextWrapped = ui.TextWrapped
new.TextXAlignment = ui.TextXAlignment
new.TextYAlignment = ui.TextYAlignment
elseif not (ui:IsA("TextBox") or ui:IsA("TextLabel") or ui:IsA("TextButton"))
and (what == "TextLabel" or what == "TextButton" or what == "TextBox") then
new.Text = ""
end
--Check for Images
if (what == "ImageLabel" or what == "ImageButton")
and (ui:IsA("ImageLabel") or ui:IsA("ImageButton")) then
new.Image = ui.Image
new.ImageColor3 = ui.ImageColor3
new.ImageRectOffset = ui.ImageRectOffset
new.ImageRectSize = ui.ImageRectSize
new.ImageTransparency = ui.ImageTransparency
new.ResampleMode = ui.ResampleMode
new.ScaleType = ui.ScaleType
end
ui.Parent = nil
table.insert(selected, new)
end
selection:Set(selected)
if v > 0 then CHS:SetWaypoint("UI Convertion done!") end
end
end
---------------------- Buttons Actions ----------------------
button.Click:Connect(function() menu:ShowAsync() end)
button1.Triggered:Connect(function() convert("Frame") end)
button2.Triggered:Connect(function() convert("TextLabel") end)
button3.Triggered:Connect(function() convert("ImageLabel") end)
button4.Triggered:Connect(function() convert("TextButton") end)
button5.Triggered:Connect(function() convert("ImageButton") end)
button6.Triggered:Connect(function() convert("TextBox") end)
button7.Triggered:Connect(function() convert("ScrollingFrame") end)