Aimbot MystericHub
Key RequiredUniversal

Aimbot MystericHub

Universal Scriptcrazyx0910crazyx0910 488 views 299 executesUpdated Jan 16, 2026
Unrated
00
Lua Script•1195 lines (42554 chars)
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

local gui = Instance.new("ScreenGui", player.PlayerGui)
gui.ResetOnSpawn = false
gui.Name = "☆    |      MystericHub"

local main = Instance.new("Frame", gui)
main.Size = UDim2.new(0, 400, 0, 600)
main.Position = UDim2.new(0.5, -200, 0.5, -300)
main.BackgroundColor3 = Color3.fromRGB(18, 18, 28)
main.BackgroundTransparency = 0.15
main.BorderSizePixel = 0
main.Active = true
main.Draggable = true

Instance.new("UICorner", main).CornerRadius = UDim.new(0, 24)

local stroke = Instance.new("UIStroke", main)
stroke.Thickness = 1.5
stroke.Color = Color3.fromRGB(60, 60, 80)
stroke.Transparency = 0.5

local top = Instance.new("Frame", main)
top.Size = UDim2.new(1, 0, 0, 48)
top.BackgroundColor3 = Color3.fromRGB(22, 22, 35)
top.BackgroundTransparency = 0.15
top.BorderSizePixel = 0
Instance.new("UICorner", top).CornerRadius = UDim.new(0, 24)

local divider = Instance.new("Frame", top)
divider.Size = UDim2.new(1, -40, 0, 1)
divider.Position = UDim2.new(0, 20, 1, -1)
divider.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
divider.BorderSizePixel = 0
divider.BackgroundTransparency = 0.5

local title = Instance.new("TextLabel", top)
title.Size = UDim2.new(1, -230, 1, 0)
title.Position = UDim2.new(0, 20, 0, 0)
title.BackgroundTransparency = 1
title.Text = "MystericHub"
title.Font = Enum.Font.Arcade
title.TextSize = 18
title.TextColor3 = Color3.fromRGB(240, 240, 255)
title.TextXAlignment = Enum.TextXAlignment.Left

local formatBtn = Instance.new("TextButton", top)
formatBtn.Size = UDim2.new(0, 38, 0, 36)
formatBtn.Position = UDim2.new(1, -178, 0, 6)
formatBtn.Text = ""
formatBtn.Font = Enum.Font.Arcade
formatBtn.TextSize = 12
formatBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
formatBtn.BackgroundTransparency = 0.2
formatBtn.BorderSizePixel = 0
Instance.new("UICorner", formatBtn).CornerRadius = UDim.new(0, 10)

local square1 = Instance.new("Frame", formatBtn)
square1.Size = UDim2.new(0, 10, 0, 10)
square1.Position = UDim2.new(0.5, -12, 0.5, -5)
square1.BackgroundColor3 = Color3.fromRGB(200, 200, 220)
square1.BorderSizePixel = 0
square1.ZIndex = 2
Instance.new("UICorner", square1).CornerRadius = UDim.new(0, 2)

local square2 = Instance.new("Frame", formatBtn)
square2.Size = UDim2.new(0, 10, 0, 10)
square2.Position = UDim2.new(0.5, 2, 0.5, -5)
square2.BackgroundColor3 = Color3.fromRGB(200, 200, 220)
square2.BorderSizePixel = 0
square2.ZIndex = 2
Instance.new("UICorner", square2).CornerRadius = UDim.new(0, 2)

local colorPicker = Instance.new("TextButton", top)
colorPicker.Size = UDim2.new(0, 38, 0, 36)
colorPicker.Position = UDim2.new(1, -132, 0, 6)
colorPicker.Text = ""
colorPicker.Font = Enum.Font.Arcade
colorPicker.TextSize = 12
colorPicker.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
colorPicker.BackgroundTransparency = 0.2
colorPicker.BorderSizePixel = 0
Instance.new("UICorner", colorPicker).CornerRadius = UDim.new(0, 10)

local colorCircle = Instance.new("Frame", colorPicker)
colorCircle.Size = UDim2.new(0, 22, 0, 22)
colorCircle.Position = UDim2.new(0.5, -11, 0.5, -11)
colorCircle.BackgroundColor3 = Color3.fromRGB(100, 150, 255)
colorCircle.BorderSizePixel = 0
colorCircle.ZIndex = 2
Instance.new("UICorner", colorCircle).CornerRadius = UDim.new(1, 0)

local colorStroke = Instance.new("UIStroke", colorCircle)
colorStroke.Thickness = 2
colorStroke.Color = Color3.fromRGB(255, 255, 255)
colorStroke.Transparency = 0.3

local closeBtn = Instance.new("TextButton", top)
closeBtn.Size = UDim2.new(0, 38, 0, 36)
closeBtn.Position = UDim2.new(1, -88, 0, 6)
closeBtn.Text = "×"
closeBtn.Font = Enum.Font.Arcade
closeBtn.TextSize = 24
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 60)
closeBtn.BackgroundTransparency = 0.2
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.BorderSizePixel = 0
Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 10)

local minimize = Instance.new("TextButton", top)
minimize.Size = UDim2.new(0, 38, 0, 36)
minimize.Position = UDim2.new(1, -42, 0, 6)
minimize.Text = "─"
minimize.Font = Enum.Font.Arcade
minimize.TextSize = 18
minimize.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
minimize.BackgroundTransparency = 0.2
minimize.TextColor3 = Color3.fromRGB(200, 200, 220)
minimize.BorderSizePixel = 0
Instance.new("UICorner", minimize).CornerRadius = UDim.new(0, 10)

