--// FULL COMBAT PANEL (ALL 7 TABS) — MODERN DARK MODE --// ONE SINGLE LOCALSCRIPT — OPTIMIZED VERSION --// By Christian + Copilot local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") if not UserInputService.TouchEnabled then return end --------------------------------------------------------------------- -- SETTINGS (AUTO-SAVE + AUTO-LOAD) --------------------------------------------------------------------- local SETTINGS_FOLDER = "CombatPanelSettings" local Settings = { Data = { -- AIM AimAssist = false, AimAssistStrength = 50, AimLockStrength = 50, -- COMBAT TeamCheck = false, LineOfSight = false, AutoFace = false, -- VISUALS ShowFOV = false, TargetHighlight = false, -- EXTRAS SmoothCameraReturn = false, UIGlow = false, -- ESP ESPEnabled = false, ESPTeamCheck = true, -- FLY FlyEnabled = false, FlySpeed = 50, } } function Settings:Load() local folder = playerGui:FindFirstChild(SETTINGS_FOLDER) if not folder then return end for key, default in pairs(self.Data) do local obj = folder:FindFirstChild(key) if obj then if typeof(default) == "boolean" and obj:IsA("BoolValue") then self.Data[key] = obj.Value elseif typeof(default) == "number" and obj:IsA("IntValue") then self.Data[key] = obj.Value end end end end function Settings:Save() local folder = playerGui:FindFirstChild(SETTINGS_FOLDER) if not folder then folder = Instance.new("Folder") folder.Name = SETTINGS_FOLDER folder.Parent = playerGui end for key, value in pairs(self.Data) do local obj = folder:FindFirstChild(key) if not obj then if typeof(value) == "boolean" then obj = Instance.new("BoolValue") else obj = Instance.new("IntValue") end obj.Name = key obj.Parent = folder end obj.Value = value end end function Settings:Get(key) return self.Data[key] end function Settings:Set(key, value) self.Data[key] = value self:Save() end Settings:Load() --------------------------------------------------------------------- -- UI HELPERS --------------------------------------------------------------------- local function new(class, props) local inst = Instance.new(class) for k,v in pairs(props) do inst[k] = v end return inst end --------------------------------------------------------------------- -- MAIN GUI --------------------------------------------------------------------- local screenGui = new("ScreenGui", { Name = "CombatPanel", Parent = playerGui, ResetOnSpawn = false }) local mainFrame = new("Frame", { Parent = screenGui, Size = UDim2.new(0, 440, 0, 320), Position = UDim2.new(0.25, 0, 0.25, 0), BackgroundColor3 = Color3.fromRGB(18,18,18), BorderSizePixel = 0 }) new("UICorner", { Parent = mainFrame, CornerRadius = UDim.new(0,12) }) local dockButton = new("TextButton", { Parent = screenGui, Size = UDim2.new(0,70,0,70), Position = UDim2.new(0,20,1,-90), BackgroundColor3 = Color3.fromRGB(25,25,25), Text = "⚙️", TextScaled = true, TextColor3 = Color3.new(1,1,1), Visible = false }) new("UICorner", { Parent = dockButton, CornerRadius = UDim.new(1,0) }) dockButton.MouseButton1Click:Connect(function() dockButton.Visible = false mainFrame.Visible = true end) --------------------------------------------------------------------- -- TOP BAR + DRAGGING --------------------------------------------------------------------- local topBar = new("Frame", { Parent = mainFrame, Size = UDim2.new(1,0,0,40), BackgroundColor3 = Color3.fromRGB(24,24,24) }) local title = new("TextLabel", { Parent = topBar, Size = UDim2.new(1,-40,1,0), Position = UDim2.new(0,10,0,0), Text = "Mobile Combat Panel", TextColor3 = Color3.new(1,1,1), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextScaled = true }) local minBtn = new("TextButton", { Parent = topBar, Size = UDim2.new(0,40,1,0), Position = UDim2.new(1,-40,0,0), Text = "–", TextScaled = true, BackgroundColor3 = Color3.fromRGB(40,40,40), TextColor3 = Color3.new(1,1,1) }) local minimized = false minBtn.MouseButton1Click:Connect(function() minimized = not minimized mainFrame.Visible = not minimized dockButton.Visible = minimized end) local dragging = false local dragStart, startPos topBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) topBar.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.Touch 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) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) --------------------------------------------------------------------- -- TABS --------------------------------------------------------------------- local tabButtonsFrame = new("Frame", { Parent = mainFrame, Size = UDim2.new(0,110,1,-40), Position = UDim2.new(0,0,0,40), BackgroundColor3 = Color3.fromRGB(20,20,20) }) local contentFrame = new("Frame", { Parent = mainFrame, Size = UDim2.new(1,-110,1,-40), Position = UDim2.new(0,110,0,40), BackgroundColor3 = Color3.fromRGB(28,28,28) }) local tabs = {} local currentTab local function switchTab(name) for tabName, frame in pairs(tabs) do frame.Visible = (tabName == name) end currentTab = name end local function createTab(name, icon, order) local btn = new("TextButton", { Parent = tabButtonsFrame, Size = UDim2.new(1,0,0,45), Position = UDim2.new(0,0,0,(order-1)*45), Text = icon .. " " .. name, TextColor3 = Color3.new(1,1,1), BackgroundColor3 = Color3.fromRGB(30,30,30), TextScaled = true }) new("UICorner", { Parent = btn, CornerRadius = UDim.new(0,8) }) local frame = new("ScrollingFrame", { Parent = contentFrame, Size = UDim2.new(1,0,1,0), CanvasSize = UDim2.new(0,0,0,700), ScrollBarThickness = 6, BackgroundTransparency = 1, Visible = false }) tabs[name] = frame btn.MouseButton1Click:Connect(function() switchTab(name) end) return frame end --------------------------------------------------------------------- -- TOGGLE + SLIDER CREATORS --------------------------------------------------------------------- local function createToggle(parent, label, key, order) local btn = new("TextButton", { Parent = parent, Size = UDim2.new(0,240,0,40), Position = UDim2.new(0,20,0,20 + (order-1)*50), BackgroundColor3 = Color3.fromRGB(40,40,40), TextColor3 = Color3.new(1,1,1), TextScaled = true, Text = label .. ": " .. (Settings:Get(key) and "ON" or "OFF") }) new("UICorner", { Parent = btn, CornerRadius = UDim.new(0,8) }) btn.MouseButton1Click:Connect(function() local newVal = not Settings:Get(key) Settings:Set(key, newVal) btn.Text = label .. ": " .. (newVal and "ON" or "OFF") end) return btn end local function createSlider(parent, label, key, order) local frame = new("Frame", { Parent = parent, Size = UDim2.new(0,260,0,60), Position = UDim2.new(0,20,0,20 + (order-1)*70), BackgroundTransparency = 1 }) local value = Settings:Get(key) local textLabel = new("TextLabel", { Parent = frame, Size = UDim2.new(1,0,0,20), Text = label .. ": " .. value, TextColor3 = Color3.new(1,1,1), BackgroundTransparency = 1, TextScaled = true }) local bar = new("Frame", { Parent = frame, Size = UDim2.new(1,0,0,10), Position = UDim2.new(0,0,0,30), BackgroundColor3 = Color3.fromRGB(45,45,45) }) new("UICorner", { Parent = bar, CornerRadius = UDim.new(0,6) }) local fill = new("Frame", { Parent = bar, Size = UDim2.new(value/100,0,1,0), BackgroundColor3 = Color3.fromRGB(0,180,255) }) new("UICorner", { Parent = fill, CornerRadius = UDim.new(0,6) }) local draggingSlider = false bar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then draggingSlider = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then draggingSlider = false end end) bar.InputChanged:Connect(function(input) if draggingSlider and input.UserInputType == Enum.UserInputType.Touch then local rel = math.clamp((input.Position.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1) local newVal = math.floor(rel * 100) fill.Size = UDim2.new(rel,0,1,0) textLabel.Text = label .. ": " .. newVal Settings:Set(key, newVal) end end) return frame end --------------------------------------------------------------------- -- CREATE ALL 7 TABS --------------------------------------------------------------------- local aimTab = createTab("Aim", "🎯", 1) local combatTab = createTab("Combat", "⚔️", 2) local visualTab = createTab("Visuals", "👁️", 3) local extraTab = createTab("Extras", "⚙️", 4) local scriptTab = createTab("Scripts", "📜", 5) local espTab = createTab("ESP", "🔍", 6) local flyTab = createTab("Fly", "🕊️", 7) switchTab("Aim") --------------------------------------------------------------------- -- AIM TAB --------------------------------------------------------------------- createToggle(aimTab, "Aim Assist", "AimAssist", 1) createSlider(aimTab, "Aim Assist Strength", "AimAssistStrength", 2) createSlider(aimTab, "Aim Lock Strength", "AimLockStrength", 3) --------------------------------------------------------------------- -- COMBAT TAB --------------------------------------------------------------------- createToggle(combatTab, "Team Check", "TeamCheck", 1) createToggle(combatTab, "Line Of Sight", "LineOfSight", 2) createToggle(combatTab, "Auto Face Target", "AutoFace", 3) --------------------------------------------------------------------- -- VISUAL TAB --------------------------------------------------------------------- createToggle(visualTab, "Show FOV Circle", "ShowFOV", 1) createToggle(visualTab, "Target Highlight", "TargetHighlight", 2) --------------------------------------------------------------------- -- EXTRAS TAB --------------------------------------------------------------------- createToggle(extraTab, "Smooth Camera Return", "SmoothCameraReturn", 1) local glowToggle = createToggle(extraTab, "UI Glow Mode", "UIGlow", 2) local function applyGlow() if Settings:Get("UIGlow") then mainFrame.BackgroundColor3 = Color3.fromRGB(10,40,60) else mainFrame.BackgroundColor3 = Color3.fromRGB(18,18,18) end end applyGlow() glowToggle.MouseButton1Click:Connect(applyGlow) --------------------------------------------------------------------- -- SCRIPT RUNNER TAB (SAFE SANDBOX) --------------------------------------------------------------------- local CodeBox = new("TextBox", { Parent = scriptTab, Size = UDim2.new(0,260,0,150), Position = UDim2.new(0,20,0,20), BackgroundColor3 = Color3.fromRGB(50,50,50), TextColor3 = Color3.new(1,1,1), Text = "", TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, MultiLine = true, ClearTextOnFocus = false, TextWrapped = false, TextSize = 18, }) new("UICorner", { Parent = CodeBox, CornerRadius = UDim.new(0,8) }) local function runSandbox(code) local env = { print = print, warn = warn, math = math, string = string, table = table, Settings = Settings.Data } local func = loadstring(code) if not func then warn("Script error") return end setfenv(func, env) local ok, err = pcall(func) if not ok then warn("Script error:", err) end end local RunBtn = new("TextButton", { Parent = scriptTab, Size = UDim2.new(0,120,0,40), Position = UDim2.new(0,20,0,180), Text = "Run Script", BackgroundColor3 = Color3.fromRGB(0,150,255), TextColor3 = Color3.new(1,1,1), TextScaled = true }) new("UICorner", { Parent = RunBtn, CornerRadius = UDim.new(0,8) }) RunBtn.MouseButton1Click:Connect(function() runSandbox(CodeBox.Text) end) --------------------------------------------------------------------- -- ESP TAB (LEGAL HIGHLIGHT) --------------------------------------------------------------------- createToggle(espTab, "Enable ESP", "ESPEnabled", 1) createToggle(espTab, "Team Check", "ESPTeamCheck", 2) local ESPFolder = Instance.new("Folder", workspace) ESPFolder.Name = "ESP_Highlights" local function getChar(plr) if not plr.Character then return end return plr.Character:FindFirstChild("HumanoidRootPart") and plr.Character end local function getHighlight(plr) local h = ESPFolder:FindFirstChild(plr.Name) if h then return h end local newH = Instance.new("Highlight") newH.Name = plr.Name newH.FillColor = Color3.fromRGB(0,255,100) newH.OutlineColor = Color3.fromRGB(0,0,0) newH.Parent = ESPFolder return newH end RunService.RenderStepped:Connect(function() if not Settings:Get("ESPEnabled") then for _,h in pairs(ESPFolder:GetChildren()) do h.Enabled = false end return end for _,plr in pairs(Players:GetPlayers()) do if plr ~= player then local h = getHighlight(plr) if Settings:Get("ESPTeamCheck") and player.Team and plr.Team == player.Team then h.Enabled = false else local char = getChar(plr) if char then h.Adornee = char h.Enabled = true else h.Enabled = false end end end end end) --------------------------------------------------------------------- -- FLY TAB --------------------------------------------------------------------- createToggle(flyTab, "Enable Fly", "FlyEnabled", 1) createSlider(flyTab, "Fly Speed", "FlySpeed", 2) local flyForce local function startFly() local char = player.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") if not root then return end if flyForce then flyForce:Destroy() end flyForce = Instance.new("BodyVelocity") flyForce.MaxForce = Vector3.new(1e6,1e6,1e6) flyForce.Velocity = Vector3.new(0,0,0) flyForce.Parent = root end local function stop