-- Linux Executor v2.0 | Client-Side | Mobile Support -- Full-featured executor UI with animations -- Services local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local HttpService = game:GetService("HttpService") local Player = Players.LocalPlayer local PlayerGui = Player:WaitForChild("PlayerGui") -- Detect Mobile local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled -- Remove existing UI if re-executed if PlayerGui:FindFirstChild("LinuxExecutor") then PlayerGui:FindFirstChild("LinuxExecutor"):Destroy() end -- ═══════════════════════════════════════════ -- THEME CONFIG -- ═══════════════════════════════════════════ local Theme = { Background = Color3.fromRGB(18, 18, 24), TopBar = Color3.fromRGB(12, 12, 18), Sidebar = Color3.fromRGB(22, 22, 30), Editor = Color3.fromRGB(25, 25, 35), EditorLineBar = Color3.fromRGB(20, 20, 28), Accent = Color3.fromRGB(0, 180, 120), AccentHover = Color3.fromRGB(0, 210, 140), AccentDark = Color3.fromRGB(0, 140, 95), Text = Color3.fromRGB(220, 220, 230), TextDim = Color3.fromRGB(130, 130, 150), TextLineNum = Color3.fromRGB(80, 80, 110), ButtonBG = Color3.fromRGB(35, 35, 50), ButtonHover = Color3.fromRGB(45, 45, 65), TabActive = Color3.fromRGB(0, 180, 120), TabInactive = Color3.fromRGB(35, 35, 50), Console = Color3.fromRGB(20, 20, 28), ConsoleText = Color3.fromRGB(0, 200, 130), Error = Color3.fromRGB(255, 80, 80), Warning = Color3.fromRGB(255, 200, 50), Border = Color3.fromRGB(40, 40, 55), ScrollBar = Color3.fromRGB(0, 150, 100), Close = Color3.fromRGB(255, 60, 60), Minimize = Color3.fromRGB(255, 190, 50), Maximize = Color3.fromRGB(0, 200, 80), } -- ═══════════════════════════════════════════ -- UTILITY FUNCTIONS -- ═══════════════════════════════════════════ local function CreateCorner(parent, radius) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, radius or 8) corner.Parent = parent return corner end local function CreateStroke(parent, color, thickness) local stroke = Instance.new("UIStroke") stroke.Color = color or Theme.Border stroke.Thickness = thickness or 1 stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Parent = parent return stroke end local function CreateShadow(parent) local shadow = Instance.new("ImageLabel") shadow.Name = "Shadow" shadow.BackgroundTransparency = 1 shadow.Image = "rbxassetid://5554236805" shadow.ImageColor3 = Color3.fromRGB(0, 0, 0) shadow.ImageTransparency = 0.5 shadow.ScaleType = Enum.ScaleType.Slice shadow.SliceCenter = Rect.new(23, 23, 277, 277) shadow.Size = UDim2.new(1, 30, 1, 30) shadow.Position = UDim2.new(0, -15, 0, -15) shadow.ZIndex = parent.ZIndex - 1 shadow.Parent = parent return shadow end local function Tween(obj, props, duration, style, direction) local tween = TweenService:Create(obj, TweenInfo.new( duration or 0.3, style or Enum.EasingStyle.Quint, direction or Enum.EasingDirection.Out ), props) tween:Play() return tween end local function RippleEffect(button, x, y) local ripple = Instance.new("Frame") ripple.Name = "Ripple" ripple.BackgroundColor3 = Color3.fromRGB(255, 255, 255) ripple.BackgroundTransparency = 0.7 ripple.BorderSizePixel = 0 ripple.ZIndex = button.ZIndex + 5 ripple.AnchorPoint = Vector2.new(0.5, 0.5) local absPos = button.AbsolutePosition local posX = x - absPos.X local posY = y - absPos.Y ripple.Position = UDim2.new(0, posX, 0, posY) ripple.Size = UDim2.new(0, 0, 0, 0) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(1, 0) corner.Parent = ripple ripple.Parent = button local maxSize = math.max(button.AbsoluteSize.X, button.AbsoluteSize.Y) * 2.5 Tween(ripple, {Size = UDim2.new(0, maxSize, 0, maxSize), BackgroundTransparency = 1}, 0.6) task.delay(0.6, function() ripple:Destroy() end) end local function CreateButton(parent, text, size, position, color, callback) local btn = Instance.new("TextButton") btn.Name = text .. "Button" btn.Size = size btn.Position = position btn.BackgroundColor3 = color or Theme.ButtonBG btn.Text = "" btn.AutoButtonColor = false btn.BorderSizePixel = 0 btn.ClipsDescendants = true btn.Parent = parent CreateCorner(btn, 6) local label = Instance.new("TextLabel") label.Name = "Label" label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Theme.Text label.Font = Enum.Font.GothamBold label.TextSize = isMobile and 13 or 14 label.ZIndex = btn.ZIndex + 1 label.Parent = btn btn.MouseEnter:Connect(function() Tween(btn, {BackgroundColor3 = (color and Color3.fromRGB( math.min(color.R * 255 + 20, 255), math.min(color.G * 255 + 20, 255), math.min(color.B * 255 + 20, 255) )) or Theme.ButtonHover}, 0.2) end) btn.MouseLeave:Connect(function() Tween(btn, {BackgroundColor3 = color or Theme.ButtonBG}, 0.2) end) btn.MouseButton1Click:Connect(function() local mouse = UserInputService:GetMouseLocation() RippleEffect(btn, mouse.X, mouse.Y) if callback then callback() end end) return btn end -- ═══════════════════════════════════════════ -- MAIN SCREEN GUI -- ═══════════════════════════════════════════ local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "LinuxExecutor" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.DisplayOrder = 100 ScreenGui.IgnoreGuiInset = true ScreenGui.Parent = PlayerGui -- ═══════════════════════════════════════════ -- MAIN FRAME -- ═══════════════════════════════════════════ local mainWidth = isMobile and 370 or 680 local mainHeight = isMobile and 420 or 480 local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, mainWidth, 0, mainHeight) MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0) MainFrame.AnchorPoint = Vector2.new(0.5, 0.5) MainFrame.BackgroundColor3 = Theme.Background MainFrame.BorderSizePixel = 0 MainFrame.ClipsDescendants = true MainFrame.Parent = ScreenGui CreateCorner(MainFrame, 12) CreateStroke(MainFrame, Theme.Border, 1) CreateShadow(MainFrame) -- ═══════════════════════════════════════════ -- OPEN ANIMATION -- ═══════════════════════════════════════════ MainFrame.Size = UDim2.new(0, 0, 0, 0) MainFrame.BackgroundTransparency = 1 MainFrame.Rotation = -5 Tween(MainFrame, { Size = UDim2.new(0, mainWidth, 0, mainHeight), BackgroundTransparency = 0, Rotation = 0 }, 0.5, Enum.EasingStyle.Back) -- ═══════════════════════════════════════════ -- TOP BAR -- ═══════════════════════════════════════════ local TopBar = Instance.new("Frame") TopBar.Name = "TopBar" TopBar.Size = UDim2.new(1, 0, 0, 36) TopBar.BackgroundColor3 = Theme.TopBar TopBar.BorderSizePixel = 0 TopBar.Parent = MainFrame CreateCorner(TopBar, 12) -- Bottom cover for TopBar corners local TopBarCover = Instance.new("Frame") TopBarCover.Size = UDim2.new(1, 0, 0, 14) TopBarCover.Position = UDim2.new(0, 0, 1, -14) TopBarCover.BackgroundColor3 = Theme.TopBar TopBarCover.BorderSizePixel = 0 TopBarCover.Parent = TopBar -- Title with Glow local TitleLabel = Instance.new("TextLabel") TitleLabel.Name = "Title" TitleLabel.Size = UDim2.new(0, 200, 1, 0) TitleLabel.Position = UDim2.new(0, 14, 0, 0) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "🐧 Linux" TitleLabel.TextColor3 = Theme.Accent TitleLabel.Font = Enum.Font.GothamBold TitleLabel.TextSize = 16 TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.Parent = TopBar local VersionLabel = Instance.new("TextLabel") VersionLabel.Size = UDim2.new(0, 60, 1, 0) VersionLabel.Position = UDim2.new(0, isMobile and 95 or 105, 0, 0) VersionLabel.BackgroundTransparency = 1 VersionLabel.Text = "v2.0" VersionLabel.TextColor3 = Theme.TextDim VersionLabel.Font = Enum.Font.Gotham VersionLabel.TextSize = 11 VersionLabel.TextXAlignment = Enum.TextXAlignment.Left VersionLabel.Parent = TopBar -- Title glow animation spawn(function() while MainFrame and MainFrame.Parent do Tween(TitleLabel, {TextColor3 = Theme.AccentHover}, 1.5) task.wait(1.5) Tween(TitleLabel, {TextColor3 = Theme.Accent}, 1.5) task.wait(1.5) end end) -- ═══════════════════════════════════════════ -- WINDOW CONTROLS (Close, Minimize, Maximize) -- ═══════════════════════════════════════════ local function CreateWindowBtn(name, color, posOffset, callback) local btn = Instance.new("TextButton") btn.Name = name btn.Size = UDim2.new(0, 20, 0, 20) btn.Position = UDim2.new(1, posOffset, 0.5, -10) btn.BackgroundColor3 = color btn.Text = "" btn.AutoButtonColor = false btn.BorderSizePixel = 0 btn.Parent = TopBar CreateCorner(btn, 10) btn.MouseEnter:Connect(function() Tween(btn, {Size = UDim2.new(0, 24, 0, 24), Position = UDim2.new(1, posOffset - 2, 0.5, -12)}, 0.15) end) btn.MouseLeave:Connect(function() Tween(btn, {Size = UDim2.new(0, 20, 0, 20), Position = UDim2.new(1, posOffset, 0.5, -10)}, 0.15) end) btn.MouseButton1Click:Connect(callback) return btn end local isMinimized = false local savedSize -- Close Button CreateWindowBtn("Close", Theme.Close, -34, function() Tween(MainFrame, { Size = UDim2.new(0, 0, 0, 0), BackgroundTransparency = 1, Rotation = 5 }, 0.4, Enum.EasingStyle.Back, Enum.EasingDirection.In) task.wait(0.4) ScreenGui:Destroy() end) -- Minimize Button CreateWindowBtn("Minimize", Theme.Minimize, -60, function() if isMinimized then Tween(MainFrame, {Size = savedSize}, 0.3, Enum.EasingStyle.Back) isMinimized = false else savedSize = MainFrame.Size Tween(MainFrame, {Size = UDim2.new(0, mainWidth, 0, 36)}, 0.3, Enum.EasingStyle.Quint) isMinimized = true end end) -- Maximize / Restore local isMaximized = false CreateWindowBtn("Maximize", Theme.Maximize, -86, function() if isMaximized then Tween(MainFrame, {Size = UDim2.new(0, mainWidth, 0, mainHeight)}, 0.3, Enum.EasingStyle.Back) isMaximized = false else Tween(MainFrame, {Size = UDim2.new(1, -20, 1, -20)}, 0.3, Enum.EasingStyle.Back) isMaximized = true end end) -- ═══════════════════════════════════════════ -- DRAGGING -- ═══════════════════════════════════════════ local dragging, dragInput, dragStart, startPos TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) TopBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart MainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- ═══════════════════════════════════════════ -- TAB SYSTEM -- ═══════════════════════════════════════════ local TabBar = Instance.new("Frame") TabBar.Name = "TabBar" TabBar.Size = UDim2.new(1, 0, 0, 34) TabBar.Position = UDim2.new(0, 0, 0, 36) TabBar.BackgroundColor3 = Theme.Sidebar TabBar.BorderSizePixel = 0 TabBar.Parent = MainFrame local TabBarLayout = Instance.new("UIListLayout") TabBarLayout.FillDirection = Enum.FillDirection.Horizontal TabBarLayout.Padding = UDim.new(0, 2) TabBarLayout.SortOrder = Enum.SortOrder.LayoutOrder TabBarLayout.Parent = TabBar local TabBarPadding = Instance.new("UIPadding") TabBarPadding.PaddingLeft = UDim.new(0, 8) TabBarPadding.PaddingTop = UDim.new(0, 4) TabBarPadding.Parent = TabBar -- Tab Pages Container local TabPages = Instance.new("Frame") TabPages.Name = "TabPages" TabPages.Size = UDim2.new(1, 0, 1, -70) TabPages.Position = UDim2.new(0, 0, 0, 70) TabPages.BackgroundTransparency = 1 TabPages.BorderSizePixel = 0 TabPages.ClipsDescendants = true TabPages.Parent = MainFrame local tabs = {} local currentTab = nil local function CreateTab(name, icon, layoutOrder) local tabBtn = Instance.new("TextButton") tabBtn.Name = name .. "Tab" tabBtn.Size = UDim2.new(0, isMobile and 62 or 80, 0, 26) tabBtn.BackgroundColor3 = Theme.TabInactive tabBtn.Text = "" tabBtn.AutoButtonColor = false tabBtn.BorderSizePixel = 0 tabBtn.LayoutOrder = layoutOrder tabBtn.ClipsDescendants = true tabBtn.Parent = TabBar CreateCorner(tabBtn, 6) local tabLabel = Instance.new("TextLabel") tabLabel.Size = UDim2.new(1, 0, 1, 0) tabLabel.BackgroundTransparency = 1 tabLabel.Text = (icon and (icon .. " ") or "") .. name tabLabel.TextColor3 = Theme.TextDim tabLabel.Font = Enum.Font.GothamBold tabLabel.TextSize = isMobile and 11 or 12 tabLabel.Parent = tabBtn -- Indicator line local indicator = Instance.new("Frame") indicator.Name = "Indicator" indicator.Size = UDim2.new(0, 0, 0, 2) indicator.Position = UDim2.new(0.5, 0, 1, -2) indicator.AnchorPoint = Vector2.new(0.5, 0) indicator.BackgroundColor3 = Theme.Accent indicator.BorderSizePixel = 0 indicator.Parent = tabBtn CreateCorner(indicator, 1) local page = Instance.new("Frame") page.Name = name .. "Page" page.Size = UDim2.new(1, 0, 1, 0) page.BackgroundTransparency = 1 page.BorderSizePixel = 0 page.Visible = false page.Parent = TabPages tabs[name] = {Button = tabBtn, Label = tabLabel, Page = page, Indicator = indicator} tabBtn.MouseButton1Click:Connect(function() local mouse = UserInputService:GetMouseLocation() RippleEffect(tabBtn, mouse.X, mouse.Y) -- Switch tabs for tName, tData in pairs(tabs) do if tName == name then Tween(tData.Button, {BackgroundColor3 = Theme.TabActive}, 0.2) Tween(tData.Label, {TextColor3 = Color3.fromRGB(255, 255, 255)}, 0.2) Tween(tData.Indicator, {Size = UDim2.new(0.6, 0, 0, 2)}, 0.3, Enum.EasingStyle.Back) tData.Page.Visible = true -- Fade in for _, child in pairs(tData.Page:GetChildren()) do if child:IsA("GuiObject") then child.BackgroundTransparency = 1 Tween(child, {BackgroundTransparency = child:GetAttribute("OrigTransparency") or 0}, 0.3) end end else Tween(tData.Button, {BackgroundColor3 = Theme.TabInactive}, 0.2) Tween(tData.Label, {TextColor3 = Theme.TextDim}, 0.2) Tween(tData.Indicator, {Size = UDim2.new(0, 0, 0, 2)}, 0.2) tData.Page.Visible = false end end currentTab = name end) return page end -- Create Tabs local editorPage = CreateTab("Editor", "📝", 1) local consolePage = CreateTab("Console", "💻", 2) local settingsPage = CreateTab("Settings", "⚙", 3) local infoPage = CreateTab("Info", "ℹ", 4) local morePage = CreateTab("More", "📦", 5) -- ═══════════════════════════════════════════ -- EDITOR PAGE -- ═══════════════════════════════════════════ -- Editor Container local EditorContainer = Instance.new("Frame") EditorContainer.Name = "EditorContainer" EditorContainer.Size = UDim2.new(1, -16, 1, -56) EditorContainer.Position = UDim2.new(0, 8, 0, 4) EditorContainer.BackgroundColor3 = Theme.Editor EditorContainer.BorderSizePixel = 0 EditorContainer.ClipsDescendants = true EditorContainer.Parent = editorPage CreateCorner(EditorContainer, 8) CreateStroke(EditorContainer, Theme.Border, 1) -- Line Numbers local LineNumberFrame = Instance.new("Frame") LineNumberFrame.Name = "LineNumbers" LineNumberFrame.Size = UDim2.new(0, 45, 1, 0) LineNumberFrame.BackgroundColor3 = Theme.EditorLineBar LineNumberFrame.BorderSizePixel = 0 LineNumberFrame.ClipsDescendants = true LineNumberFrame.Parent = EditorContainer CreateCorner(LineNumberFrame, 8) local LineNumCover = Instance.new("Frame") LineNumCover.Size = UDim2.new(0, 10, 1, 0) LineNumCover.Position = UDim2.new(1, -10, 0, 0) LineNumCover.BackgroundColor3 = Theme.EditorLineBar LineNumCover.BorderSizePixel = 0 LineNumCover.Parent = LineNumberFrame local LineNumberLabel = Instance.new("TextLabel") LineNumberLabel.Name = "Lines" LineNumberLabel.Size = UDim2.new(1, -8, 1, 0) LineNumberLabel.Position = UDim2.new(0, 4, 0, 0) LineNumberLabel.BackgroundTransparency = 1 LineNumberLabel.Text = "1" LineNumberLabel.TextColor3 = Theme.TextLineNum LineNumberLabel.Font = Enum.Font.Code LineNumberLabel.TextSize = isMobile and 12 or 14 LineNumberLabel.TextXAlignment = Enum.TextXAlignment.Right LineNumberLabel.TextYAlignment = Enum.TextYAlignment.Top LineNumberLabel.RichText = true LineNumberLabel.Parent = LineNumberFrame -- Script Editor (Scrolling) local EditorScroll = Instance.new("ScrollingFrame") EditorScroll.Name = "EditorScroll" EditorScroll.Size = UDim2.new(1, -50, 1, 0) EditorScroll.Position = UDim2.new(0, 48, 0, 0) EditorScroll.BackgroundTransparency = 1 EditorScroll.BorderSizePixel = 0 EditorScroll.ScrollBarThickness = 4 EditorScroll.ScrollBarImageColor3 = Theme.ScrollBar EditorScroll.CanvasSize = UDim2.new(0, 0, 0, 0) EditorScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y EditorScroll.Parent = EditorContainer local ScriptInput = Instance.new("TextBox") ScriptInput.Name = "ScriptInput" ScriptInput.Size = UDim2.new(1, -10, 0, 5000) ScriptInput.Position = UDim2.new(0, 5, 0, 0) ScriptInput.BackgroundTransparency = 1 ScriptInput.Text = "" ScriptInput.PlaceholderText = "-- Paste your script here...\n-- Linux Executor v2.0\n\nprint('Hello from Linux!')" ScriptInput.PlaceholderColor3 = Theme.TextDim ScriptInput.TextColor3 = Theme.Text ScriptInput.Font = Enum.Font.Code ScriptInput.TextSize = isMobile and 12 or 14 ScriptInput.TextXAlignment = Enum.TextXAlignment.Left ScriptInput.TextYAlignment = Enum.TextYAlignment.Top ScriptInput.ClearTextOnFocus = false ScriptInput.MultiLine = true ScriptInput.TextWrapped = false ScriptInput.Parent = EditorScroll -- Line Number Updater local function UpdateLineNumbers() local text = ScriptInput.Text local lineCount = 1 for _ in text:gmatch("\n") do lineCount = lineCount + 1 end local lines = {} for i = 1, math.max(lineCount, 20) do if i <= lineCount then lines[i] = '' .. tostring(i) .. '' else lines[i] = '' .. tostring(i) .. '' end end LineNumberLabel.Text = table.concat(lines, "\n") end ScriptInput:GetPropertyChangedSignal("Text"):Connect(UpdateLineNumbers) -- Sync scroll between line numbers and editor EditorScroll:GetPropertyChangedSignal("CanvasPosition"):Connect(function() LineNumberLabel.Position = UDim2.new(0, 4, 0, -EditorScroll.CanvasPosition.Y) end) UpdateLineNumbers() -- Character / Line Counter local CounterLabel = Instance.new("TextLabel") CounterLabel.Name = "Counter" CounterLabel.Size = UDim2.new(1, -16, 0, 18) CounterLabel.Position = UDim2.new(0, 8, 1, -22) CounterLabel.BackgroundTransparency = 1 CounterLabel.Text = "Lines: 0 | Chars: 0" CounterLabel.TextColor3 = Theme.TextDim CounterLabel.Font = Enum.Font.Code CounterLabel.TextSize = 11 CounterLabel.TextXAlignment = Enum.TextXAlignment.Right CounterLabel.Parent = EditorContainer ScriptInput:GetPropertyChangedSignal("Text"):Connect(function() local text = ScriptInput.Text local lineCount = 1 for _ in text:gmatch("\n") do lineCount = lineCount + 1 end CounterLabel.Text = "Lines: " .. lineCount .. " | Chars: " .. #text end) -- ═══════════════════════════════════════════ -- BOTTOM ACTION BAR (Editor) -- ═══════════════════════════════════════════ local ActionBar = Instance.new("Frame") ActionBar.Name = "ActionBar" ActionBar.Size = UDim2.new(1, -16, 0, 40) ActionBar.Position = UDim2.new(0, 8, 1, -46) ActionBar.BackgroundTransparency = 1 ActionBar.BorderSizePixel = 0 ActionBar.Parent = editorPage local ActionLayout = Instance.new("UIListLayout") ActionLayout.FillDirection = Enum.FillDirection.Horizontal ActionLayout.Padding = UDim.new(0, 6) ActionLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center ActionLayout.Parent = ActionBar -- Console log storage local consoleHistory = {} local function AddConsoleMessage(msg, msgType) local color = Theme.ConsoleText local prefix = "[LOG]" if msgType == "error" then color = Theme.Error prefix = "[ERR]" elseif msgType == "warn" then color = Theme.Warning prefix = "[WRN]" elseif msgType == "info" then color = Color3.fromRGB(100, 180, 255) prefix = "[INF]" elseif msgType == "system" then color = Theme.Accent prefix = "[SYS]" end table.insert(consoleHistory, { Text = prefix .. " " .. os.date("%H:%M:%S") .. " > " .. msg, Color = color, Time = tick() }) end -- Forward-declare console update (will be set later) local UpdateConsoleDisplay -- Execute Button local btnWidth = isMobile and 75 or 100 CreateButton(ActionBar, "▶ Execute", UDim2.new(0, btnWidth, 0, 34), UDim2.new(0, 0, 0, 0), Theme.Accent, function() local code = ScriptInput.Text if code == "" or code == nil then AddConsoleMessage("No script to execute!", "error") if UpdateConsoleDisplay then UpdateConsoleDisplay() end return end AddConsoleMessage("Executing script (" .. #code .. " chars)...", "system") if UpdateConsoleDisplay then UpdateConsoleDisplay() end local success, err = pcall(function() local fn, loadErr = loadstring(code) if fn then fn() else error(loadErr) end end) if success then AddConsoleMessage("Script executed successfully!", "system") else AddConsoleMessage("Error: " .. tostring(err), "error") end if UpdateConsoleDisplay then UpdateConsoleDisplay() end end) -- Clear Button CreateButton(ActionBar, "🗑 Clear", UDim2.new(0, btnWidth, 0, 34), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() ScriptInput.Text = "" UpdateLineNumbers() AddConsoleMessage("Editor cleared", "info") if UpdateConsoleDisplay then UpdateConsoleDisplay() end end) -- Copy Button CreateButton(ActionBar, "📋 Copy", UDim2.new(0, btnWidth, 0, 34), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() if setclipboard then setclipboard(ScriptInput.Text) AddConsoleMessage("Script copied to clipboard!", "info") else AddConsoleMessage("Clipboard not supported", "warn") end if UpdateConsoleDisplay then UpdateConsoleDisplay() end end) -- Paste Button (good for mobile) CreateButton(ActionBar, "📌 Paste", UDim2.new(0, btnWidth, 0, 34), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() -- Focus the textbox for paste ScriptInput:CaptureFocus() AddConsoleMessage("Textbox focused - paste your script!", "info") if UpdateConsoleDisplay then UpdateConsoleDisplay() end end) -- ═══════════════════════════════════════════ -- CONSOLE PAGE -- ═══════════════════════════════════════════ local ConsoleContainer = Instance.new("Frame") ConsoleContainer.Name = "ConsoleContainer" ConsoleContainer.Size = UDim2.new(1, -16, 1, -50) ConsoleContainer.Position = UDim2.new(0, 8, 0, 4) ConsoleContainer.BackgroundColor3 = Theme.Console ConsoleContainer.BorderSizePixel = 0 ConsoleContainer.ClipsDescendants = true ConsoleContainer.Parent = consolePage CreateCorner(ConsoleContainer, 8) CreateStroke(ConsoleContainer, Theme.Border, 1) -- Console header local ConsoleHeader = Instance.new("Frame") ConsoleHeader.Size = UDim2.new(1, 0, 0, 28) ConsoleHeader.BackgroundColor3 = Color3.fromRGB(15, 15, 22) ConsoleHeader.BorderSizePixel = 0 ConsoleHeader.Parent = ConsoleContainer CreateCorner(ConsoleHeader, 8) local ConsoleHeaderCover = Instance.new("Frame") ConsoleHeaderCover.Size = UDim2.new(1, 0, 0, 10) ConsoleHeaderCover.Position = UDim2.new(0, 0, 1, -10) ConsoleHeaderCover.BackgroundColor3 = Color3.fromRGB(15, 15, 22) ConsoleHeaderCover.BorderSizePixel = 0 ConsoleHeaderCover.Parent = ConsoleHeader local ConsoleHeaderLabel = Instance.new("TextLabel") ConsoleHeaderLabel.Size = UDim2.new(1, -10, 1, 0) ConsoleHeaderLabel.Position = UDim2.new(0, 10, 0, 0) ConsoleHeaderLabel.BackgroundTransparency = 1 ConsoleHeaderLabel.Text = "📟 Console Output" ConsoleHeaderLabel.TextColor3 = Theme.Accent ConsoleHeaderLabel.Font = Enum.Font.GothamBold ConsoleHeaderLabel.TextSize = 12 ConsoleHeaderLabel.TextXAlignment = Enum.TextXAlignment.Left ConsoleHeaderLabel.Parent = ConsoleHeader local ConsoleScroll = Instance.new("ScrollingFrame") ConsoleScroll.Name = "ConsoleScroll" ConsoleScroll.Size = UDim2.new(1, -10, 1, -34) ConsoleScroll.Position = UDim2.new(0, 5, 0, 30) ConsoleScroll.BackgroundTransparency = 1 ConsoleScroll.BorderSizePixel = 0 ConsoleScroll.ScrollBarThickness = 3 ConsoleScroll.ScrollBarImageColor3 = Theme.ScrollBar ConsoleScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y ConsoleScroll.CanvasSize = UDim2.new(0, 0, 0, 0) ConsoleScroll.Parent = ConsoleContainer local ConsoleLayout = Instance.new("UIListLayout") ConsoleLayout.Padding = UDim.new(0, 2) ConsoleLayout.SortOrder = Enum.SortOrder.LayoutOrder ConsoleLayout.Parent = ConsoleScroll -- Now define the console update function UpdateConsoleDisplay = function() for _, child in pairs(ConsoleScroll:GetChildren()) do if child:IsA("TextLabel") then child:Destroy() end end for i, entry in ipairs(consoleHistory) do local line = Instance.new("TextLabel") line.Name = "Line_" .. i line.Size = UDim2.new(1, -10, 0, 18) line.BackgroundTransparency = 1 line.Text = entry.Text line.TextColor3 = entry.Color line.Font = Enum.Font.Code line.TextSize = isMobile and 10 or 12 line.TextXAlignment = Enum.TextXAlignment.Left line.TextWrapped = true line.AutomaticSize = Enum.AutomaticSize.Y line.LayoutOrder = i line.Parent = ConsoleScroll -- Animate in line.TextTransparency = 1 Tween(line, {TextTransparency = 0}, 0.3) end -- Auto scroll to bottom task.wait() ConsoleScroll.CanvasPosition = Vector2.new(0, ConsoleScroll.AbsoluteCanvasSize.Y) end -- Console Action Buttons local ConsoleActions = Instance.new("Frame") ConsoleActions.Name = "ConsoleActions" ConsoleActions.Size = UDim2.new(1, -16, 0, 36) ConsoleActions.Position = UDim2.new(0, 8, 1, -42) ConsoleActions.BackgroundTransparency = 1 ConsoleActions.Parent = consolePage local ConsoleActLayout = Instance.new("UIListLayout") ConsoleActLayout.FillDirection = Enum.FillDirection.Horizontal ConsoleActLayout.Padding = UDim.new(0, 6) ConsoleActLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center ConsoleActLayout.Parent = ConsoleActions CreateButton(ConsoleActions, "🗑 Clear Console", UDim2.new(0, 130, 0, 30), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() consoleHistory = {} UpdateConsoleDisplay() end) CreateButton(ConsoleActions, "📋 Copy Log", UDim2.new(0, 110, 0, 30), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() local fullLog = "" for _, entry in ipairs(consoleHistory) do fullLog = fullLog .. entry.Text .. "\n" end if setclipboard then setclipboard(fullLog) AddConsoleMessage("Console log copied!", "info") end UpdateConsoleDisplay() end) -- Hook into game output local logConnection = game:GetService("LogService").MessageOut:Connect(function(message, messageType) if messageType == Enum.MessageType.MessageError then AddConsoleMessage(message, "error") elseif messageType == Enum.MessageType.MessageWarning then AddConsoleMessage(message, "warn") elseif messageType == Enum.MessageType.MessageInfo then AddConsoleMessage(message, "info") else AddConsoleMessage(message, "log") end UpdateConsoleDisplay() end) -- Initial console message AddConsoleMessage("Linux Executor v2.0 initialized", "system") AddConsoleMessage("Platform: " .. (isMobile and "Mobile" or "Desktop"), "info") AddConsoleMessage("Player: " .. Player.Name, "info") AddConsoleMessage("Ready to execute scripts!", "system") -- ═══════════════════════════════════════════ -- SETTINGS PAGE -- ═══════════════════════════════════════════ local SettingsScroll = Instance.new("ScrollingFrame") SettingsScroll.Name = "SettingsScroll" SettingsScroll.Size = UDim2.new(1, -16, 1, -10) SettingsScroll.Position = UDim2.new(0, 8, 0, 5) SettingsScroll.BackgroundTransparency = 1 SettingsScroll.BorderSizePixel = 0 SettingsScroll.ScrollBarThickness = 3 SettingsScroll.ScrollBarImageColor3 = Theme.ScrollBar SettingsScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y SettingsScroll.CanvasSize = UDim2.new(0, 0, 0, 0) SettingsScroll.Parent = settingsPage local SettingsLayout = Instance.new("UIListLayout") SettingsLayout.Padding = UDim.new(0, 6) SettingsLayout.SortOrder = Enum.SortOrder.LayoutOrder SettingsLayout.Parent = SettingsScroll local function CreateSettingToggle(name, description, default, callback) local container = Instance.new("Frame") container.Name = name container.Size = UDim2.new(1, -10, 0, 55) container.BackgroundColor3 = Theme.Editor container.BorderSizePixel = 0 container.Parent = SettingsScroll CreateCorner(container, 8) local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, -70, 0, 22) nameLabel.Position = UDim2.new(0, 12, 0, 6) nameLabel.BackgroundTransparency = 1 nameLabel.Text = name nameLabel.TextColor3 = Theme.Text nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 13 nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.Parent = container local descLabel = Instance.new("TextLabel") descLabel.Size = UDim2.new(1, -70, 0, 18) descLabel.Position = UDim2.new(0, 12, 0, 28) descLabel.BackgroundTransparency = 1 descLabel.Text = description descLabel.TextColor3 = Theme.TextDim descLabel.Font = Enum.Font.Gotham descLabel.TextSize = 11 descLabel.TextXAlignment = Enum.TextXAlignment.Left descLabel.Parent = container -- Toggle local toggleBG = Instance.new("TextButton") toggleBG.Size = UDim2.new(0, 44, 0, 24) toggleBG.Position = UDim2.new(1, -56, 0.5, -12) toggleBG.BackgroundColor3 = default and Theme.Accent or Color3.fromRGB(60, 60, 75) toggleBG.Text = "" toggleBG.AutoButtonColor = false toggleBG.BorderSizePixel = 0 toggleBG.Parent = container CreateCorner(toggleBG, 12) local toggleCircle = Instance.new("Frame") toggleCircle.Size = UDim2.new(0, 18, 0, 18) toggleCircle.Position = default and UDim2.new(1, -21, 0.5, -9) or UDim2.new(0, 3, 0.5, -9) toggleCircle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) toggleCircle.BorderSizePixel = 0 toggleCircle.Parent = toggleBG CreateCorner(toggleCircle, 9) local enabled = default toggleBG.MouseButton1Click:Connect(function() enabled = not enabled Tween(toggleBG, {BackgroundColor3 = enabled and Theme.Accent or Color3.fromRGB(60, 60, 75)}, 0.3) Tween(toggleCircle, {Position = enabled and UDim2.new(1, -21, 0.5, -9) or UDim2.new(0, 3, 0.5, -9)}, 0.3, Enum.EasingStyle.Back) if callback then callback(enabled) end end) return container end local function CreateSettingSection(title, order) local section = Instance.new("TextLabel") section.Name = "Section_" .. title section.Size = UDim2.new(1, 0, 0, 28) section.BackgroundTransparency = 1 section.Text = " " .. title section.TextColor3 = Theme.Accent section.Font = Enum.Font.GothamBold section.TextSize = 14 section.TextXAlignment = Enum.TextXAlignment.Left section.LayoutOrder = order section.Parent = SettingsScroll return section end CreateSettingSection("🎨 Appearance", 1) local autoScroll = true CreateSettingToggle("Auto-Scroll Console", "Automatically scroll to latest message", true, function(val) autoScroll = val end) local showLineNums = true CreateSettingToggle("Show Line Numbers", "Display line numbers in editor", true, function(val) showLineNums = val LineNumberFrame.Visible = val if val then EditorScroll.Size = UDim2.new(1, -50, 1, 0) EditorScroll.Position = UDim2.new(0, 48, 0, 0) else EditorScroll.Size = UDim2.new(1, -10, 1, 0) EditorScroll.Position = UDim2.new(0, 5, 0, 0) end end) CreateSettingToggle("Text Wrapping", "Wrap long lines in editor", false, function(val) ScriptInput.TextWrapped = val end) CreateSettingSection("⚡ Performance", 10) CreateSettingToggle("Animations", "Enable UI animations", true, function(val) -- This would toggle animations globally in a real implementation AddConsoleMessage("Animations " .. (val and "enabled" or "disabled"), "info") if UpdateConsoleDisplay then UpdateConsoleDisplay() end end) CreateSettingToggle("Auto-Execute on Paste", "Run script automatically when pasted", false, function(val) if val then AddConsoleMessage("Auto-execute enabled (be careful!)", "warn") else AddConsoleMessage("Auto-execute disabled", "info") end if UpdateConsoleDisplay then UpdateConsoleDisplay() end end) CreateSettingSection("🔒 Security", 20) CreateSettingToggle("Confirm Before Execute", "Show confirmation before running scripts", false, function(val) AddConsoleMessage("Confirmation " .. (val and "enabled" or "disabled"), "info") if UpdateConsoleDisplay then UpdateConsoleDisplay() end end) -- ═══════════════════════════════════════════ -- INFO PAGE -- ═══════════════════════════════════════════ local InfoScroll = Instance.new("ScrollingFrame") InfoScroll.Name = "InfoScroll" InfoScroll.Size = UDim2.new(1, -16, 1, -10) InfoScroll.Position = UDim2.new(0, 8, 0, 5) InfoScroll.BackgroundTransparency = 1 InfoScroll.BorderSizePixel = 0 InfoScroll.ScrollBarThickness = 3 InfoScroll.ScrollBarImageColor3 = Theme.ScrollBar InfoScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y InfoScroll.CanvasSize = UDim2.new(0, 0, 0, 0) InfoScroll.Parent = infoPage local InfoLayout = Instance.new("UIListLayout") InfoLayout.Padding = UDim.new(0, 8) InfoLayout.SortOrder = Enum.SortOrder.LayoutOrder InfoLayout.Parent = InfoScroll local function CreateInfoCard(title, content, icon, order) local card = Instance.new("Frame") card.Name = title card.Size = UDim2.new(1, -10, 0, 0) card.AutomaticSize = Enum.AutomaticSize.Y card.BackgroundColor3 = Theme.Editor card.BorderSizePixel = 0 card.LayoutOrder = order or 0 card.Parent = InfoScroll CreateCorner(card, 8) CreateStroke(card, Theme.Border, 1) local padding = Instance.new("UIPadding") padding.PaddingLeft = UDim.new(0, 14) padding.PaddingRight = UDim.new(0, 14) padding.PaddingTop = UDim.new(0, 10) padding.PaddingBottom = UDim.new(0, 10) padding.Parent = card local titleL = Instance.new("TextLabel") titleL.Size = UDim2.new(1, 0, 0, 22) titleL.BackgroundTransparency = 1 titleL.Text = (icon or "") .. " " .. title titleL.TextColor3 = Theme.Accent titleL.Font = Enum.Font.GothamBold titleL.TextSize = 15 titleL.TextXAlignment = Enum.TextXAlignment.Left titleL.Parent = card local contentL = Instance.new("TextLabel") contentL.Size = UDim2.new(1, 0, 0, 0) contentL.Position = UDim2.new(0, 0, 0, 26) contentL.AutomaticSize = Enum.AutomaticSize.Y contentL.BackgroundTransparency = 1 contentL.Text = content contentL.TextColor3 = Theme.TextDim contentL.Font = Enum.Font.Gotham contentL.TextSize = 12 contentL.TextXAlignment = Enum.TextXAlignment.Left contentL.TextWrapped = true contentL.Parent = card return card end CreateInfoCard("Linux Executor", "A powerful, lightweight script executor with a modern UI design inspired by Linux terminals.\n\nVersion: 2.0\nBuild: " .. os.date("%Y.%m.%d"), "🐧", 1) CreateInfoCard("Features", "• Full script editor with line numbers\n• Real-time character & line counter\n• Console output with color-coded messages\n• Log service integration\n• Mobile-optimized touch controls\n• Draggable & resizable window\n• Smooth animations & transitions\n• Settings panel with toggles\n• Clipboard support\n• Multi-tab interface", "✨", 2) CreateInfoCard("System Info", "Player: " .. Player.Name .. "\nDisplay Name: " .. Player.DisplayName .. "\nUser ID: " .. Player.UserId .. "\nPlatform: " .. (isMobile and "📱 Mobile" or "💻 Desktop") .. "\nGame: " .. game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name .. "\nPlace ID: " .. game.PlaceId .. "\nServer Job ID: " .. string.sub(game.JobId, 1, 16) .. "...", "🖥", 3) CreateInfoCard("Controls", "• Drag the title bar to move\n• Click ⚫ to close, 🟡 to minimize, 🟢 to maximize\n• Use tabs to switch between pages\n• Paste scripts in the Editor tab\n• Click Execute (▶) to run your script\n• Check Console for output & errors", "🎮", 4) CreateInfoCard("Credits", "Developed with ❤️\nUI Framework: Custom Built\nInspired by Linux terminals & modern IDEs", "👤", 5) -- ═══════════════════════════════════════════ -- MORE PAGE -- ═══════════════════════════════════════════ local MoreScroll = Instance.new("ScrollingFrame") MoreScroll.Name = "MoreScroll" MoreScroll.Size = UDim2.new(1, -16, 1, -10) MoreScroll.Position = UDim2.new(0, 8, 0, 5) MoreScroll.BackgroundTransparency = 1 MoreScroll.BorderSizePixel = 0 MoreScroll.ScrollBarThickness = 3 MoreScroll.ScrollBarImageColor3 = Theme.ScrollBar MoreScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y MoreScroll.CanvasSize = UDim2.new(0, 0, 0, 0) MoreScroll.Parent = morePage local MoreLayout = Instance.new("UIListLayout") MoreLayout.Padding = UDim.new(0, 6) MoreLayout.SortOrder = Enum.SortOrder.LayoutOrder MoreLayout.Parent = MoreScroll -- Quick Scripts Section local function CreateQuickScript(name, description, script, order) local card = Instance.new("Frame") card.Name = name card.Size = UDim2.new(1, -10, 0, 70) card.BackgroundColor3 = Theme.Editor card.BorderSizePixel = 0 card.LayoutOrder = order card.Parent = MoreScroll CreateCorner(card, 8) CreateStroke(card, Theme.Border, 1) local nameL = Instance.new("TextLabel") nameL.Size = UDim2.new(1, -90, 0, 20) nameL.Position = UDim2.new(0, 12, 0, 8) nameL.BackgroundTransparency = 1 nameL.Text = "📜 " .. name nameL.TextColor3 = Theme.Text nameL.Font = Enum.Font.GothamBold nameL.TextSize = 13 nameL.TextXAlignment = Enum.TextXAlignment.Left nameL.Parent = card local descL = Instance.new("TextLabel") descL.Size = UDim2.new(1, -90, 0, 16) descL.Position = UDim2.new(0, 12, 0, 28) descL.BackgroundTransparency = 1 descL.Text = description descL.TextColor3 = Theme.TextDim descL.Font = Enum.Font.Gotham descL.TextSize = 11 descL.TextXAlignment = Enum.TextXAlignment.Left descL.Parent = card local linesCount = 1 for _ in script:gmatch("\n") do linesCount = linesCount + 1 end local statsL = Instance.new("TextLabel") statsL.Size = UDim2.new(1, -12, 0, 14) statsL.Position = UDim2.new(0, 12, 0, 48) statsL.BackgroundTransparency = 1 statsL.Text = "📏 " .. linesCount .. " lines | " .. #script .. " chars" statsL.TextColor3 = Color3.fromRGB(70, 70, 100) statsL.Font = Enum.Font.Code statsL.TextSize = 10 statsL.TextXAlignment = Enum.TextXAlignment.Left statsL.Parent = card -- Load button local loadBtn = Instance.new("TextButton") loadBtn.Size = UDim2.new(0, 65, 0, 28) loadBtn.Position = UDim2.new(1, -78, 0.5, -14) loadBtn.BackgroundColor3 = Theme.Accent loadBtn.Text = "" loadBtn.AutoButtonColor = false loadBtn.BorderSizePixel = 0 loadBtn.ClipsDescendants = true loadBtn.Parent = card CreateCorner(loadBtn, 6) local loadLabel = Instance.new("TextLabel") loadLabel.Size = UDim2.new(1, 0, 1, 0) loadLabel.BackgroundTransparency = 1 loadLabel.Text = "Load" loadLabel.TextColor3 = Color3.fromRGB(255, 255, 255) loadLabel.Font = Enum.Font.GothamBold loadLabel.TextSize = 12 loadLabel.Parent = loadBtn loadBtn.MouseEnter:Connect(function() Tween(loadBtn, {BackgroundColor3 = Theme.AccentHover}, 0.2) end) loadBtn.MouseLeave:Connect(function() Tween(loadBtn, {BackgroundColor3 = Theme.Accent}, 0.2) end) loadBtn.MouseButton1Click:Connect(function() local mouse = UserInputService:GetMouseLocation() RippleEffect(loadBtn, mouse.X, mouse.Y) ScriptInput.Text = script UpdateLineNumbers() -- Switch to Editor tab for tName, tData in pairs(tabs) do if tName == "Editor" then Tween(tData.Button, {BackgroundColor3 = Theme.TabActive}, 0.2) Tween(tData.Label, {TextColor3 = Color3.fromRGB(255, 255, 255)}, 0.2) Tween(tData.Indicator, {Size = UDim2.new(0.6, 0, 0, 2)}, 0.3, Enum.EasingStyle.Back) tData.Page.Visible = true else Tween(tData.Button, {BackgroundColor3 = Theme.TabInactive}, 0.2) Tween(tData.Label, {TextColor3 = Theme.TextDim}, 0.2) Tween(tData.Indicator, {Size = UDim2.new(0, 0, 0, 2)}, 0.2) tData.Page.Visible = false end end AddConsoleMessage("Loaded script: " .. name, "info") UpdateConsoleDisplay() end) return card end -- Section Title local quickTitle = Instance.new("TextLabel") quickTitle.Size = UDim2.new(1, 0, 0, 28) quickTitle.BackgroundTransparency = 1 quickTitle.Text = " ⚡ Quick Scripts" quickTitle.TextColor3 = Theme.Accent quickTitle.Font = Enum.Font.GothamBold quickTitle.TextSize = 14 quickTitle.TextXAlignment = Enum.TextXAlignment.Left quickTitle.LayoutOrder = 0 quickTitle.Parent = MoreScroll CreateQuickScript("Hello World", "Simple print test script", [[-- Hello World Test print("Hello from Linux Executor!") print("Script executed successfully!") print("Time: " .. os.date("%H:%M:%S"))]], 1) CreateQuickScript("Player Info", "Display local player information", [[-- Player Information local player = game.Players.LocalPlayer print("=== Player Info ===") print("Name: " .. player.Name) print("Display: " .. player.DisplayName) print("UserID: " .. player.UserId) print("Team: " .. tostring(player.Team)) print("Account Age: " .. player.AccountAge .. " days") print("==================")]], 2) CreateQuickScript("Part Spawner", "Spawn a neon part at your position", [[-- Part Spawner local player = game.Players.LocalPlayer local char = player.Character or player.CharacterAdded:Wait() local hrp = char:WaitForChild("HumanoidRootPart") local part = Instance.new("Part") part.Size = Vector3.new(4, 4, 4) part.Position = hrp.Position + Vector3.new(0, 10, 0) part.BrickColor = BrickColor.new("Lime green") part.Material = Enum.Material.Neon part.Anchored = true part.Parent = workspace print("Part spawned at: " .. tostring(part.Position))]], 3) CreateQuickScript("Speed Boost", "Increase walk speed", [[-- Speed Boost local player = game.Players.LocalPlayer local char = player.Character or player.CharacterAdded:Wait() local humanoid = char:WaitForChild("Humanoid") humanoid.WalkSpeed = 32 print("Walk speed set to 32!")]], 4) CreateQuickScript("Jump Boost", "Increase jump power", [[-- Jump Boost local player = game.Players.LocalPlayer local char = player.Character or player.CharacterAdded:Wait() local humanoid = char:WaitForChild("Humanoid") humanoid.JumpPower = 100 print("Jump power set to 100!")]], 5) CreateQuickScript("Game Scanner", "Scan and list workspace children", [[-- Game Scanner print("=== Workspace Scan ===") local count = 0 for _, obj in pairs(workspace:GetChildren()) do count = count + 1 if count <= 25 then print(count .. ". [" .. obj.ClassName .. "] " .. obj.Name) end end print("Total objects: " .. count) print("====================")]], 6) -- Tools Section local toolsTitle = Instance.new("TextLabel") toolsTitle.Size = UDim2.new(1, 0, 0, 28) toolsTitle.BackgroundTransparency = 1 toolsTitle.Text = " 🔧 Tools" toolsTitle.TextColor3 = Theme.Accent toolsTitle.Font = Enum.Font.GothamBold toolsTitle.TextSize = 14 toolsTitle.TextXAlignment = Enum.TextXAlignment.Left toolsTitle.LayoutOrder = 10 toolsTitle.Parent = MoreScroll -- Tool Buttons Container local ToolsContainer = Instance.new("Frame") ToolsContainer.Size = UDim2.new(1, -10, 0, 80) ToolsContainer.BackgroundColor3 = Theme.Editor ToolsContainer.BorderSizePixel = 0 ToolsContainer.LayoutOrder = 11 ToolsContainer.Parent = MoreScroll CreateCorner(ToolsContainer, 8) local ToolsGrid = Instance.new("UIGridLayout") ToolsGrid.CellSize = UDim2.new(0.48, 0, 0, 32) ToolsGrid.CellPadding = UDim2.new(0.02, 0, 0, 6) ToolsGrid.SortOrder = Enum.SortOrder.LayoutOrder ToolsGrid.Parent = ToolsContainer local ToolsPadding = Instance.new("UIPadding") ToolsPadding.PaddingLeft = UDim.new(0, 6) ToolsPadding.PaddingTop = UDim.new(0, 6) ToolsPadding.Parent = ToolsContainer CreateButton(ToolsContainer, "🔄 Rejoin", UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() AddConsoleMessage("Rejoining server...", "system") UpdateConsoleDisplay() task.wait(0.5) game:GetService("TeleportService"):Teleport(game.PlaceId, Player) end) CreateButton(ToolsContainer, "🏠 Server Hop", UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() AddConsoleMessage("Server hopping...", "system") UpdateConsoleDisplay() end) CreateButton(ToolsContainer, "📸 Screenshot", UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() AddConsoleMessage("Screenshot not available in this environment", "warn") UpdateConsoleDisplay() end) CreateButton(ToolsContainer, "🔊 Reset Char", UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0), Theme.ButtonBG, function() local char = Player.Character if char then local hum = char:FindFirstChild("Humanoid") if hum then hum.Health = 0 AddConsoleMessage("Character reset!", "info") end end UpdateConsoleDisplay() end) -- ═══════════════════════════════════════════ -- MOBILE TOGGLE BUTTON -- ═══════════════════════════════════════════ local ToggleButton = Instance.new("TextButton") ToggleButton.Name = "ToggleButton" ToggleButton.Size = UDim2.new(0, 46, 0, 46) ToggleButton.Position = UDim2.new(0, 10, 0.5, -23) ToggleButton.BackgroundColor3 = Theme.Accent ToggleButton.Text = "" ToggleButton.AutoButtonColor = false ToggleButton.BorderSizePixel = 0 ToggleButton.Visible = true ToggleButton.ZIndex = 10 ToggleButton.Parent = ScreenGui CreateCorner(ToggleButton, 23) local toggleIcon = Instance.new("TextLabel") toggleIcon.Size = UDim2.new(1, 0, 1, 0) toggleIcon.BackgroundTransparency = 1 toggleIcon.Text = "🐧" toggleIcon.TextSize = 22 toggleIcon.Font = Enum.Font.GothamBold toggleIcon.ZIndex = 11 toggleIcon.Parent = ToggleButton -- Shadow for toggle local toggleShadow = Instance.new("ImageLabel") toggleShadow.BackgroundTransparency = 1 toggleShadow.Image = "rbxassetid://5554236805" toggleShadow.ImageColor3 = Color3.fromRGB(0, 0, 0) toggleShadow.ImageTransparency = 0.6 toggleShadow.ScaleType = Enum.ScaleType.Slice toggleShadow.SliceCenter = Rect.new(23, 23, 277, 277) toggleShadow.Size = UDim2.new(1, 20, 1, 20) toggleShadow.Position = UDim2.new(0, -10, 0, -10) toggleShadow.ZIndex = 9 toggleShadow.Parent = ToggleButton -- Toggle pulse animation spawn(function() while ToggleButton and ToggleButton.Parent do Tween(ToggleButton, {Size = UDim2.new(0, 50, 0, 50), Position = UDim2.new(0, 8, 0.5, -25)}, 1) task.wait(1) Tween(ToggleButton, {Size = UDim2.new(0, 46, 0, 46), Position = UDim2.new(0, 10, 0.5, -23)}, 1) task.wait(1) end end) local mainVisible = true ToggleButton.MouseButton1Click:Connect(function() mainVisible = not mainVisible if mainVisible then MainFrame.Visible = true Tween(MainFrame, { Size = UDim2.new(0, mainWidth, 0, mainHeight), BackgroundTransparency = 0, Rotation = 0 }, 0.4, Enum.EasingStyle.Back) Tween(toggleIcon, {Rotation = 360}, 0.5) else Tween(MainFrame, { Size = UDim2.new(0, 0, 0, 0), BackgroundTransparency = 1, Rotation = -10 }, 0.3, Enum.EasingStyle.Quint) Tween(toggleIcon, {Rotation = 0}, 0.5) task.wait(0.3) MainFrame.Visible = false end end) -- Mobile drag for toggle button local toggleDragging = false local toggleDragStart, toggleStartPos ToggleButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then toggleDragging = true toggleDragStart = input.Position toggleStartPos = ToggleButton.Position end end) ToggleButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then toggleDragging = false end end) UserInputService.InputChanged:Connect(function(input) if toggleDragging and (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement) then local delta = input.Position - toggleDragStart local mag = delta.Magnitude if mag > 10 then -- Only drag if moved enough (prevent accidental drags when tapping) ToggleButton.Position = UDim2.new( toggleStartPos.X.Scale, toggleStartPos.X.Offset + delta.X, toggleStartPos.Y.Scale, toggleStartPos.Y.Offset + delta.Y ) end end end) -- ═══════════════════════════════════════════ -- SET DEFAULT TAB (Editor) -- ═══════════════════════════════════════════ task.wait(0.1) -- Wait for animations -- Activate Editor tab by default for tName, tData in pairs(tabs) do if tName == "Editor" then tData.Button.BackgroundColor3 = Theme.TabActive tData.Label.TextColor3 = Color3.fromRGB(255, 255, 255) tData.Page.Visible = true Tween(tData.Indicator, {Size = UDim2.new(0.6, 0, 0, 2)}, 0.3, Enum.EasingStyle.Back) else tData.Button.BackgroundColor3 = Theme.TabInactive tData.Label.TextColor3 = Theme.TextDim tData.Page.Visible = false end end currentTab = "Editor" -- ═══════════════════════════════════════════ -- RESIZE HANDLE (Desktop) -- ═══════════════════════════════════════════ if not isMobile then local ResizeHandle = Instance.new("TextButton") ResizeHandle.Name = "ResizeHandle" ResizeHandle.Size = UDim2.new(0, 18, 0, 18) ResizeHandle.Position = UDim2.new(1, -18, 1, -18) ResizeHandle.BackgroundTransparency = 1 ResizeHandle.Text = "◢" ResizeHandle.TextColor3 = Theme.TextDim ResizeHandle.TextSize = 14 ResizeHandle.Font = Enum.Font.GothamBold ResizeHandle.ZIndex = 5 ResizeHandle.Parent = MainFrame local resizing = false local resizeStart, sizeStart ResizeHandle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then resizing = true resizeStart = input.Position sizeStart = MainFrame.Size end end) ResizeHandle.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then resizing = false end end) UserInputService.InputChanged:Connect(function(input) if resizing and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - resizeStart local newWidth = math.max(400, sizeStart.X.Offset + delta.X) local newHeight = math.max(300, sizeStart.Y.Offset + delta.Y) MainFrame.Size = UDim2.new(0, newWidth, 0, newHeight) end end) end -- ═══════════════════════════════════════════ -- STARTUP NOTIFICATION -- ═══════════════════════════════════════════ local Notification = Instance.new("Frame") Notification.Name = "Notification" Notification.Size = UDim2.new(0, 260, 0, 50) Notification.Position = UDim2.new(0.5, -130, 0, -60) Notification.BackgroundColor3 = Theme.Accent Notification.BorderSizePixel = 0 Notification.ZIndex = 20 Notification.Parent = ScreenGui CreateCorner(Notification, 10) CreateShadow(Notification) local NotifLabel = Instance.new("TextLabel") NotifLabel.Size = UDim2.new(1, 0, 1, 0) NotifLabel.BackgroundTransparency = 1 NotifLabel.Text = "🐧 Linux Executor v2.0 Loaded!" NotifLabel.TextColor3 = Color3.fromRGB(255, 255, 255) NotifLabel.Font = Enum.Font.GothamBold NotifLabel.TextSize = 14 NotifLabel.ZIndex = 21 NotifLabel.Parent = Notification -- Slide in notification Tween(Notification, {Position = UDim2.new(0.5, -130, 0, 50)}, 0.6, Enum.EasingStyle.Back) task.wait(2.5) -- Slide out notification Tween(Notification, {Position = UDim2.new(0.5, -130, 0, -60)}, 0.4, Enum.EasingStyle.Quint) task.wait(0.5) Notification:Destroy() -- ═══════════════════════════════════════════ -- CLEANUP ON PLAYER LEAVE -- ═══════════════════════════════════════════ Player.AncestryChanged:Connect(function() if logConnection then logConnection:Disconnect() end end) print("[Linux Executor] v2.0 loaded successfully!") print("[Linux Executor] Platform: " .. (isMobile and "Mobile" or "Desktop"))