local side = Instance.new("Frame", main)
side.Position = UDim2.new(0, 0, 0, 48)
side.Size = UDim2.new(0, 120, 1, -48)
side.BackgroundColor3 = Color3.fromRGB(15, 15, 25)
side.BackgroundTransparency = 0.15
side.BorderSizePixel = 0
side.ClipsDescendants = false

local sideCorner = Instance.new("UICorner", side)
sideCorner.CornerRadius = UDim.new(0, 24)

local content = Instance.new("Frame", main)
content.Position = UDim2.new(0, 120, 0, 48)
content.Size = UDim2.new(1, -120, 1, -48)
content.BackgroundTransparency = 1
content.ClipsDescendants = true

local pages = {}

local function createPage(name)
    local page = Instance.new("ScrollingFrame", content)
    page.Size = UDim2.new(1, 0, 1, 0)
    page.Visible = false
    page.BackgroundTransparency = 1
    page.BorderSizePixel = 0
    page.ScrollBarThickness = 4
    page.CanvasSize = UDim2.new(0, 0, 0, 700)
    pages[name] = page
    return page
end

local function switchPage(name)
    for n, p in pairs(pages) do
        p.Visible = (n == name)
    end
end

local iconImages = {
    AIMBOT = "rbxassetid://7733799682",
    ESP = "rbxassetid://7733920644",
    VISUAL = "rbxassetid://7743878857",
    GRAPHICS = "rbxassetid://7734053426"
}

local Settings = {
    BoxESP = false,
    SkeletonESP = false,
    NameESP = false,
    Aimbot = false,
    ShowFOV = false,
    TargetLock = false,
    OpacityEffects = false,
    RemoveFog = false,
    TargetPlayer = nil,
    LowGraphics = false,
    RealisticGraphics = false,
    UIOrientation = "vertical",
    ThemeColor = Color3.fromRGB(100, 150, 255)
}

local themeColors = {
    Color3.fromRGB(100, 150, 255),
    Color3.fromRGB(255, 100, 150),
    Color3.fromRGB(150, 100, 255),
    Color3.fromRGB(100, 255, 150),
    Color3.fromRGB(255, 200, 100),
    Color3.fromRGB(255, 100, 100),
    Color3.fromRGB(100, 255, 255),
}

local currentColorIndex = 1

local function tabButton(text, y, pageName, iconType)
    local btn = Instance.new("TextButton", side)
    btn.Name = pageName
    btn.Size = UDim2.new(1, -14, 0, 50)
    btn.Position = UDim2.new(0, 7, 0, y)
    btn.Text = ""
    btn.Font = Enum.Font.Arcade
    btn.TextSize = 11
    btn.TextColor3 = Color3.fromRGB(220, 220, 220)
    btn.BackgroundColor3 = Color3.fromRGB(25, 25, 40)
    btn.BackgroundTransparency = 0.2
    btn.BorderSizePixel = 0
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 12)

    local icon = Instance.new("ImageLabel", btn)
    icon.Size = UDim2.new(0, 22, 0, 22)
    icon.Position = UDim2.new(0.5, -11, 0, 6)
    icon.BackgroundTransparency = 1
    icon.Image = iconImages[iconType] or ""
    icon.ImageColor3 = Color3.fromRGB(220, 220, 220)
    icon.ScaleType = Enum.ScaleType.Fit

    local label = Instance.new("TextLabel", btn)
    label.Size = UDim2.new(1, -10, 0, 18)
    label.Position = UDim2.new(0, 5, 1, -22)
    label.BackgroundTransparency = 1
    label.Text = text
    label.Font = Enum.Font.Arcade
    label.TextSize = 10
    label.TextColor3 = Color3.fromRGB(220, 220, 220)
    label.TextXAlignment = Enum.TextXAlignment.Center

    btn.MouseEnter:Connect(function()
        if pages[pageName].Visible == false then
            TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
                BackgroundColor3 = Color3.fromRGB(35, 35, 55)
            }):Play()
        end
    end)
    
    btn.MouseLeave:Connect(function()
        if pages[pageName].Visible == false then
            TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
                BackgroundColor3 = Color3.fromRGB(25, 25, 40)
            }):Play()
        end
    end)

    btn.MouseButton1Click:Connect(function()
        switchPage(pageName)
        for _, child in ipairs(side:GetChildren()) do
            if child:IsA("TextButton") then
                TweenService:Create(child, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
                    BackgroundColor3 = Color3.fromRGB(25, 25, 40)
                }):Play()
            end
        end
        TweenService:Create(btn, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
            BackgroundColor3 = Color3.new(
                Settings.ThemeColor.R * 0.3,
                Settings.ThemeColor.G * 0.3,
                Settings.ThemeColor.B * 0.3
            )
        }):Play()
    end)
end

local aimPage = createPage("AIMBOT")
local espPage = createPage("ESP")
local visPage = createPage("VISUAL")
local graphicsPage = createPage("GRAPHICS")

tabButton("AIMBOT", 10, "AIMBOT", "AIMBOT")
tabButton("ESP", 70, "ESP", "ESP")
tabButton("VISUAL", 130, "VISUAL", "VISUAL")
tabButton("GRAPHICS", 190, "GRAPHICS", "GRAPHICS")

switchPage("AIMBOT")

-- SISTEMA PARA REPOSICIONAR ELEMENTOS DINAMICAMENTE
local pageElements = {
    AIMBOT = {},
    ESP = {},
    VISUAL = {},
    GRAPHICS = {}
}

