
KeylessUniversal

--// 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



Pls do not copy script i take all owner ship