-- Delta CMD — Mobile Compact Edition -- Small draggable window + touch drag support local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") if playerGui:FindFirstChild("DeltaCMD") then playerGui.DeltaCMD:Destroy() end local screen = Instance.new("ScreenGui") screen.Name = "DeltaCMD" screen.ResetOnSpawn = false screen.IgnoreGuiInset = true screen.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screen.Parent = playerGui -- Colors local BG = Color3.fromRGB(12, 12, 12) local TITLE_BG = Color3.fromRGB(20, 20, 20) local TEXT_CLR = Color3.fromRGB(204, 204, 204) local ERR_CLR = Color3.fromRGB(255, 85, 85) local GREEN = Color3.fromRGB(80, 200, 80) local WIN_REDH = Color3.fromRGB(232, 17, 35) local WIN_BLUE = Color3.fromRGB(0, 120, 212) local PANEL_BG = Color3.fromRGB(24, 24, 24) local function mkCorner(p, r) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r or 4) c.Parent = p end local function mkHover(b, n, h) b.MouseEnter:Connect(function() b.BackgroundColor3 = h end) b.MouseLeave:Connect(function() b.BackgroundColor3 = n end) end -- ══════════════════════════════════════════════════════════ -- BOTTOM PANEL -- ══════════════════════════════════════════════════════════ local panel = Instance.new("Frame") panel.Size = UDim2.new(0, 320, 0, 42) panel.Position = UDim2.new(0.5, -160, 1, -52) panel.BackgroundColor3 = PANEL_BG panel.BorderSizePixel = 0 panel.ZIndex = 10 panel.Parent = screen mkCorner(panel, 8) local panelStroke = Instance.new("UIStroke") panelStroke.Color = Color3.fromRGB(50, 50, 50) panelStroke.Thickness = 1 panelStroke.Parent = panel local panelLbl = Instance.new("TextLabel") panelLbl.Size = UDim2.new(0, 105, 1, 0) panelLbl.Position = UDim2.new(0, 10, 0, 0) panelLbl.BackgroundTransparency = 1 panelLbl.Text = "⬛ Delta Tools" panelLbl.TextColor3 = Color3.fromRGB(140, 140, 140) panelLbl.TextSize = 11 panelLbl.Font = Enum.Font.Gotham panelLbl.TextXAlignment = Enum.TextXAlignment.Left panelLbl.ZIndex = 11 panelLbl.Parent = panel local div = Instance.new("Frame") div.Size = UDim2.new(0, 1, 0.6, 0) div.Position = UDim2.new(0, 112, 0.2, 0) div.BackgroundColor3 = Color3.fromRGB(55, 55, 55) div.BorderSizePixel = 0 div.ZIndex = 11 div.Parent = panel local appBtn = Instance.new("TextButton") appBtn.Size = UDim2.new(0, 78, 0, 30) appBtn.Position = UDim2.new(0, 120, 0.5, -15) appBtn.BackgroundColor3 = Color3.fromRGB(16, 16, 16) appBtn.Text = ">_ CMD" appBtn.TextColor3 = TEXT_CLR appBtn.TextSize = 12 appBtn.Font = Enum.Font.Code appBtn.BorderSizePixel = 0 appBtn.ZIndex = 11 appBtn.Parent = panel mkCorner(appBtn, 5) mkHover(appBtn, Color3.fromRGB(16,16,16), Color3.fromRGB(42,42,42)) -- ══════════════════════════════════════════════════════════ -- CMD WINDOW (compact: 310 × 250) -- ══════════════════════════════════════════════════════════ local win = Instance.new("Frame") win.Name = "CMDWin" win.Size = UDim2.new(0, 310, 0, 250) win.Position = UDim2.new(0.5, -155, 0.5, -125) win.BackgroundColor3 = BG win.BorderSizePixel = 0 win.Visible = false win.ZIndex = 20 win.Parent = screen mkCorner(win, 4) -- ── Title bar (28px) ────────────────────────────────────── local tb = Instance.new("Frame") tb.Name = "TitleBar" tb.Size = UDim2.new(1, 0, 0, 28) tb.BackgroundColor3 = TITLE_BG tb.BorderSizePixel = 0 tb.ZIndex = 21 tb.Parent = win mkCorner(tb, 4) -- fill bottom half so only top corners are rounded local tbFill = Instance.new("Frame") tbFill.Size = UDim2.new(1, 0, 0.5, 0) tbFill.Position = UDim2.new(0, 0, 0.5, 0) tbFill.BackgroundColor3 = TITLE_BG tbFill.BorderSizePixel = 0 tbFill.ZIndex = 21 tbFill.Parent = tb local tbIcon = Instance.new("TextLabel") tbIcon.Size = UDim2.new(0, 16, 0, 16) tbIcon.Position = UDim2.new(0, 6, 0.5, -8) tbIcon.BackgroundTransparency = 1 tbIcon.Text = "⬛" tbIcon.TextSize = 11 tbIcon.Font = Enum.Font.Gotham tbIcon.TextColor3 = TEXT_CLR tbIcon.ZIndex = 22 tbIcon.Parent = tb local tbTitle = Instance.new("TextLabel") tbTitle.Size = UDim2.new(1, -110, 1, 0) tbTitle.Position = UDim2.new(0, 24, 0, 0) tbTitle.BackgroundTransparency = 1 tbTitle.Text = "Command Prompt" tbTitle.TextColor3 = TEXT_CLR tbTitle.TextSize = 11 tbTitle.Font = Enum.Font.Gotham tbTitle.TextXAlignment = Enum.TextXAlignment.Left tbTitle.ZIndex = 22 tbTitle.Parent = tb -- Window controls (smaller buttons for mobile) local function mkWinBtn(xOff, label, norm, hov) local b = Instance.new("TextButton") b.Size = UDim2.new(0, 32, 1, 0) b.Position = UDim2.new(1, xOff, 0, 0) b.BackgroundColor3 = norm b.Text = label b.TextColor3 = TEXT_CLR b.TextSize = 11 b.Font = Enum.Font.Gotham b.BorderSizePixel = 0 b.ZIndex = 22 b.Parent = tb mkHover(b, norm, hov) return b end local minBtn = mkWinBtn(-96, "─", TITLE_BG, Color3.fromRGB(48,48,48)) local maxBtn = mkWinBtn(-64, "□", TITLE_BG, Color3.fromRGB(48,48,48)) local closeBtn = mkWinBtn(-32, "✕", TITLE_BG, WIN_REDH) -- ── Terminal output ─────────────────────────────────────── local term = Instance.new("ScrollingFrame") term.Size = UDim2.new(1, 0, 1, -62) term.Position = UDim2.new(0, 0, 0, 28) term.BackgroundColor3 = BG term.BorderSizePixel = 0 term.ScrollBarThickness = 5 term.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 80) term.CanvasSize = UDim2.new(0, 0, 0, 0) term.ZIndex = 21 term.Parent = win local termList = Instance.new("UIListLayout") termList.SortOrder = Enum.SortOrder.LayoutOrder termList.Padding = UDim.new(0, 0) termList.Parent = term local termPad = Instance.new("UIPadding") termPad.PaddingLeft = UDim.new(0, 6) termPad.PaddingTop = UDim.new(0, 4) termPad.PaddingRight = UDim.new(0, 10) termPad.Parent = term -- ── Input row (34px) ───────────────────────────────────── local inputBg = Instance.new("Frame") inputBg.Size = UDim2.new(1, 0, 0, 34) inputBg.Position = UDim2.new(0, 0, 1, -34) inputBg.BackgroundColor3 = Color3.fromRGB(10, 10, 10) inputBg.BorderSizePixel = 0 inputBg.ZIndex = 21 inputBg.Parent = win local sepLine = Instance.new("Frame") sepLine.Size = UDim2.new(1, 0, 0, 1) sepLine.BackgroundColor3 = Color3.fromRGB(38, 38, 38) sepLine.BorderSizePixel = 0 sepLine.ZIndex = 22 sepLine.Parent = inputBg local promptLbl = Instance.new("TextLabel") promptLbl.Size = UDim2.new(0, 38, 1, -2) promptLbl.Position = UDim2.new(0, 5, 0, 1) promptLbl.BackgroundTransparency = 1 promptLbl.Text = "C:\\>" promptLbl.TextColor3 = TEXT_CLR promptLbl.TextSize = 12 promptLbl.Font = Enum.Font.Code promptLbl.TextXAlignment = Enum.TextXAlignment.Left promptLbl.ZIndex = 22 promptLbl.Parent = inputBg local inputBox = Instance.new("TextBox") inputBox.Size = UDim2.new(1, -96, 1, -4) inputBox.Position = UDim2.new(0, 43, 0, 2) inputBox.BackgroundTransparency = 1 inputBox.Text = "" inputBox.PlaceholderText = "" inputBox.TextColor3 = TEXT_CLR inputBox.TextSize = 12 inputBox.Font = Enum.Font.Code inputBox.TextXAlignment = Enum.TextXAlignment.Left inputBox.ClearTextOnFocus = false inputBox.ZIndex = 22 inputBox.Parent = inputBg local runBtn = Instance.new("TextButton") runBtn.Size = UDim2.new(0, 46, 0, 24) runBtn.Position = UDim2.new(1, -50, 0.5, -12) runBtn.BackgroundColor3 = WIN_BLUE runBtn.Text = "Run" runBtn.TextColor3 = Color3.fromRGB(255, 255, 255) runBtn.TextSize = 11 runBtn.Font = Enum.Font.GothamSemibold runBtn.BorderSizePixel = 0 runBtn.ZIndex = 22 runBtn.Parent = inputBg mkCorner(runBtn, 3) mkHover(runBtn, WIN_BLUE, Color3.fromRGB(20, 140, 232)) -- ══════════════════════════════════════════════════════════ -- LOGIC -- ══════════════════════════════════════════════════════════ local lineIdx = 0 local history = {} local histPos = 0 local function addLine(text, color) lineIdx += 1 local lbl = Instance.new("TextLabel") lbl.LayoutOrder = lineIdx lbl.Size = UDim2.new(1, 0, 0, 0) lbl.AutomaticSize = Enum.AutomaticSize.Y lbl.BackgroundTransparency = 1 lbl.Text = (text == "" or text == nil) and " " or text lbl.TextColor3 = color or TEXT_CLR lbl.TextSize = 12 lbl.Font = Enum.Font.Code lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.TextWrapped = true lbl.ZIndex = 22 lbl.Parent = term task.defer(function() term.CanvasSize = UDim2.new(0,0,0, termList.AbsoluteContentSize.Y + 10) term.CanvasPosition = Vector2.new(0, term.CanvasSize.Y.Offset) end) end local function clearOutput() for _, v in ipairs(term:GetChildren()) do if v:IsA("TextLabel") then v:Destroy() end end lineIdx = 0 term.CanvasSize = UDim2.new(0,0,0,0) end local function execCode(raw) raw = raw:match("^%s*(.-)%s*$") if raw == "" then return end table.insert(history, raw) histPos = #history + 1 addLine("C:\\>" .. raw, TEXT_CLR) local cmd = raw:lower():match("^(%S+)") if cmd == "cls" or cmd == "clear" then clearOutput(); return elseif cmd == "help" then addLine("cls/clear — clear screen", TEXT_CLR) addLine("help — this list", TEXT_CLR) addLine("(else) — Lua/Luau", TEXT_CLR) addLine("", nil); return end local ok, fn = pcall(loadstring, raw) if not ok or type(fn) ~= "function" then addLine("Not recognized: " .. (raw:match("^(%S+)") or raw), TEXT_CLR) if not ok then addLine("Lua: " .. tostring(fn), ERR_CLR) end else local s, r = pcall(fn) if s then if r ~= nil then addLine(tostring(r), TEXT_CLR) end else addLine(tostring(r), ERR_CLR) end end addLine("", nil) end -- Welcome (shortened for small screen) addLine("Microsoft Windows [Version 10.0.26100]", TEXT_CLR) addLine("(c) Microsoft Corporation.", TEXT_CLR) addLine("", nil) addLine("Delta Lua/Luau active. Type 'help'.", GREEN) addLine("", nil) -- ══════════════════════════════════════════════════════════ -- WINDOW EVENTS -- ══════════════════════════════════════════════════════════ local isOpen = false local isMax = false local savedSz, savedPos local function openWin() isOpen = true; win.Visible = true end local function closeWin() isOpen = false; win.Visible = false end appBtn.MouseButton1Click:Connect(function() if isOpen then closeWin() else openWin() end end) closeBtn.MouseButton1Click:Connect(closeWin) minBtn.MouseButton1Click:Connect(closeWin) maxBtn.MouseButton1Click:Connect(function() if not isMax then savedSz, savedPos = win.Size, win.Position win.Size = UDim2.new(1, 0, 1, -52) win.Position = UDim2.new(0, 0, 0, 0) isMax = true else win.Size, win.Position = savedSz, savedPos isMax = false end end) local function submit() local code = inputBox.Text inputBox.Text = "" execCode(code) end runBtn.MouseButton1Click:Connect(submit) inputBox.FocusLost:Connect(function(entered) if entered then submit() end end) UserInputService.InputBegan:Connect(function(input) if not win.Visible then return end if input.KeyCode == Enum.KeyCode.Up then histPos = math.max(1, histPos - 1) inputBox.Text = history[histPos] or "" elseif input.KeyCode == Enum.KeyCode.Down then histPos = math.min(#history + 1, histPos + 1) inputBox.Text = history[histPos] or "" end end) -- ══════════════════════════════════════════════════════════ -- DRAG — works for both MOUSE and TOUCH -- ══════════════════════════════════════════════════════════ local dragging, dragStart, winStart = false, nil, nil tb.InputBegan:Connect(function(input) if isMax then return end if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position winStart = win.Position end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then local d = input.Position - dragStart win.Position = UDim2.new( winStart.X.Scale, winStart.X.Offset + d.X, winStart.Y.Scale, winStart.Y.Offset + d.Y ) end end) print("[DeltaCMD Mobile] Ready.")