local function toggle(parent, text, y, settingName, pageName)
    local box = Instance.new("Frame", parent)
    box.Size = UDim2.new(1, -30, 0, 48)
    box.Position = UDim2.new(0, 15, 0, y)
    box.BackgroundColor3 = Color3.fromRGB(25, 25, 40)
    box.BackgroundTransparency = 0.2
    box.Name = "Toggle_" .. settingName
    Instance.new("UICorner", box).CornerRadius = UDim.new(0, 14)

    -- Guardar posição original
    table.insert(pageElements[pageName], {element = box, originalY = y, type = "toggle"})

    local lbl = Instance.new("TextLabel", box)
    lbl.Size = UDim2.new(0.6, 0, 1, 0)
    lbl.Position = UDim2.new(0, 12, 0, 0)
    lbl.BackgroundTransparency = 1
    lbl.Text = text
    lbl.Font = Enum.Font.Arcade
    lbl.TextSize = 13
    lbl.TextColor3 = Color3.fromRGB(230, 230, 230)
    lbl.TextXAlignment = Enum.TextXAlignment.Left
    lbl.TextWrapped = true

    local btn = Instance.new("TextButton", box)
    btn.Size = UDim2.new(0, 65, 0, 30)
    btn.Position = UDim2.new(1, -75, 0.5, -15)
    btn.Text = "OFF"
    btn.Font = Enum.Font.Arcade
    btn.TextSize = 11
    btn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
    btn.BackgroundTransparency = 0.2
    btn.TextColor3 = Color3.new(1, 1, 1)
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 10)
    
    btn.MouseEnter:Connect(function()
        TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            Size = UDim2.new(0, 70, 0, 32)
        }):Play()
    end)
    
    btn.MouseLeave:Connect(function()
        TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            Size = UDim2.new(0, 65, 0, 30)
        }):Play()
    end)

    btn.MouseButton1Click:Connect(function()
        Settings[settingName] = not Settings[settingName]
        
        btn.Text = Settings[settingName] and "ON" or "OFF"
        btn.BackgroundColor3 = Settings[settingName] and Color3.fromRGB(40, 180, 40) or Color3.fromRGB(180, 40, 40)
    end)
    
    return btn
end

toggle(aimPage, "Aimbot", 15, "Aimbot", "AIMBOT")
toggle(aimPage, "Show FOV", 73, "ShowFOV", "AIMBOT")
local targetBtn = toggle(aimPage, "Target Lock", 131, "TargetLock", "AIMBOT")

local searchContainer = Instance.new("Frame", aimPage)
searchContainer.Size = UDim2.new(1, -30, 0, 50)
searchContainer.Position = UDim2.new(0, 15, 0, 200)
searchContainer.BackgroundColor3 = Color3.fromRGB(30, 30, 50)
searchContainer.BackgroundTransparency = 0.2
searchContainer.BorderSizePixel = 0
searchContainer.ClipsDescendants = false
searchContainer.Name = "SearchContainer"
Instance.new("UICorner", searchContainer).CornerRadius = UDim.new(0, 25)

table.insert(pageElements["AIMBOT"], {element = searchContainer, originalY = 200, type = "search"})

local searchStroke = Instance.new("UIStroke", searchContainer)
searchStroke.Color = Color3.fromRGB(80, 80, 120)
searchStroke.Thickness = 1.5
searchStroke.Transparency = 0.5

local searchIconFrame = Instance.new("Frame", searchContainer)
searchIconFrame.Size = UDim2.new(0, 45, 1, 0)
searchIconFrame.BackgroundTransparency = 1

local searchIcon = Instance.new("ImageLabel", searchIconFrame)
searchIcon.Size = UDim2.new(0, 20, 0, 20)
searchIcon.Position = UDim2.new(0.5, -10, 0.5, -10)
searchIcon.BackgroundTransparency = 1
searchIcon.Image = "rbxassetid://7072721559"
searchIcon.ImageColor3 = Color3.fromRGB(150, 150, 200)

local searchBox = Instance.new("TextBox", searchContainer)
searchBox.Size = UDim2.new(1, -50, 1, 0)
searchBox.Position = UDim2.new(0, 45, 0, 0)
searchBox.BackgroundTransparency = 1
searchBox.Text = ""
searchBox.PlaceholderText = "Search players..."
searchBox.Font = Enum.Font.Arcade
searchBox.TextSize = 14
searchBox.TextColor3 = Color3.fromRGB(255, 255, 255)
searchBox.PlaceholderColor3 = Color3.fromRGB(120, 120, 150)
searchBox.TextXAlignment = Enum.TextXAlignment.Left
searchBox.ClearTextOnFocus = false

local resultsFrame = Instance.new("Frame", searchContainer)
resultsFrame.Size = UDim2.new(1, 0, 0, 0)
resultsFrame.Position = UDim2.new(0, 0, 1, 5)
resultsFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 40)
resultsFrame.BackgroundTransparency = 0.1
resultsFrame.BorderSizePixel = 0
resultsFrame.Visible = false
resultsFrame.ClipsDescendants = true
resultsFrame.ZIndex = 10
Instance.new("UICorner", resultsFrame).CornerRadius = UDim.new(0, 15)

local resultsStroke = Instance.new("UIStroke", resultsFrame)
resultsStroke.Color = Color3.fromRGB(80, 80, 120)
resultsStroke.Thickness = 1.5
resultsStroke.Transparency = 0.5

