Universal ai aimbot gui
Key RequiredUniversal

Universal ai aimbot gui

Universal ScriptAim_*istAim_*ist 675 views 893 executesUpdated Mar 12, 2026
Unrated
00
Lua Script•540 lines (15644 chars)
--// 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

Features & Information

Ai aimbot

Community Comments (1)

Aim_*istAim_*istMar 12, 2026

Pls do not copy script i take all owner ship

More Scripts for Universal Scripts