
Keyless

local guiName = "ScreenGui"
local player = game.Players.LocalPlayer
local gui = player.PlayerGui:FindFirstChild(guiName)
if not gui then
warn("you don't have GUI skid")
return
end
local function fixName(name)
name = name:gsub("%s+", "_")
name = name:gsub("[^%w_]", "")
if tonumber(name:sub(1,1)) then
name = "obj_"..name
end
return name
end
local function udim2(u)
return "UDim2.new("..u.X.Scale..","..u.X.Offset..","..u.Y.Scale..","..u.Y.Offset..")"
end
local function color3(c)
return "Color3.fromRGB("..
math.floor(c.R*255)..","..
math.floor(c.G*255)..","..
math.floor(c.B*255)..")"
end
local names = {}
local usedNames = {}
local descendants = gui:GetDescendants()
names[gui] = fixName(gui.Name)
usedNames[names[gui]] = true
for _, obj in ipairs(descendants) do
local base = fixName(obj.Name)
local var = base
local i = 1
while usedNames[var] do
var = base.."_"..i
i += 1
end
usedNames[var] = true
names[obj] = var
end
local output = "-- Gui to Lua\n" ..
"-- Version: 3.2\n\n" ..
"-- Instances:\n\n"
output = output .. "local " .. names[gui] .. " = Instance.new(\"ScreenGui\")\n"
for _, obj in ipairs(descendants) do
output = output .. "local " .. names[obj] .. " = Instance.new(\"" .. obj.ClassName .. "\")\n"
end
for _, obj in ipairs(descendants) do
for _, child in ipairs(obj:GetChildren()) do
if child:IsA("UIStroke") or child:IsA("UICorner") then
local childVar = names[obj].."_"..child.ClassName
output = output.."local "..childVar.." = Instance.new(\""..child.ClassName.."\")\n"
end
end
end
output = output .. "\n--Properties:\n\n"
output = output .. names[gui] .. ".Name = \"" .. gui.Name .. "\"\n"
output = output .. names[gui] .. ".Parent = game.Players.LocalPlayer:WaitForChild(\"PlayerGui\")\n"
output = output .. names[gui] .. ".ResetOnSpawn = false\n\n"
local mainFrameVar = nil
for _, obj in ipairs(descendants) do
if obj.Parent == gui and (obj:IsA("Frame") or obj:IsA("ScrollingFrame") or obj:IsA("CanvasGroup")) then
mainFrameVar = names[obj]
break
end
end
if mainFrameVar then
output = output .. "-- Drag Script:\n\n" ..
"local UserInputService = game:GetService(\"UserInputService\")\n" ..
"local dragging, dragInput, dragStart, startPos\n" ..
"local function update(input)\n" ..
" local delta = input.Position - dragStart\n" ..
" " .. mainFrameVar .. ".Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)\n" ..
"end\n" ..
mainFrameVar .. ".InputBegan:Connect(function(input)\n" ..
" if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then\n" ..
" dragging = true\n" ..
" dragStart = input.Position\n" ..
" startPos = " .. mainFrameVar .. ".Position\n" ..
" input.Changed:Connect(function()\n" ..
" if input.UserInputState == Enum.UserInputState.End then\n" ..
" dragging = false\n" ..
" end\n" ..
" end)\n" ..
" end\n" ..
"end)\n" ..
mainFrameVar .. ".InputChanged:Connect(function(input)\n" ..
" if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then\n" ..
" dragInput = input\n" ..
" end\n" ..
"end)\n" ..
"UserInputService.InputChanged:Connect(function(input)\n" ..
" if input == dragInput and dragging then\n" ..
" update(input)\n" ..
" end\n" ..
"end)\n\n"
end
local function convert(obj)
local var = names[obj]
if obj.Parent == gui then
output = output..var..".Parent = "..names[gui].."\n"
elseif names[obj.Parent] then
output = output..var..".Parent = "..names[obj.Parent].."\n"
else
output = output..var..".Parent = "..names[gui].."\n"
end
if obj:IsA("GuiObject") then
output = output..var..".Visible = "..tostring(obj.Visible).."\n"
output = output..var..".Size = "..udim2(obj.Size).."\n"
output = output..var..".Position = "..udim2(obj.Position).."\n"
output = output..var..".Rotation = "..obj.Rotation.."\n"
output = output..var..".BackgroundColor3 = "..color3(obj.BackgroundColor3).."\n"
output = output..var..".BackgroundTransparency = "..obj.BackgroundTransparency.."\n"
output = output..var..".BorderSizePixel = "..obj.BorderSizePixel.."\n"
output = output..var..".BorderColor3 = "..color3(obj.BorderColor3).."\n"
end
if obj:IsA("TextLabel") or obj:IsA("TextButton") or obj:IsA("TextBox") then
output = output..var..".Text = \""..obj.Text.."\"\n"
output = output..var..".TextColor3 = "..color3(obj.TextColor3).."\n"
output = output..var..".TextTransparency = "..obj.TextTransparency.."\n"
output = output..var..".TextSize = "..obj.TextSize.."\n"
output = output..var..".TextWrapped = "..tostring(obj.TextWrapped).."\n"
output = output..var..".TextScaled = "..tostring(obj.TextScaled).."\n"
output = output..var..".Font = Enum.Font."..tostring(obj.Font):gsub("Enum.Font.", "").."\n"
output = output..var..".TextXAlignment = Enum.TextXAlignment."..tostring(obj.TextXAlignment):gsub("Enum.TextXAlignment.", "").."\n"
output = output..var..".TextYAlignment = Enum.TextYAlignment."..tostring(obj.TextYAlignment):gsub("Enum.TextYAlignment.", "").."\n"
if obj:IsA("TextBox") then
output = output..var..".ClearTextOnFocus = "..tostring(obj.ClearTextOnFocus).."\n"
output = output..var..".MultiLine = "..tostring(obj.MultiLine).."\n"
end
end
if obj:IsA("ImageLabel") or obj:IsA("ImageButton") then
output = output..var..".Image = \""..obj.Image.."\"\n"
output = output..var..".ImageTransparency = "..obj.ImageTransparency.."\n"
output = output..var..".ImageRectOffset = Vector2.new("..obj.ImageRectOffset.X..","..obj.ImageRectOffset.Y..")\n"
output = output..var..".ImageRectSize = Vector2.new("..obj.ImageRectSize.X..","..obj.ImageRectSize.Y..")\n"
end
for _,child in ipairs(obj:GetChildren()) do
if child:IsA("UIStroke") then
local childVar = var.."_UIStroke"
output = output..childVar..".Parent = "..var.."\n"
output = output..childVar..".Color = "..color3(child.Color).."\n"
output = output..childVar..".Transparency = "..child.Transparency.."\n"
output = output..childVar..".Thickness = "..child.Thickness.."\n"
output = output..childVar..".ApplyStrokeMode = Enum.ApplyStrokeMode."..tostring(child.ApplyStrokeMode):gsub("Enum.ApplyStrokeMode.", "").."\n"
output = output..childVar..".LineJoinMode = Enum.LineJoinMode."..tostring(child.LineJoinMode):gsub("Enum.LineJoinMode.", "").."\n"
output = output..childVar..".Enabled = "..tostring(child.Enabled).."\n"
elseif child:IsA("UICorner") then
local childVar = var.."_UICorner"
output = output..childVar..".Parent = "..var.."\n"
output = output..childVar..".CornerRadius = UDim.new("..
child.CornerRadius.Scale..","..
child.CornerRadius.Offset..")\n"
end
end
if obj:IsA("TextButton") or obj:IsA("ImageButton") then
output = output..var..".MouseButton1Click:Connect(function()\n"
output = output.." print('"..var.." clicked')\n"
output = output.."end)\n"
end
output = output.."\n"
end
for _,v in ipairs(descendants) do
convert(v)
end
output = output .. "coroutine.wrap(SCXOHP_fake_script)()\n"
setclipboard(output)
print("GUI successfully converted!")No comments yet for this script.