local resultsList = Instance.new("ScrollingFrame", resultsFrame)
resultsList.Size = UDim2.new(1, -10, 1, -10)
resultsList.Position = UDim2.new(0, 5, 0, 5)
resultsList.BackgroundTransparency = 1
resultsList.BorderSizePixel = 0
resultsList.ScrollBarThickness = 4
resultsList.CanvasSize = UDim2.new(0, 0, 0, 0)

local searchOpen = false

searchBox.Focused:Connect(function()
    if not searchOpen then
        searchOpen = true
        resultsFrame.Visible = true
        resultsFrame.Size = UDim2.new(1, 0, 0, 0)
        TweenService:Create(resultsFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
            Size = UDim2.new(1, 0, 0, 250)
        }):Play()
    end
end)

local function createPlayerResult(plr, index)
    local result = Instance.new("TextButton", resultsList)
    result.Size = UDim2.new(1, -10, 0, 40)
    result.Position = UDim2.new(0, 5, 0, (index - 1) * 45)
    result.BackgroundColor3 = Color3.fromRGB(35, 35, 55)
    result.BackgroundTransparency = 0.3
    result.BorderSizePixel = 0
    result.Text = ""
    Instance.new("UICorner", result).CornerRadius = UDim.new(0, 10)
    
    result.MouseEnter:Connect(function()
        TweenService:Create(result, TweenInfo.new(0.2), {
            BackgroundColor3 = Color3.fromRGB(45, 45, 70)
        }):Play()
    end)
    
    result.MouseLeave:Connect(function()
        TweenService:Create(result, TweenInfo.new(0.2), {
            BackgroundColor3 = Color3.fromRGB(35, 35, 55)
        }):Play()
    end)
    
    local nameLabel = Instance.new("TextLabel", result)
    nameLabel.Size = UDim2.new(1, -20, 1, 0)
    nameLabel.Position = UDim2.new(0, 10, 0, 0)
    nameLabel.BackgroundTransparency = 1
    nameLabel.Text = plr.Name
    nameLabel.Font = Enum.Font.Arcade
    nameLabel.TextSize = 13
    nameLabel.TextColor3 = Color3.fromRGB(220, 220, 240)
    nameLabel.TextXAlignment = Enum.TextXAlignment.Left
    
    result.MouseButton1Click:Connect(function()
        Settings.TargetPlayer = plr
        searchBox.Text = plr.Name
        
        TweenService:Create(resultsFrame, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
            Size = UDim2.new(1, 0, 0, 0)
        }):Play()
        task.wait(0.2)
        resultsFrame.Visible = false
        searchOpen = false
    end)
    
    return result
end

searchBox:GetPropertyChangedSignal("Text"):Connect(function()
    for _, child in pairs(resultsList:GetChildren()) do
        if child:IsA("TextButton") then
            child:Destroy()
        end
    end
    
    local searchText = searchBox.Text:lower()
    local index = 1
    
    if searchText ~= "" then
        for _, plr in pairs(Players:GetPlayers()) do
            if plr ~= player and plr.Name:lower():find(searchText) then
                createPlayerResult(plr, index)
                index = index + 1
            end
        end
    else
        for _, plr in pairs(Players:GetPlayers()) do
            if plr ~= player then
                createPlayerResult(plr, index)
                index = index + 1
            end
        end
    end
    
    resultsList.CanvasSize = UDim2.new(0, 0, 0, (index - 1) * 45)
end)

toggle(espPage, "Box ESP", 15, "BoxESP", "ESP")
toggle(espPage, "Skeleton ESP", 73, "SkeletonESP", "ESP")
toggle(espPage, "Name ESP", 131, "NameESP", "ESP")

toggle(visPage, "Opacity Effects", 15, "OpacityEffects", "VISUAL")
toggle(visPage, "Remove Fog", 73, "RemoveFog", "VISUAL")

local lowGraphicsBtn = toggle(graphicsPage, "Low Graphics", 15, "LowGraphics", "GRAPHICS")
local realisticGraphicsBtn = toggle(graphicsPage, "Realistic Graphics", 73, "RealisticGraphics", "GRAPHICS")

local graphicsInfo = Instance.new("Frame", graphicsPage)
graphicsInfo.Size = UDim2.new(1, -30, 0, 120)
graphicsInfo.Position = UDim2.new(0, 15, 0, 140)
graphicsInfo.BackgroundColor3 = Color3.fromRGB(25, 25, 40)
graphicsInfo.BackgroundTransparency = 0.2
graphicsInfo.Name = "GraphicsInfo"
Instance.new("UICorner", graphicsInfo).CornerRadius = UDim.new(0, 14)

table.insert(pageElements["GRAPHICS"], {element = graphicsInfo, originalY = 140, type = "info"})

local infoText = Instance.new("TextLabel", graphicsInfo)
infoText.Size = UDim2.new(1, -20, 1, -20)
infoText.Position = UDim2.new(0, 10, 0, 10)
infoText.BackgroundTransparency = 1
infoText.Text = "Low Graphics: Remove sombras e efeitos para aumentar FPS\n\nRealistic Graphics: Adiciona iluminação e efeitos visuais realistas"
infoText.Font = Enum.Font.Arcade
infoText.TextSize = 11
infoText.TextColor3 = Color3.fromRGB(180, 180, 200)
infoText.TextWrapped = true
infoText.TextYAlignment = Enum.TextYAlignment.Top
infoText.TextXAlignment = Enum.TextXAlignment.Left

