local CoreGui = game:GetService("CoreGui") local HttpService = game:GetService("HttpService") -- [[ ANTI-BAN: Camuflagem de Nome Aleatório ]] local RandomName = "UI_" .. HttpService:GenerateGUID(false):gsub("-", ""):sub(1, 10) if CoreGui:FindFirstChildWhichIsA("ScreenGui") then local old = CoreGui:FindFirstChildWhichIsA("ScreenGui") if old.Name:find("UI_") or old.Name:find("GX") then old:Destroy() end end local GMX = Instance.new("ScreenGui", CoreGui) GMX.Name = RandomName GMX.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- 1. FRAME PRINCIPAL local Main = Instance.new("Frame", GMX) Main.Size = UDim2.new(0, 600, 0, 400) Main.Position = UDim2.new(0.5, -300, 0.5, -200) Main.BackgroundColor3 = Color3.fromRGB(12, 12, 15) Main.BorderSizePixel = 0 Main.Active = true; Main.Draggable = true Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 22) local Glow = Instance.new("UIStroke", Main); Glow.Thickness = 3; Glow.Color = Color3.fromRGB(0, 150, 255) -- 2. HEADER local Logo = Instance.new("Frame", Main) Logo.Size = UDim2.new(0, 40, 0, 40); Logo.Position = UDim2.new(0, 15, 0, 10) Logo.BackgroundColor3 = Color3.fromRGB(0, 120, 255); Instance.new("UICorner", Logo).CornerRadius = UDim.new(1,0) local LogoTxt = Instance.new("TextLabel", Logo); LogoTxt.Size = UDim2.new(1,0,1,0); LogoTxt.Text = "GX"; LogoTxt.TextColor3 = Color3.new(1,1,1); LogoTxt.Font = "GothamBold"; LogoTxt.BackgroundTransparency = 1; LogoTxt.TextSize = 14 local Title = Instance.new("TextLabel", Main) Title.Text = "GEMINI-X ULTIMATE"; Title.Position = UDim2.new(0, 65, 0, 12); Title.Size = UDim2.new(0, 200, 0, 40); Title.TextColor3 = Color3.new(1,1,1); Title.Font = "FredokaOne"; Title.TextSize = 20; Title.BackgroundTransparency = 1; Title.TextXAlignment = "Left" -- 3. ABAS local TabBar = Instance.new("Frame", Main); TabBar.Size = UDim2.new(1, -30, 0, 40); TabBar.Position = UDim2.new(0, 15, 0, 60); TabBar.BackgroundTransparency = 1 local TabLayout = Instance.new("UIListLayout", TabBar); TabLayout.FillDirection = "Horizontal"; TabLayout.Padding = UDim.new(0, 8) local function NewTab(name) local b = Instance.new("TextButton", TabBar) b.Size = UDim2.new(0, 110, 1, 0); b.BackgroundColor3 = Color3.fromRGB(20, 20, 25) b.Text = name; b.TextColor3 = Color3.new(1,1,1); b.Font = "GothamBold"; b.TextSize = 11; Instance.new("UICorner", b) return b end local bExec = NewTab("EXECUTOR") local bFiles = NewTab("FILES") local bCloud = NewTab("SCRIPTBLOX") -- 4. CONTAINER DE PÁGINAS local Pages = Instance.new("Frame", Main); Pages.Size = UDim2.new(1, -30, 1, -120); Pages.Position = UDim2.new(0, 15, 0, 110); Pages.BackgroundTransparency = 1 -- PÁGINA: EXECUTOR local pExec = Instance.new("Frame", Pages); pExec.Size = UDim2.new(1,0,1,0); pExec.BackgroundTransparency = 1 local Editor = Instance.new("TextBox", pExec); Editor.Size = UDim2.new(1,0,0.7,0); Editor.MultiLine = true; Editor.BackgroundColor3 = Color3.fromRGB(5,5,5) Editor.TextColor3 = Color3.fromRGB(0, 255, 180); Editor.Font = "Code"; Editor.Text = ""; Editor.TextXAlignment = "Left"; Editor.TextYAlignment = "Top"; Editor.ClearTextOnFocus = false; Instance.new("UICorner", Editor) local SaveInput = Instance.new("TextBox", pExec); SaveInput.Size = UDim2.new(0.65, 0, 0, 35); SaveInput.Position = UDim2.new(0,0,0.72,0); SaveInput.PlaceholderText = "Nome do script..."; SaveInput.BackgroundColor3 = Color3.fromRGB(20,20,25); SaveInput.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", SaveInput) local SaveBtn = Instance.new("TextButton", pExec); SaveBtn.Text = "SAVE"; SaveBtn.Size = UDim2.new(0.32, 0, 0, 35); SaveBtn.Position = UDim2.new(0.68,0,0.72,0); SaveBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 200); SaveBtn.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", SaveBtn) -- BOTÕES INFERIORES (EXECUTE & CLEAR) local RunBtn = Instance.new("TextButton", pExec); RunBtn.Text = "EXECUTE"; RunBtn.Size = UDim2.new(0.72, 0, 0, 40); RunBtn.Position = UDim2.new(0, 0, 0.88, 0); RunBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 255); RunBtn.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", RunBtn) local ClearBtn = Instance.new("TextButton", pExec); ClearBtn.Text = "CLEAR"; ClearBtn.Size = UDim2.new(0.25, 0, 0, 40); ClearBtn.Position = UDim2.new(0.75, 0, 0.88, 0); ClearBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 45); ClearBtn.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", ClearBtn) -- PÁGINA: FILES (AUTO-CANVAS) local pFiles = Instance.new("Frame", Pages); pFiles.Size = UDim2.new(1,0,1,0); pFiles.Visible = false; pFiles.BackgroundTransparency = 1 local FileScroll = Instance.new("ScrollingFrame", pFiles); FileScroll.Size = UDim2.new(1, 0, 1, 0); FileScroll.BackgroundTransparency = 1; FileScroll.ScrollBarThickness = 3 local FileList = Instance.new("UIListLayout", FileScroll); FileList.Padding = UDim.new(0, 6) FileList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() FileScroll.CanvasSize = UDim2.new(0, 0, 0, FileList.AbsoluteContentSize.Y + 10) end) -- PÁGINA: SCRIPTBLOX (AUTO-CANVAS) local pCloud = Instance.new("Frame", Pages); pCloud.Size = UDim2.new(1,0,1,0); pCloud.Visible = false; pCloud.BackgroundTransparency = 1 local SearchBox = Instance.new("TextBox", pCloud); SearchBox.Size = UDim2.new(0.7,0,0,35); SearchBox.PlaceholderText = "Buscar no ScriptBlox..."; SearchBox.BackgroundColor3 = Color3.fromRGB(20,20,25); SearchBox.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", SearchBox) local SearchBtn = Instance.new("TextButton", pCloud); SearchBtn.Text = "BUSCAR"; SearchBtn.Size = UDim2.new(0.28,0,0,35); SearchBtn.Position = UDim2.new(0.72,0,0,0); SearchBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 255); SearchBtn.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", SearchBtn) local CloudScroll = Instance.new("ScrollingFrame", pCloud); CloudScroll.Size = UDim2.new(1,0,0.85,0); CloudScroll.Position = UDim2.new(0,0,0.15,0); CloudScroll.BackgroundTransparency = 1; CloudScroll.ScrollBarThickness = 3 local CloudList = Instance.new("UIListLayout", CloudScroll); CloudList.Padding = UDim.new(0,6) CloudList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() CloudScroll.CanvasSize = UDim2.new(0,0,0, CloudList.AbsoluteContentSize.Y + 10) end) -- 5. LÓGICA local function RefreshFiles() for _, v in pairs(FileScroll:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end local files = (listfiles and listfiles("")) or {} for _, f in pairs(files) do if f:sub(-4) == ".lua" then local fFrame = Instance.new("Frame", FileScroll); fFrame.Size = UDim2.new(1, -10, 0, 45); fFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25); Instance.new("UICorner", fFrame) local fName = Instance.new("TextButton", fFrame); fName.Size = UDim2.new(0.8, 0, 1, 0); fName.Text = " 📂 " .. f; fName.TextColor3 = Color3.new(1,1,1); fName.TextXAlignment = "Left"; fName.BackgroundTransparency = 1; fName.Font = "GothamBold" local fDel = Instance.new("TextButton", fFrame); fDel.Size = UDim2.new(0.15, 0, 0.7, 0); fDel.Position = UDim2.new(0.82, 0, 0.15, 0); fDel.Text = "DEL"; fDel.BackgroundColor3 = Color3.fromRGB(200, 50, 50); fDel.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", fDel) fName.MouseButton1Click:Connect(function() Editor.Text = readfile(f); pFiles.Visible = false; pExec.Visible = true end) fDel.MouseButton1Click:Connect(function() if delfile then delfile(f) end RefreshFiles() end) end end end SearchBtn.MouseButton1Click:Connect(function() for _, v in pairs(CloudScroll:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end local url = "https://scriptblox.com/api/script/search?q="..SearchBox.Text:gsub(" ","%%20").."&mode=free&max=10" local s, res = pcall(function() return game:HttpGet(url) end) if s then local data = HttpService:JSONDecode(res) for _, sData in pairs(data.result.scripts) do local f = Instance.new("Frame", CloudScroll); f.Size = UDim2.new(1,-10,0,50); f.BackgroundColor3 = Color3.fromRGB(25,25,30); Instance.new("UICorner", f) local t = Instance.new("TextLabel", f); t.Size = UDim2.new(0.7,0,1,0); t.Position = UDim2.new(0,10,0,0); t.Text = sData.title; t.TextColor3 = Color3.new(1,1,1); t.TextXAlignment = "Left"; t.BackgroundTransparency = 1 local b = Instance.new("TextButton", f); b.Size = UDim2.new(0.2,0,0.7,0); b.Position = UDim2.new(0.75,0,0.15,0); b.Text = "GET"; b.BackgroundColor3 = Color3.fromRGB(0, 160, 255); b.TextColor3 = Color3.new(1,1,1); Instance.new("UICorner", b) b.MouseButton1Click:Connect(function() Editor.Text = sData.script; pCloud.Visible = false; pExec.Visible = true end) end end end) -- 6. BOTÃO GX (60px) local Min = Instance.new("TextButton", GMX); Min.Size = UDim2.new(0, 60, 0, 60); Min.Position = UDim2.new(0.5, -30, 0.05, 0); Min.Visible = false; Min.BackgroundColor3 = Color3.fromRGB(0, 120, 255); Min.Text = "GX"; Min.TextColor3 = Color3.new(1,1,1); Min.Font = "GothamBold"; Min.TextSize = 16; Instance.new("UICorner", Min).CornerRadius = UDim.new(1,0); Instance.new("UIStroke", Min).Thickness = 2; Instance.new("UIStroke", Min).Color = Color3.new(1,1,1) local X = Instance.new("TextButton", Main); X.Text = "X"; X.Size = UDim2.new(0,35,0,35); X.Position = UDim2.new(1,-45,0,10); X.BackgroundTransparency = 1; X.TextColor3 = Color3.new(1,1,1); X.TextSize = 20 -- EVENTOS SaveBtn.MouseButton1Click:Connect(function() if writefile and SaveInput.Text ~= "" then writefile(SaveInput.Text..".lua", Editor.Text) RefreshFiles() end end) RunBtn.MouseButton1Click:Connect(function() pcall(function() loadstring(Editor.Text)() end) end) ClearBtn.MouseButton1Click:Connect(function() Editor.Text = "" end) -- FUNÇÃO CLEAR X.MouseButton1Click:Connect(function() Main.Visible = false; Min.Visible = true end) Min.MouseButton1Click:Connect(function() Main.Visible = true; Min.Visible = false end) bExec.MouseButton1Click:Connect(function() pExec.Visible = true; pFiles.Visible = false; pCloud.Visible = false end) bFiles.MouseButton1Click:Connect(function() pExec.Visible = false; pFiles.Visible = true; pCloud.Visible = false; RefreshFiles() end) bCloud.MouseButton1Click:Connect(function() pExec.Visible = false; pFiles.Visible = false; pCloud.Visible = true end)