local mini = Instance.new("TextButton", gui)
mini.Size = UDim2.new(0, 160, 0, 35)
mini.Position = UDim2.new(0.5, -80, 0, 20)
mini.BackgroundColor3 = Color3.fromRGB(25, 25, 40)
mini.BackgroundTransparency = 0.2
mini.Text = "Show MystericHub"
mini.Font = Enum.Font.Arcade
mini.TextSize = 12
mini.TextColor3 = Color3.new(1, 1, 1)
mini.Visible = false
mini.BorderSizePixel = 0
mini.Active = true
mini.Draggable = true
Instance.new("UICorner", mini).CornerRadius = UDim.new(0, 18)

local miniStroke = Instance.new("UIStroke", mini)
miniStroke.Thickness = 1.5
miniStroke.Color = Color3.fromRGB(60, 60, 80)
miniStroke.Transparency = 0.5

local fpsCounter = Instance.new("TextLabel", gui)
fpsCounter.Size = UDim2.new(0, 110, 0, 38)
fpsCounter.Position = UDim2.new(1, -120, 1, -48)
fpsCounter.BackgroundColor3 = Color3.fromRGB(20, 20, 35)
fpsCounter.BackgroundTransparency = 0.2
fpsCounter.BorderSizePixel = 0
fpsCounter.Text = "FPS: 60"
fpsCounter.Font = Enum.Font.Arcade
fpsCounter.TextSize = 15
fpsCounter.TextColor3 = Color3.fromRGB(100, 200, 255)
Instance.new("UICorner", fpsCounter).CornerRadius = UDim.new(0, 12)

local fpsStroke = Instance.new("UIStroke", fpsCounter)
fpsStroke.Color = Color3.fromRGB(80, 80, 120)
fpsStroke.Thickness = 1.5
fpsStroke.Transparency = 0.5

colorPicker.MouseButton1Click:Connect(function()
    currentColorIndex = currentColorIndex + 1
    if currentColorIndex > #themeColors then
        currentColorIndex = 1
    end
    
    Settings.ThemeColor = themeColors[currentColorIndex]
    
    TweenService:Create(colorCircle, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
        BackgroundColor3 = Settings.ThemeColor
    }):Play()
    
    TweenService:Create(colorPicker, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
        BackgroundColor3 = Settings.ThemeColor
    }):Play()
    task.wait(0.2)
    TweenService:Create(colorPicker, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
        BackgroundColor3 = Color3.fromRGB(35, 35, 50)
    }):Play()
    
    TweenService:Create(stroke, TweenInfo.new(0.4), {
        Color = Settings.ThemeColor
    }):Play()
    
    TweenService:Create(divider, TweenInfo.new(0.4), {
        BackgroundColor3 = Settings.ThemeColor
    }):Play()
    
    TweenService:Create(fpsStroke, TweenInfo.new(0.4), {
        Color = Settings.ThemeColor
    }):Play()
    
    TweenService:Create(fpsCounter, TweenInfo.new(0.4), {
        TextColor3 = Settings.ThemeColor
    }):Play()
    
    TweenService:Create(searchStroke, TweenInfo.new(0.4), {
        Color = Settings.ThemeColor
    }):Play()
    
    TweenService:Create(resultsStroke, TweenInfo.new(0.4), {
        Color = Settings.ThemeColor
    }):Play()
    
    TweenService:Create(miniStroke, TweenInfo.new(0.4), {
        Color = Settings.ThemeColor
    }):Play()
    
    for _, child in ipairs(side:GetChildren()) do
        if child:IsA("TextButton") and pages[child.Name] and pages[child.Name].Visible then
            TweenService:Create(child, TweenInfo.new(0.4), {
                BackgroundColor3 = Color3.new(
                    Settings.ThemeColor.R * 0.3,
                    Settings.ThemeColor.G * 0.3,
                    Settings.ThemeColor.B * 0.3
                )
            }):Play()
        end
    end
end)

-- FUNÇÃO PARA REPOSICIONAR ELEMENTOS APÓS MUDANÇA DE ORIENTAÇÃO
local function repositionPageElements()
    for pageName, elements in pairs(pageElements) do
        for _, data in ipairs(elements) do
            data.element.Position = UDim2.new(0, 15, 0, data.originalY)
        end
    end
end

formatBtn.MouseButton1Click:Connect(function()
    if Settings.UIOrientation == "vertical" then
        Settings.UIOrientation = "horizontal"
        
        TweenService:Create(square1, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Size = UDim2.new(0, 10, 0, 6),
            Position = UDim2.new(0.5, -5, 0.5, -8)
        }):Play()
        
        TweenService:Create(square2, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Size = UDim2.new(0, 10, 0, 6),
            Position = UDim2.new(0.5, -5, 0.5, 2)
        }):Play()
        
        TweenService:Create(main, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Size = UDim2.new(0, 600, 0, 350),
            Position = UDim2.new(0.5, -300, 0.5, -175)
        }):Play()
        
        TweenService:Create(side, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {
            Size = UDim2.new(1, 0, 0, 70),
            Position = UDim2.new(0, 0, 0, 48)
        }):Play()
        
        TweenService:Create(content, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {
            Size = UDim2.new(1, 0, 1, -118),
            Position = UDim2.new(0, 0, 0, 118)
        }):Play()
        
        task.wait(0.4)
        
        -- Reposicionar botões para horizontal
        local buttonPositions = {
            AIMBOT = 0,
            ESP = 1,
            VISUAL = 2,
            GRAPHICS = 3
        }
        
        for _, child in ipairs(side:GetChildren()) do
            if child:IsA("TextButton") and buttonPositions[child.Name] then
                local index = buttonPositions[child.Name]
                
                child:TweenSizeAndPosition(
                    UDim2.new(0, 135, 1, -20),
                    UDim2.new(0, 10 + (index * 145), 0, 10),
                    Enum.EasingDirection.Out,
                    Enum.EasingStyle.Quad,
                    0.3,
                    true
                )
            end
        end
        
        -- Reposicionar elementos das páginas
        repositionPageElements()
        
    else
        Settings.UIOrientation = "vertical"
        
        TweenService:Create(square1, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Size = UDim2.new(0, 10, 0, 10),
            Position = UDim2.new(0.5, -12, 0.5, -5)
        }):Play()
        
        TweenService:Create(square2, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {
            Size = UDim2.new(0, 10, 0, 10),
            Position = UDim2.new(0.5, 2, 0.5, -5)
        }):Play()
        
        TweenService:Create(main, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
            Size = UDim2.new(0, 400, 0, 600),
            Position = UDim2.new(0.5, -200, 0.5, -300)
        }):Play()
        
        TweenService:Create(side, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {
            Size = UDim2.new(0, 120, 1, -48),
            Position = UDim2.new(0, 0, 0, 48)
        }):Play()
        
        TweenService:Create(content, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {
            Size = UDim2.new(1, -120, 1, -48),
            Position = UDim2.new(0, 120, 0, 48)
        }):Play()
        
        task.wait(0.4)
        
        -- Reposicionar botões para vertical
        local buttonPositions = {
            AIMBOT = 0,
            ESP = 1,
            VISUAL = 2,
            GRAPHICS = 3
        }
        
        for _, child in ipairs(side:GetChildren()) do
            if child:IsA("TextButton") and buttonPositions[child.Name] then
                local index = buttonPositions[child.Name]
                
                child:TweenSizeAndPosition(
                    UDim2.new(1, -14, 0, 50),
                    UDim2.new(0, 7, 0, 10 + (index * 60)),
                    Enum.EasingDirection.Out,
                    Enum.EasingStyle.Quad,
                    0.3,
                    true
                )
            end
        end
        
        -- Reposicionar elementos das páginas
        repositionPageElements()
    end
end)

local ESPObjects = {}

local function CreateBox()
    local box = Drawing.new("Square")
    box.Visible = false
    box.Color = Color3.fromRGB(255, 0, 0)
    box.Thickness = 2
    box.Transparency = 1
    box.Filled = false
    return box
end

local function CreateLine()
    local line = Drawing.new("Line")
    line.Visible = false
    line.Color = Color3.fromRGB(255, 255, 255)
    line.Thickness = 1
    line.Transparency = 1
    return line
end

local function CreateText()
    local text = Drawing.new("Text")
    text.Visible = false
    text.Color = Color3.fromRGB(255, 255, 255)
    text.Size = 16
    text.Center = true
    text.Outline = true
    text.Transparency = 1
    return text
end

local function WorldToScreen(pos)
    local screenPos, onScreen = camera:WorldToViewportPoint(pos)
    return Vector2.new(screenPos.X, screenPos.Y), onScreen
end

local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 2
fovCircle.NumSides = 50
fovCircle.Radius = 150
fovCircle.Filled = false
fovCircle.Color = Color3.fromRGB(255, 255, 255)
fovCircle.Transparency = 1
fovCircle.Visible = false

local function GetClosestPlayer()
    if Settings.TargetPlayer and Settings.TargetPlayer.Character then
        local humanoid = Settings.TargetPlayer.Character:FindFirstChildOfClass("Humanoid")
        if humanoid and humanoid.Health > 0 then
            return Settings.TargetPlayer
        end
    end
    
    local closestPlayer = nil
    local closestDistance = math.huge
    
    for _, plr in pairs(Players:GetPlayers()) do
        if plr ~= player and plr.Character then
            local character = plr.Character
            local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
            local humanoid = character:FindFirstChildOfClass("Humanoid")
            
            if humanoidRootPart and humanoid and humanoid.Health > 0 then
                local distance = (player.Character.HumanoidRootPart.Position - humanoidRootPart.Position).Magnitude
                
                if distance < closestDistance then
                    closestDistance = distance
                    closestPlayer = plr
                end
            end
        end
    end
    
    return closestPlayer
end

local function PredictPosition(targetPart)
    if targetPart and targetPart.Parent then
        local velocity = targetPart.AssemblyLinearVelocity
        local distance = (camera.CFrame.Position - targetPart.Position).Magnitude
        local bulletSpeed = 1000
        local timeToHit = distance / bulletSpeed
        local predictedPosition = targetPart.Position + (velocity * timeToHit)
        return predictedPosition
    end
    return targetPart.Position
end

local lastTime = tick()
local frameCount = 0
local fps = 60

RunService.RenderStepped:Connect(function()
    frameCount = frameCount + 1
    local currentTime = tick()
    
    if currentTime - lastTime >= 1 then
        fps = frameCount
        fpsCounter.Text = "FPS: " .. fps
        
        if fps >= 60 then
            fpsCounter.TextColor3 = Color3.fromRGB(100, 255, 100)
        elseif fps >= 30 then
            fpsCounter.TextColor3 = Color3.fromRGB(255, 255, 100)
        else
            fpsCounter.TextColor3 = Color3.fromRGB(255, 100, 100)
        end
        
        frameCount = 0
        lastTime = currentTime
    end

    local mouseLocation = UserInputService:GetMouseLocation()
    fovCircle.Position = mouseLocation
    fovCircle.Radius = 150
    fovCircle.Visible = Settings.ShowFOV
    
    for _, plr in pairs(Players:GetPlayers()) do
        if plr ~= player then
            local character = plr.Character
            
            if character then
                local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
                local humanoid = character:FindFirstChildOfClass("Humanoid")
                
                if humanoidRootPart and humanoid and humanoid.Health > 0 then
                    if not ESPObjects[plr] then
                        ESPObjects[plr] = {
                            Box = CreateBox(),
                            Name = CreateText(),
                            Skeleton = {
                                CreateLine(), CreateLine(), CreateLine(), CreateLine(), CreateLine()
                            }
                        }
                    end
                    
                    local esp = ESPObjects[plr]
                    
                    if Settings.BoxESP then
                        local head = character:FindFirstChild("Head")
                        
                        if head then
                            local topPos, topOnScreen = WorldToScreen(head.Position + Vector3.new(0, head.Size.Y / 2, 0))
                            local bottomPos, bottomOnScreen = WorldToScreen(humanoidRootPart.Position - Vector3.new(0, humanoidRootPart.Size.Y, 0))
                            
                            if topOnScreen and bottomOnScreen then
                                local height = (bottomPos - topPos).Y
                                local width = height / 2
                                
                                esp.Box.Size = Vector2.new(width, height)
                                esp.Box.Position = Vector2.new(topPos.X - width / 2, topPos.Y)
                                esp.Box.Visible = true
                            else
                                esp.Box.Visible = false
                            end
                        else
                            esp.Box.Visible = false
                        end
                    else
                        esp.Box.Visible = false
                    end
                    
                    if Settings.NameESP then
                        local head = character:FindFirstChild("Head")
                        if head then
                            local pos, onScreen = WorldToScreen(head.Position + Vector3.new(0, head.Size.Y, 0))
                            if onScreen then
                                esp.Name.Position = pos
                                esp.Name.Text = plr.Name
                                esp.Name.Visible = true
                            else
                                esp.Name.Visible = false
                            end
                        else
                            esp.Name.Visible = false
                        end
                    else
                        esp.Name.Visible = false
                    end
                    
                    if Settings.SkeletonESP then
                        local head = character:FindFirstChild("Head")
                        local leftArm = character:FindFirstChild("Left Arm") or character:FindFirstChild("LeftUpperArm")
                        local rightArm = character:FindFirstChild("Right Arm") or character:FindFirstChild("RightUpperArm")
                        local leftLeg = character:FindFirstChild("Left Leg") or character:FindFirstChild("LeftUpperLeg")
                        local rightLeg = character:FindFirstChild("Right Leg") or character:FindFirstChild("RightUpperLeg")
                        
                        local parts = {
                            {head, humanoidRootPart},
                            {humanoidRootPart, leftArm},
                            {humanoidRootPart, rightArm},
                            {humanoidRootPart, leftLeg},
                            {humanoidRootPart, rightLeg}
                        }
                        
                        for i, connection in pairs(parts) do
                            local line = esp.Skeleton[i]
                            
                            if connection[1] and connection[2] then
                                local pos1, onScreen1 = WorldToScreen(connection[1].Position)
                                local pos2, onScreen2 = WorldToScreen(connection[2].Position)
                                
                                if onScreen1 and onScreen2 then
                                    line.From = pos1
                                    line.To = pos2
                                    line.Visible = true
                                else
                                    line.Visible = false
                                end
                            else
                                line.Visible = false
                            end
                        end
                    else
                        for _, line in pairs(esp.Skeleton) do
                            line.Visible = false
                        end
                    end
                else
                    if ESPObjects[plr] then
                        ESPObjects[plr].Box.Visible = false
                        ESPObjects[plr].Name.Visible = false
                        for _, line in pairs(ESPObjects[plr].Skeleton) do
                            line.Visible = false
                        end
                    end
                end
            end
        end
    end
    
    if Settings.Aimbot then
        local target = GetClosestPlayer()
        
        if target and target.Character then
            local head = target.Character:FindFirstChild("Head")
            
            if head then
                local predictedPos = PredictPosition(head)
                camera.CFrame = CFrame.new(camera.CFrame.Position, predictedPos)
            end
        end
    end
end)

local targetLocked = false
local lockedTarget = nil
local shiftPressed = false

targetBtn.MouseButton1Click:Connect(function()
    Settings.TargetLock = not Settings.TargetLock
    targetLocked = Settings.TargetLock
    
    if targetLocked then
        lockedTarget = GetClosestPlayer()
    else
        lockedTarget = nil
    end
end)

UserInputService.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.RightShift then
        shiftPressed = true
    end
end)

UserInputService.InputEnded:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.LeftShift or input.KeyCode == Enum.KeyCode.RightShift then
        shiftPressed = false
    end
end)

RunService.RenderStepped:Connect(function()
    if targetLocked and lockedTarget and lockedTarget.Character and lockedTarget.Character:FindFirstChild("Head") and lockedTarget.Character:FindFirstChild("Humanoid") and lockedTarget.Character.Humanoid.Health > 0 then
        if shiftPressed then
            local head = lockedTarget.Character.Head
            local predictedPos = PredictPosition(head)
            camera.CFrame = CFrame.new(camera.CFrame.Position, predictedPos)
        end
    else
        if targetLocked then
            lockedTarget = nil
            targetLocked = false
            Settings.TargetLock = false
            targetBtn.Text = "OFF"
            targetBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
        end
    end
end)

RunService.Heartbeat:Connect(function()
    if Settings.RemoveFog then
        game.Lighting.FogEnd = 100000
        if game.Lighting:FindFirstChild("Atmosphere") then
            game.Lighting.Atmosphere.Density = 0
        end
    end
    
    if Settings.LowGraphics then
        Settings.RealisticGraphics = false
        realisticGraphicsBtn.Text = "OFF"
        realisticGraphicsBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
        
        local lighting = game:GetService("Lighting")
        lighting.GlobalShadows = false
        lighting.FogEnd = 100000
        lighting.Brightness = 2
        
        for _, effect in pairs(lighting:GetChildren()) do
            if effect:IsA("PostEffect") or effect:IsA("BloomEffect") or effect:IsA("BlurEffect") or effect:IsA("ColorCorrectionEffect") or effect:IsA("SunRaysEffect") then
                effect.Enabled = false
            end
        end
        
        for _, obj in pairs(workspace:GetDescendants()) do
            if obj:IsA("ParticleEmitter") or obj:IsA("Trail") or obj:IsA("Smoke") or obj:IsA("Fire") or obj:IsA("Sparkles") then
                obj.Enabled = false
            end
        end
        
        settings().Rendering.QualityLevel = Enum.QualityLevel.Level01
    else
        settings().Rendering.QualityLevel = Enum.QualityLevel.Automatic
    end
    
    if Settings.RealisticGraphics then
        Settings.LowGraphics = false
        lowGraphicsBtn.Text = "OFF"
        lowGraphicsBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
        
        local lighting = game:GetService("Lighting")
        lighting.GlobalShadows = true
        lighting.Brightness = 1.5
        lighting.OutdoorAmbient = Color3.fromRGB(100, 100, 120)
        lighting.Ambient = Color3.fromRGB(0, 0, 0)
        lighting.ColorShift_Top = Color3.fromRGB(255, 247, 237)
        lighting.ColorShift_Bottom = Color3.fromRGB(0, 0, 0)
        
        if not lighting:FindFirstChild("RealisticBloom") then
            local bloom = Instance.new("BloomEffect")
            bloom.Name = "RealisticBloom"
            bloom.Intensity = 0.4
            bloom.Size = 24
            bloom.Threshold = 0.8
            bloom.Parent = lighting
        end
        
        if not lighting:FindFirstChild("RealisticColorCorrection") then
            local colorCorrection = Instance.new("ColorCorrectionEffect")
            colorCorrection.Name = "RealisticColorCorrection"
            colorCorrection.Brightness = 0.05
            colorCorrection.Contrast = 0.2
            colorCorrection.Saturation = 0.1
            colorCorrection.TintColor = Color3.fromRGB(255, 250, 245)
            colorCorrection.Parent = lighting
        end
        
        if not lighting:FindFirstChild("RealisticSunRays") then
            local sunRays = Instance.new("SunRaysEffect")
            sunRays.Name = "RealisticSunRays"
            sunRays.Intensity = 0.15
            sunRays.Spread = 0.4
            sunRays.Parent = lighting
        end
        
        if not lighting:FindFirstChild("RealisticAtmosphere") then
            local atmosphere = Instance.new("Atmosphere")
            atmosphere.Name = "RealisticAtmosphere"
            atmosphere.Density = 0.3
            atmosphere.Offset = 0.25
            atmosphere.Color = Color3.fromRGB(199, 199, 199)
            atmosphere.Decay = Color3.fromRGB(106, 112, 125)
            atmosphere.Glare = 0.3
            atmosphere.Haze = 1.5
            atmosphere.Parent = lighting
        end
        
        settings().Rendering.QualityLevel = Enum.QualityLevel.Level21
    else
        local lighting = game:GetService("Lighting")
        if lighting:FindFirstChild("RealisticBloom") then
            lighting.RealisticBloom:Destroy()
        end
        if lighting:FindFirstChild("RealisticColorCorrection") then
            lighting.RealisticColorCorrection:Destroy()
        end
        if lighting:FindFirstChild("RealisticSunRays") then
            lighting.RealisticSunRays:Destroy()
        end
        if lighting:FindFirstChild("RealisticAtmosphere") then
            lighting.RealisticAtmosphere:Destroy()
        end
    end
end)

local function tween(obj, props)
    TweenService:Create(obj, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), props):Play()
end

closeBtn.MouseButton1Click:Connect(function()
    tween(main, {Size = UDim2.new(0, 0, 0, 0)})
    task.wait(0.3)
    gui:Destroy()
end)

closeBtn.MouseEnter:Connect(function()
    TweenService:Create(closeBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(255, 70, 80)}):Play()
end)

closeBtn.MouseLeave:Connect(function()
    TweenService:Create(closeBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(200, 50, 60)}):Play()
end)

minimize.MouseButton1Click:Connect(function()
    tween(main, {Size = UDim2.new(0, 0, 0, 0)})
    task.wait(0.3)
    main.Visible = false
    mini.Visible = true
end)

mini.MouseButton1Click:Connect(function()
    main.Visible = true
    main.Size = UDim2.new(0, 0, 0, 0)
    if Settings.UIOrientation == "vertical" then
        tween(main, {Size = UDim2.new(0, 400, 0, 600)})
    else
        tween(main, {Size = UDim2.new(0, 600, 0, 350)})
    end
    mini.Visible = false
end)

Players.PlayerRemoving:Connect(function(plr)
    if ESPObjects[plr] then
        ESPObjects[plr].Box:Remove()
        ESPObjects[plr].Name:Remove()
        for _, line in pairs(ESPObjects[plr].Skeleton) do
            line:Remove()
        end
        ESPObjects[plr] = nil
    end
end)

Features & Information

Um script de aimbot ótimo para jogos que tem lock on, e os que não tem, ajuda bastante.

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts