FACHUB V6
Key RequiredUniversal

FACHUB V6

Universal ScriptBigbooo7yBigbooo7y 535 views 8.9K executesUpdated Jun 14, 2026
Unrated
00
Lua Script•1051 lines (41010 chars)
-- // FUCK ANTICHEAT HUB v6 (Modern Premium Edition - Cinematic Intro & Profile Variant)

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local Workspace = game:GetService("Workspace")

local localPlayer = Players.LocalPlayer
local camera = Workspace.CurrentCamera

local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local root = character:WaitForChild("HumanoidRootPart")

-- State Variables
local menuVisible = false 
local flying = false
local flySpeed = 50
local walkSpeed = 16
local espEnabled = false
local speedEnabled = false
local bv, bg

local tpWalkEnabled = false
local tpWalkSpeed = 50
local noclipEnabled = false
local spectatingEnabled = false

local aimAssistEnabled = false
local FOV_RADIUS = 150
local aimSmoothInput = 5
local aimTargetPart = "Head"
local aimActive = false
local currentTarget = nil
local IGNORE_LIST = {localPlayer.Character, camera}

local currentTab = "Combat"
local rainbowEnabled = true
local currentTheme = "OLED" -- Default Theme

local function getEngineSmoothness()
    if aimSmoothInput >= 10 then return 1.0 end
    return math.clamp(aimSmoothInput * 0.08, 0.01, 0.95)
end

-- ────────────────────────────────────────────
-- ADVANCED DRAWING ENVIRONMENT (FOV CIRCLE FIXED)
-- ────────────────────────────────────────────
local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 2
fovCircle.Visible = false
fovCircle.Color = Color3.fromRGB(255, 60, 60)
fovCircle.Filled = false
fovCircle.Transparency = 0.8
fovCircle.Radius = FOV_RADIUS

-- ────────────────────────────────────────────
-- SCREEN GUI & CORE CONTAINERS
-- ────────────────────────────────────────────
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "FACHub_Premium"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.DisplayOrder = 999999999 
ScreenGui.IgnoreGuiInset = true    
ScreenGui.Parent = localPlayer:WaitForChild("PlayerGui")

local EXP_SIZE = UDim2.new(0, 520, 0, 360)
local lastCustomPosition = UDim2.new(0.5, -260, 0.5, -180)

local MainFrame = Instance.new("Frame")
MainFrame.Size = EXP_SIZE
MainFrame.Position = lastCustomPosition
MainFrame.BackgroundTransparency = 1 
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.ClipsDescendants = true 
MainFrame.Visible = false 
MainFrame.Parent = ScreenGui

local FrameCorner = Instance.new("UICorner", MainFrame)
FrameCorner.CornerRadius = UDim.new(0, 0) -- Square Corners

-- ── GUI BACKGROUND IMAGE INTEGRATION ──
local GuiBackground = Instance.new("ImageLabel")
GuiBackground.Name = "GuiBackground"
GuiBackground.Size = UDim2.new(1, 0, 1, 0)
GuiBackground.Position = UDim2.new(0, 0, 0, 0)
GuiBackground.BackgroundTransparency = 1
GuiBackground.Image = "rbxthumb://type=Asset&id=269912659&w=420&h=420"
GuiBackground.ScaleType = Enum.ScaleType.Crop 
GuiBackground.ImageColor3 = Color3.fromRGB(255, 255, 255)
GuiBackground.ZIndex = 0 
GuiBackground.Parent = MainFrame

local UIStroke = Instance.new("UIStroke", MainFrame)
UIStroke.Thickness = 4.5
UIStroke.Transparency = 0.1
UIStroke.Color = Color3.fromRGB(80, 80, 100)
UIStroke.ZIndex = 1

RunService.RenderStepped:Connect(function()
    if rainbowEnabled then
        UIStroke.Color = Color3.fromHSV((tick() * 0.4) % 1, 0.8, 0.9)
    end
end)

-- ── GLOSSY STYLING AUXILIARY ENGINE ──
local function applyGlossyStyle(button, isToggle)
    button.AutoButtonColor = false 
    
    local GlossGradient = Instance.new("UIGradient")
    GlossGradient.Rotation = 90
    GlossGradient.Color = ColorSequence.new({
        ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
        ColorSequenceKeypoint.new(0.4, Color3.fromRGB(200, 200, 200)),
        ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 100, 100))
    })
    GlossGradient.Parent = button

    local BStroke = Instance.new("UIStroke", button)
    BStroke.Thickness = 1
    BStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
    BStroke.Color = Color3.fromRGB(255, 255, 255)
    BStroke.Transparency = 0.85

    button.MouseEnter:Connect(function()
        if not menuVisible then return end
        TweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            BackgroundTransparency = isToggle and button.BackgroundTransparency or 0.1
        }):Play()
        TweenService:Create(BStroke, TweenInfo.new(0.2), {Transparency = 0.5}):Play()
    end)

    button.MouseLeave:Connect(function()
        if not menuVisible then return end
        TweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
            BackgroundTransparency = isToggle and button.BackgroundTransparency or 0.3
        }):Play()
        TweenService:Create(BStroke, TweenInfo.new(0.2), {Transparency = 0.85}):Play()
    end)
end

-- ────────────────────────────────────────────
-- CINEMATIC INTRODUCTION STAGE
-- ────────────────────────────────────────────
local IntroContainer = Instance.new("Frame")
IntroContainer.Size = UDim2.new(1, 0, 1, 0)
IntroContainer.BackgroundTransparency = 1
IntroContainer.ZIndex = 999999
IntroContainer.Parent = ScreenGui

local IntroTitle = Instance.new("TextLabel")
IntroTitle.Size = UDim2.new(0, 400, 0, 50)
IntroTitle.Position = UDim2.new(0.5, -200, 0.5, -45)
IntroTitle.BackgroundTransparency = 1
IntroTitle.Text = "FACHUB v6"
IntroTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
IntroTitle.TextSize = 48
IntroTitle.Font = Enum.Font.GothamBold
IntroTitle.TextTransparency = 1
IntroTitle.Parent = IntroContainer

local IntroLine = Instance.new("Frame")
IntroLine.Size = UDim2.new(0, 0, 0, 3) 
IntroLine.Position = UDim2.new(0.5, 0, 0.5, 12)
IntroLine.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
IntroLine.BorderSizePixel = 0
IntroLine.Parent = IntroContainer

local IntroLineStroke = Instance.new("UIStroke", IntroLine)
IntroLineStroke.Thickness = 1.5
IntroLineStroke.Transparency = 0.4

local IntroSub = Instance.new("TextLabel")
IntroSub.Size = UDim2.new(0, 400, 0, 30)
IntroSub.Position = UDim2.new(0.5, -200, 0.5, 22) 
IntroSub.BackgroundTransparency = 1
IntroSub.Text = "script by Team KYSthe3rd"
IntroSub.TextColor3 = Color3.fromRGB(180, 180, 190)
IntroSub.TextSize = 16
IntroSub.Font = Enum.Font.GothamMedium
IntroSub.TextTransparency = 1
IntroSub.Parent = IntroContainer

RunService.RenderStepped:Connect(function()
    if rainbowEnabled then
        IntroLine.BackgroundColor3 = Color3.fromHSV((tick() * 0.4) % 1, 0.8, 1)
        IntroLineStroke.Color = IntroLine.BackgroundColor3
    else
        IntroLine.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
        IntroLineStroke.Color = Color3.fromRGB(255, 255, 255)
    end
end)

local function runIntroSequence()
    task.wait(0.1)
    IntroTitle.Size = UDim2.new(0, 400, 0, 50)
    IntroTitle.Position = UDim2.new(0.5, -200, 0.5, -55)
    
    local titleTweenInfo = TweenInfo.new(0.8, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out)
    TweenService:Create(IntroTitle, titleTweenInfo, {
        Position = UDim2.new(0.5, -200, 0.5, -45),
        TextTransparency = 0
    }):Play()
    
    task.wait(0.5)
    local lineTweenInfo = TweenInfo.new(0.7, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    TweenService:Create(IntroLine, lineTweenInfo, {
        Size = UDim2.new(0, 280, 0, 3),
        Position = UDim2.new(0.5, -140, 0.5, 12)
    }):Play()
    
    task.wait(0.4)
    local subTweenInfo = TweenInfo.new(0.8, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
    TweenService:Create(IntroSub, subTweenInfo, {
        Position = UDim2.new(0.5, -200, 0.5, 22),
        TextTransparency = 0
    }):Play()
    
    task.wait(2.2)
    local outroInfo = TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
    local t1 = TweenService:Create(IntroTitle, outroInfo, {TextTransparency = 1, Position = UDim2.new(0.5, -200, 0.5, -35)})
    local t2 = TweenService:Create(IntroSub, outroInfo, {TextTransparency = 1, Position = UDim2.new(0.5, -200, 0.5, 12)})
    local t3 = TweenService:Create(IntroLine, outroInfo, {Size = UDim2.new(0, 0, 0, 3), Position = UDim2.new(0.5, 0, 0.5, 12)})
    
    t1:Play(); t2:Play(); t3:Play()
    t1.Completed:Wait()
    IntroContainer:Destroy()
    showMenu()
end

-- ────────────────────────────────────────────
-- TOGGLE MOBILE ICON SYSTEM
-- ────────────────────────────────────────────
local MobileBtn = Instance.new("ImageButton")
MobileBtn.Size = UDim2.new(0, 52, 0, 52)
MobileBtn.Position = UDim2.new(0, 20, 0.4, 0)
MobileBtn.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
MobileBtn.BorderSizePixel = 0
MobileBtn.ZIndex = 20
MobileBtn.Visible = false
MobileBtn.Parent = ScreenGui

local BtnLabel = Instance.new("ImageLabel", MobileBtn)
BtnLabel.Size = UDim2.new(0.7, 0, 0.7, 0)
BtnLabel.Position = UDim2.new(0.15, 0, 0.15, 0)
BtnLabel.BackgroundTransparency = 1
-- FIX: Using the rbxthumb endpoint forces Roblox to retrieve the image of the Decal ID 
BtnLabel.Image = "rbxthumb://type=Asset&id=133148958229622&w=150&h=150"  
BtnLabel.ScaleType = Enum.ScaleType.Fit
BtnLabel.ZIndex = 21
BtnLabel.Visible = false 

local MBStroke = Instance.new("UIStroke", MobileBtn)
MBStroke.Thickness = 2
MBStroke.Color = Color3.fromRGB(100, 100, 120)

Instance.new("UICorner", MobileBtn).CornerRadius = UDim.new(1, 0)

RunService.RenderStepped:Connect(function()
    if rainbowEnabled then
        MBStroke.Color = Color3.fromHSV((tick() * 0.4 + 0.1) % 1, 0.8, 0.9)
    end
end)

local mbDragging, mbMoved, mbDragStart, mbStartPos = false, false, nil, nil
MobileBtn.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        mbDragging = true
        mbMoved = false
        mbDragStart = input.Position
        mbStartPos = MobileBtn.Position
    end
end)
UserInputService.InputChanged:Connect(function(input)
    if mbDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - mbDragStart
        if delta.Magnitude > 4 then mbMoved = true end
        MobileBtn.Position = UDim2.new(mbStartPos.X.Scale, mbStartPos.X.Offset + delta.X, mbStartPos.Y.Scale, mbStartPos.Y.Offset + delta.Y)
    end
end)
UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        mbDragging = false
    end
end)

-- ────────────────────────────────────────────
-- SIDEBAR & NAVIGATION PANELS
-- ────────────────────────────────────────────
local Sidebar = Instance.new("Frame", MainFrame)
Sidebar.Size = UDim2.new(0, 140, 1, 0)
Sidebar.BackgroundTransparency = 1 
Sidebar.BorderSizePixel = 0
Sidebar.ZIndex = 2

local SideCorner = Instance.new("UICorner", Sidebar)
SideCorner.CornerRadius = UDim.new(0, 0) -- Square Sidebar Corners

local SidebarPatch = Instance.new("Frame", Sidebar)
SidebarPatch.Size = UDim2.new(0, 15, 1, 0)
SidebarPatch.Position = UDim2.new(1, -15, 0, 0)
SidebarPatch.BackgroundTransparency = 1
SidebarPatch.BorderSizePixel = 0
SidebarPatch.ZIndex = 2

local Title = Instance.new("TextLabel", Sidebar)
Title.Size = UDim2.new(1, 0, 0, 50)
Title.BackgroundTransparency = 1
Title.Text = "FACHUB v6"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 16
Title.Font = Enum.Font.GothamBold
Title.ZIndex = 3

-- ────────────────────────────────────────────
-- DYNAMIC ACCOUNT USER INTEGRATION
-- ────────────────────────────────────────────
local UserCard = Instance.new("Frame", Sidebar)
UserCard.Size = UDim2.new(1, 0, 0, 50)
UserCard.Position = UDim2.new(0, 0, 1, -55)
UserCard.BackgroundTransparency = 1
UserCard.ZIndex = 3

local UserAvatarImage = Instance.new("ImageLabel", UserCard)
UserAvatarImage.Size = UDim2.new(0, 34, 0, 34)
UserAvatarImage.Position = UDim2.new(0, 12, 0.5, -17)
UserAvatarImage.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
UserAvatarImage.BackgroundTransparency = 0.4
UserAvatarImage.BorderSizePixel = 0
UserAvatarImage.Image = "rbxthumb://type=AvatarHeadShot&id=" .. localPlayer.UserId .. "&w=150&h=150"
UserAvatarImage.ZIndex = 3
Instance.new("UICorner", UserAvatarImage).CornerRadius = UDim.new(1, 0)

local UserNameLabel = Instance.new("TextLabel", UserCard)
UserNameLabel.Size = UDim2.new(1, -56, 0, 16)
UserNameLabel.Position = UDim2.new(0, 52, 0, 8)
UserNameLabel.BackgroundTransparency = 1
UserNameLabel.Text = localPlayer.DisplayName
UserNameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
UserNameLabel.TextSize = 12
UserNameLabel.Font = Enum.Font.GothamBold
UserNameLabel.TextXAlignment = Enum.TextXAlignment.Left
UserNameLabel.ZIndex = 3

local UserIDLabel = Instance.new("TextLabel", UserCard)
UserIDLabel.Size = UDim2.new(1, -56, 0, 14)
UserIDLabel.Position = UDim2.new(0, 52, 0, 24)
UserIDLabel.BackgroundTransparency = 1
UserIDLabel.Text = "ID: " .. localPlayer.UserId
UserIDLabel.TextColor3 = Color3.fromRGB(150, 150, 160)
UserIDLabel.TextSize = 10
UserIDLabel.Font = Enum.Font.GothamMedium
UserIDLabel.TextXAlignment = Enum.TextXAlignment.Left
UserIDLabel.ZIndex = 3
UserIDLabel:SetAttribute("IsSubText", true)

local allLabels = {UserNameLabel, UserIDLabel, Title}
local allFrames = {}
local allInputs = {}
local allButtons = {}

local TabContainer = Instance.new("Frame", Sidebar)
TabContainer.Size = UDim2.new(1, 0, 1, -115) 
TabContainer.Position = UDim2.new(0, 0, 0, 50)
TabContainer.BackgroundTransparency = 1
TabContainer.ZIndex = 3

local TabListLayout = Instance.new("UIListLayout", TabContainer)
TabListLayout.SortOrder = Enum.SortOrder.LayoutOrder
TabListLayout.Padding = UDim.new(0, 4)
TabListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center

-- Main Content Window Area
local ContentContainer = Instance.new("Frame", MainFrame)
ContentContainer.Size = UDim2.new(1, -155, 1, -55)
ContentContainer.Position = UDim2.new(0, 148, 0, 48)
ContentContainer.BackgroundTransparency = 1
ContentContainer.ZIndex = 2

local Topbar = Instance.new("Frame", MainFrame)
Topbar.Size = UDim2.new(1, -140, 0, 45)
Topbar.Position = UDim2.new(0, 140, 0, 0)
Topbar.BackgroundTransparency = 1
Topbar.ZIndex = 2

local MinBtn = Instance.new("TextButton", Topbar)
MinBtn.Size = UDim2.new(0, 28, 0, 28)
MinBtn.Position = UDim2.new(1, -68, 0, 10)
MinBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
MinBtn.BackgroundTransparency = 0.85
MinBtn.Text = "─"
MinBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
MinBtn.TextSize = 12
MinBtn.Font = Enum.Font.GothamBold
MinBtn.ZIndex = 4
Instance.new("UICorner", MinBtn).CornerRadius = UDim.new(0, 6)
applyGlossyStyle(MinBtn, false)

local CloseBtn = Instance.new("TextButton", Topbar)
CloseBtn.Size = UDim2.new(0, 28, 0, 28)
CloseBtn.Position = UDim2.new(1, -34, 0, 10)
CloseBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 100)
CloseBtn.BackgroundTransparency = 0.7
CloseBtn.Text = "✕"
CloseBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
CloseBtn.TextSize = 12
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.ZIndex = 4
Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 6)
applyGlossyStyle(CloseBtn, false)

-- ────────────────────────────────────────────
-- THEME SYSTEM CONFIGURATION (BLACK OVERLAYS FOR IMAGE MODE)
-- ────────────────────────────────────────────
local ThemeConfig = {
    OLED = {
        FrameBG = Color3.fromRGB(0, 0, 0),
        FrameTrans = 0.55,
        InputBG = Color3.fromRGB(0, 0, 0),
        InputTrans = 0.8,
        Text = Color3.fromRGB(255, 255, 255),
        SubText = Color3.fromRGB(200, 200, 200),
        ButtonBG = Color3.fromRGB(0, 0, 0),
        ButtonTrans = 0.5,
        TabActive = Color3.fromRGB(255, 255, 255),
        TabActiveTrans = 0.85,
        TabInactive = Color3.fromRGB(0, 0, 0),
        TabInactiveTrans = 0.7,
        TabActiveText = Color3.fromRGB(255, 255, 255)
    },
    Dark = {
        FrameBG = Color3.fromRGB(20, 22, 26),
        FrameTrans = 0.6,
        InputBG = Color3.fromRGB(15, 15, 18),
        InputTrans = 0.85,
        Text = Color3.fromRGB(240, 240, 245),
        SubText = Color3.fromRGB(160, 165, 175),
        ButtonBG = Color3.fromRGB(25, 25, 30),
        ButtonTrans = 0.6,
        TabActive = Color3.fromRGB(255, 255, 255),
        TabActiveTrans = 0.85,
        TabInactive = Color3.fromRGB(0, 0, 0),
        TabInactiveTrans = 0.7,
        TabActiveText = Color3.fromRGB(0, 0, 0)
    },
    Light = {
        FrameBG = Color3.fromRGB(255, 255, 255),
        FrameTrans = 0.7,
        InputBG = Color3.fromRGB(240, 242, 245),
        InputTrans = 0.5,
        Text = Color3.fromRGB(0, 0, 0),
        SubText = Color3.fromRGB(70, 70, 75),
        ButtonBG = Color3.fromRGB(230, 230, 235),
        ButtonTrans = 0.4,
        TabActive = Color3.fromRGB(0, 0, 0),
        TabActiveTrans = 0.8,
        TabInactive = Color3.fromRGB(255, 255, 255),
        TabInactiveTrans = 0.6,
        TabActiveText = Color3.fromRGB(255, 255, 255)
    }
}

function applyTheme(themeName)
    currentTheme = themeName
    local colors = ThemeConfig[themeName]
    if not colors then return end
    
    local tInfo = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    
    for _, lbl in ipairs(allLabels) do
        if lbl:GetAttribute("IsSubText") then
            TweenService:Create(lbl, tInfo, {TextColor3 = colors.SubText}):Play()
        else
            TweenService:Create(lbl, tInfo, {TextColor3 = colors.Text}):Play()
        end
    end
    
    for _, f in ipairs(allFrames) do
        TweenService:Create(f, tInfo, {BackgroundColor3 = colors.FrameBG, BackgroundTransparency = colors.FrameTrans}):Play()
    end
    
    for _, input in ipairs(allInputs) do
        TweenService:Create(input, tInfo, {BackgroundColor3 = colors.InputBG, BackgroundTransparency = colors.InputTrans, TextColor3 = colors.Text}):Play()
    end
    
    for _, b in ipairs(allButtons) do
        if not b:GetAttribute("IsTab") then
            TweenService:Create(b, tInfo, {BackgroundColor3 = colors.ButtonBG, BackgroundTransparency = colors.ButtonTrans, TextColor3 = colors.Text}):Play()
        else
            local isCurrent = (b.Text == currentTab)
            TweenService:Create(b, tInfo, {
                BackgroundColor3 = isCurrent and colors.TabActive or colors.TabInactive,
                BackgroundTransparency = isCurrent and colors.TabActiveTrans or colors.TabInactiveTrans,
                TextColor3 = isCurrent and colors.TabActiveText or colors.SubText
            }):Play()
        end
    end
end

-- ────────────────────────────────────────────
-- ANIMATION INTERACTION SCHEME
-- ────────────────────────────────────────────
local animating = false

function showMenu()
    if animating then return end
    animating = true
    menuVisible = true
    
    BtnLabel.Visible = false 
    MainFrame.Position = MobileBtn.Position
    MainFrame.Size = MobileBtn.Size
    GuiBackground.ImageTransparency = 1 
    FrameCorner.CornerRadius = UDim.new(1, 0)
    
    Sidebar.Visible = false
    ContentContainer.Visible = false
    Topbar.Visible = false
    MainFrame.Visible = true
    MobileBtn.Visible = false

    local morphInfo = TweenInfo.new(0.56, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out)
    
    local tPos = TweenService:Create(MainFrame, morphInfo, {Position = lastCustomPosition})
    local tSize = TweenService:Create(MainFrame, morphInfo, {Size = EXP_SIZE})
    local tCorner = TweenService:Create(FrameCorner, morphInfo, {CornerRadius = UDim.new(0, 0)}) 
    local tFade = TweenService:Create(GuiBackground, morphInfo, {ImageTransparency = 0})

    tPos:Play(); tSize:Play(); tCorner:Play(); tFade:Play()
    
    tPos.Completed:Connect(function()
        Sidebar.Visible = true
        ContentContainer.Visible = true
        Topbar.Visible = true
        applyTheme(currentTheme)
        animating = false
    end)
end

local function hideMenu()
    if animating then return end
    animating = true
    menuVisible = false
    
    Sidebar.Visible = false
    ContentContainer.Visible = false
    Topbar.Visible = false
    BtnLabel.Visible = false

    local morphInfo = TweenInfo.new(0.46, Enum.EasingStyle.Exponential, Enum.EasingDirection.InOut)

    local tPos = TweenService:Create(MainFrame, morphInfo, {Position = MobileBtn.Position})
    local tSize = TweenService:Create(MainFrame, morphInfo, {Size = MobileBtn.Size})
    local tCorner = TweenService:Create(FrameCorner, morphInfo, {CornerRadius = UDim.new(1, 0)})
    local tFade = TweenService:Create(GuiBackground, morphInfo, {ImageTransparency = 1})

    tPos:Play(); tSize:Play(); tCorner:Play(); tFade:Play()

    tPos.Completed:Connect(function()
        MainFrame.Visible = false
        MobileBtn.Visible = true
        BtnLabel.Visible = true 
        animating = false
    end)
end

local function toggleMenu()
    if menuVisible then hideMenu() else showMenu() end
end

MinBtn.MouseButton1Click:Connect(hideMenu)
MobileBtn.MouseButton1Click:Connect(function() if not mbMoved then toggleMenu() end end)
UserInputService.InputBegan:Connect(function(input, p) if not p and input.KeyCode == Enum.KeyCode.Home then toggleMenu() end end)

-- Draggable Logic for Main Window
local dragging, dragInput, dragStart, startPos
MainFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true; dragStart = input.Position; startPos = MainFrame.Position
    end
end)
MainFrame.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = false
        if menuVisible then lastCustomPosition = MainFrame.Position end
    end
end)
MainFrame.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end
end)
UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging and menuVisible 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)

CloseBtn.MouseButton1Click:Connect(function()
    fovCircle:Destroy()
    ScreenGui:Destroy()
end)

-- ────────────────────────────────────────────
-- COMPONENT FACTORIES (UI Construction KIT)
-- ────────────────────────────────────────────
local tabsList = {"Combat", "Movement", "Visuals", "Settings"}
local panels = {}

for _, name in ipairs(tabsList) do
    local pf = Instance.new("ScrollingFrame")
    pf.Size = UDim2.new(1, 0, 1, 0)
    pf.BackgroundTransparency = 1
    pf.Visible = (name == currentTab)
    pf.ScrollBarThickness = 4
    pf.ScrollBarImageColor3 = Color3.fromRGB(240, 240, 245)
    pf.CanvasSize = UDim2.new(0, 0, 0, 0)
    pf.AutomaticCanvasSize = Enum.AutomaticSize.Y
    pf.ZIndex = 3
    pf.Parent = ContentContainer
    
    local layout = Instance.new("UIListLayout", pf)
    layout.SortOrder = Enum.SortOrder.LayoutOrder
    layout.Padding = UDim.new(0, 6)
    
    local pad = Instance.new("UIPadding", pf)
    pad.PaddingTop = UDim.new(0, 4)
    pad.PaddingBottom = UDim.new(0, 10)
    
    panels[name] = pf
end

local function createTabButton(name)
    local btn = Instance.new("TextButton", TabContainer)
    btn.Size = UDim2.new(0.88, 0, 0, 34)
    btn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    btn.BackgroundTransparency = 0.7
    btn.Text = name
    btn.TextColor3 = Color3.fromRGB(150, 150, 160)
    btn.TextSize = 13
    btn.Font = Enum.Font.GothamBold
    btn:SetAttribute("IsTab", true)
    btn.ZIndex = 4
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
    table.insert(allButtons, btn)
    applyGlossyStyle(btn, true)
    
    local stroke = Instance.new("UIStroke", btn)
    stroke.Thickness = 1
    stroke.Color = Color3.fromRGB(255, 255, 255)
    stroke.Transparency = 0.85
    
    btn.MouseButton1Click:Connect(function()
        if not menuVisible then return end
        currentTab = name
        for tName, panel in pairs(panels) do
            panel.Visible = (tName == currentTab)
        end
        
        local colors = ThemeConfig[currentTheme]
        for _, otherBtn in ipairs(TabContainer:GetChildren()) do
            if otherBtn:IsA("TextButton") then
                local isCurrent = (otherBtn.Text == currentTab)
                TweenService:Create(otherBtn, TweenInfo.new(0.2), {
                    BackgroundColor3 = isCurrent and colors.TabActive or colors.TabInactive,
                    BackgroundTransparency = isCurrent and colors.TabActiveTrans or colors.TabInactiveTrans,
                    TextColor3 = isCurrent and colors.TabActiveText or colors.SubText
                }):Play()
            end
        end
    end)
end
for _, name in ipairs(tabsList) do createTabButton(name) end

local function addToggle(tabName, text, default, callback)
    local p = panels[tabName]
    local frame = Instance.new("Frame", p)
    frame.Size = UDim2.new(0.96, 0, 0, 38)
    frame.BorderSizePixel = 0
    frame.ZIndex = 3
    Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6)
    table.insert(allFrames, frame)
    
    local lbl = Instance.new("TextLabel", frame)
    lbl.Size = UDim2.new(0.7, 0, 1, 0)
    lbl.Position = UDim2.new(0, 12, 0, 0)
    lbl.BackgroundTransparency = 1
    lbl.Text = text
    lbl.TextColor3 = Color3.fromRGB(220, 220, 225)
    lbl.TextSize = 13
    lbl.Font = Enum.Font.GothamBold
    lbl.TextXAlignment = Enum.TextXAlignment.Left
    lbl.ZIndex = 4
    table.insert(allLabels, lbl)
    
    local tBtn = Instance.new("TextButton", frame)
    tBtn.Size = UDim2.new(0, 44, 0, 22)
    tBtn.Position = UDim2.new(1, -56, 0.5, -11)
    tBtn.BackgroundColor3 = default and Color3.fromRGB(40, 180, 100) or Color3.fromRGB(0, 0, 0)
    tBtn.BackgroundTransparency = default and 0.2 or 0.6
    tBtn.Text = ""
    tBtn.ZIndex = 4
    Instance.new("UICorner", tBtn).CornerRadius = UDim.new(1, 0)
    applyGlossyStyle(tBtn, true)
    
    local state = default
    tBtn.MouseButton1Click:Connect(function()
        if not menuVisible then return end
        state = not state
        TweenService:Create(tBtn, TweenInfo.new(0.26), {
            BackgroundColor3 = state and Color3.fromRGB(40, 180, 100) or Color3.fromRGB(0, 0, 0),
            BackgroundTransparency = state and 0.2 or 0.6
        }):Play()
        callback(state)
    end)
    return frame
end

local function addTextBox(tabName, labelText, defaultText, callback)
    local p = panels[tabName]
    local frame = Instance.new("Frame", p)
    frame.Size = UDim2.new(0.96, 0, 0, 38)
    frame.BorderSizePixel = 0
    frame.ZIndex = 3
    Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6)
    table.insert(allFrames, frame)
    
    local lbl = Instance.new("TextLabel", frame)
    lbl.Size = UDim2.new(0.5, 0, 1, 0)
    lbl.Position = UDim2.new(0, 12, 0, 0)
    lbl.BackgroundTransparency = 1
    lbl.Text = labelText
    lbl.TextColor3 = Color3.fromRGB(180, 180, 190)
    lbl.TextSize = 13
    lbl.Font = Enum.Font.GothamBold
    lbl.TextXAlignment = Enum.TextXAlignment.Left
    lbl.ZIndex = 4
    lbl:SetAttribute("IsSubText", true)
    table.insert(allLabels, lbl)
    
    local box = Instance.new("TextBox", frame)
    box.Size = UDim2.new(0.25, 0, 0, 24)
    box.Position = UDim2.new(1, -145, 0.5, -12)
    box.Text = defaultText
    box.ZIndex = 4
    box.TextColor3 = Color3.fromRGB(255, 255, 255)
    box.TextSize = 12
    box.Font = Enum.Font.GothamBold
    Instance.new("UICorner", box).CornerRadius = UDim.new(0, 4)
    table.insert(allInputs, box)
    
    box.FocusLost:Connect(function()
        if not menuVisible then return end
        callback(box.Text)
    end)
    return frame
end

local function addButton(tabName, text, color, callback)
    local p = panels[tabName]
    local b = Instance.new("TextButton", p)
    b.Size = UDim2.new(0.96, 0, 0, 36)
    b.Text = text
    b.TextSize = 13
    b.Font = Enum.Font.GothamBold
    b.ZIndex = 4
    Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
    table.insert(allButtons, b)
    applyGlossyStyle(b, false)
    
    b.MouseButton1Click:Connect(function()
        if not menuVisible then return end
        callback()
    end)
    return b
end

-- ────────────────────────────────────────────
-- POPULATING FUNCTIONAL ELEMENTS
-- ────────────────────────────────────────────

-- COMBAT TAB
addToggle("Combat", "Enable Aim Assist (Hold RMB)", false, function(v)
    aimAssistEnabled = v
    if not v then aimActive = false; currentTarget = nil end
end)
addTextBox("Combat", "Aim FOV Radius", "150", function(t)
    local v = tonumber(t); if v then FOV_RADIUS = math.max(10, v) end
end)
addTextBox("Combat", "Aim Snappiness (1-10)", "5", function(t)
    local v = tonumber(t); if v then aimSmoothInput = math.clamp(v, 1, 10) end
end)

-- MOVEMENT TAB
addToggle("Movement", "Fly System", false, function(v)
    if v then if not flying then startFlying() end else stopFlying() end
end)
addTextBox("Movement", "Fly Configuration Speed", "50", function(t)
    local v = tonumber(t); if v and v > 0 then flySpeed = v end
end)
addToggle("Movement", "WalkSpeed Modifier", false, function(v)
    speedEnabled = v; updateWalkSpeed()
end)
addTextBox("Movement", "WalkSpeed Level Target", "16", function(t)
    local v = tonumber(t); if v and v > 0 then walkSpeed = v; updateWalkSpeed() end
end)
addToggle("Movement", "TpWalk Mechanics", false, function(v)
    tpWalkEnabled = v
end)
addTextBox("Movement", "TpWalk Velocity Vector", "50", function(t)
    local v = tonumber(t); if v and v > 0 then tpWalkSpeed = v end
end)
addToggle("Movement", "Noclip Collision Bypass", false, function(v)
    noclipEnabled = v
end)

-- VISUALS TAB
addToggle("Visuals", "Active Player ESP Rendering", false, function(v)
    toggleESP(v)
end)
addTextBox("Visuals", "Local Camera FOV Setting", "70", function(t)
    local v = tonumber(t); if v then camera.FieldOfView = math.clamp(v, 30, 120) end
end)
addTextBox("Visuals", "Spectate Target User", "", function(t) end)
local specFrame = panels["Visuals"]:GetChildren()[#panels["Visuals"]:GetChildren()]

addButton("Visuals", "Toggle Target View Perspective", Color3.fromRGB(0, 120, 150), function()
    if spectatingEnabled then
        spectatingEnabled = false
        camera.CameraSubject = localPlayer.Character and localPlayer.Character:FindFirstChildOfClass("Humanoid") or nil
    else
        local txtBox = specFrame:FindFirstChildOfClass("TextBox")
        local name = txtBox and txtBox.Text:lower() or ""
        local tp = nil
        for _, p in pairs(Players:GetPlayers()) do if p.Name:lower() == name and p ~= localPlayer then tp = p; break end end
        if tp and tp.Character and tp.Character:FindFirstChildOfClass("Humanoid") then
            spectatingEnabled = true
            camera.CameraSubject = tp.Character:FindFirstChildOfClass("Humanoid")
        end
    end
end)

-- SETTINGS TAB
addToggle("Settings", "Enable Rainbow Accent", true, function(v)
    rainbowEnabled = v
    if not v then UIStroke.Color = Color3.fromRGB(80, 80, 100) end
end)

-- Theme Selection Buttons
addButton("Settings", "Theme: OLED (Pure Black)", Color3.fromRGB(10, 10, 10), function()
    applyTheme("OLED")
end)
addButton("Settings", "Theme: Dark (Slate Gray)", Color3.fromRGB(44, 48, 56), function()
    applyTheme("Dark")
end)
addButton("Settings", "Theme: Light (Clean White)", Color3.fromRGB(180, 185, 195), function()
    applyTheme("Light")
end)

addButton("Settings", "Inject Infinite Yield Core", nil, function()
    loadstring(game:HttpGet('https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source'))()
end)
addButton("Settings", "Execute Dynamic Invisible FE", nil, function()
    loadstring(game:HttpGet('https://pastebin.com/raw/3Rnd9rHf'))()
end)
addButton("Settings", "Load Integrated Emote Engine", nil, function()
    loadstring(game:HttpGet("https://raw.githubusercontent.com/7yd7/Hub/refs/heads/Branch/GUIS/Emotes.lua"))()
end)
addButton("Settings", "Run External Yarhm Interface", nil, function()
    local src = ""
    pcall(function() src = game:HttpGet("https://yarhm.com", false) end)
    if src == "" then
        src = game:HttpGet("https://raw.githubusercontent.com/Joystickplays/psychic-octo-invention/main/source/yarhm/1.21/yarhm.lua", false)
    end
    loadstring(src)()
end)
addButton("Settings", "Acquire Map Teleportation Tool", nil, function()
    local tool = Instance.new("Tool")
    tool.Name = "Teleport Tool"; tool.RequiresHandle = false
    tool.Activated:Connect(function() if root then root.CFrame = CFrame.new(localPlayer:GetMouse().Hit.Position + Vector3.new(0, 3, 0)) end end)
    tool.Parent = localPlayer:WaitForChild("Backpack")
end)

-- ────────────────────────────────────────────
-- ADVANCED RENDERING RUNTIME ENGINE
-- ────────────────────────────────────────────
function stopFlying()
    flying = false
    if bv then bv:Destroy(); bv = nil end
    if bg then bg:Destroy(); bg = nil end
end
function startFlying()
    if not root then return end
    flying = true
    bv = Instance.new("BodyVelocity", root); bg = Instance.new("BodyGyro", root)
    bv.MaxForce = Vector3.new(1e5,1e5,1e5)
    bg.MaxTorque = Vector3.new(1e5,1e5,1e5); bg.P = 12500
end
function updateWalkSpeed()
    if humanoid then humanoid.WalkSpeed = speedEnabled and walkSpeed or 16 end
end
local function isEnemy(p)
    if not localPlayer.Team or not p.Team then return true end
    return p.Team ~= localPlayer.Team
end
local function hasLOS(targetPart)
    local origin = camera.CFrame.Position
    local rp = RaycastParams.new()
    rp.FilterDescendantsInstances = IGNORE_LIST
    rp.FilterType = Enum.RaycastFilterType.Exclude
    local result = Workspace:Raycast(origin, targetPart.Position - origin, rp)
    return not result or result.Instance:IsDescendantOf(targetPart.Parent)
end
local function getClosestInFOV()
    local closest, best = nil, FOV_RADIUS
    local screenCenter = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
    for _, p in pairs(Players:GetPlayers()) do
        if p ~= localPlayer and p.Character and p.Character:FindFirstChild(aimTargetPart) and isEnemy(p) then
            local part = p.Character[aimTargetPart]
            local sp, onScreen = camera:WorldToViewportPoint(part.Position)
            if onScreen then
                local d = (Vector2.new(sp.X, sp.Y) - screenCenter).Magnitude
                if d < best and hasLOS(part) then 
                    best = d; closest = p 
                end
            end
        end
    end
    return closest
end

local activeTracers, activeBoxes, activeLabels = {}, {}, {}
local function createESP(tp)
    if tp == localPlayer then return end
    local line = Drawing.new("Line"); line.Thickness = 1.5; line.Transparency = 0.7; line.Visible = false
    local sq   = Drawing.new("Square"); sq.Thickness = 1.5; sq.Filled = false; sq.Transparency = 0.7; sq.Visible = false
    local txt  = Drawing.new("Text"); txt.Size = 13; txt.Center = true; txt.Outline = true; txt.OutlineColor = Color3.new(0,0,0)
    txt.Visible = false
    activeTracers[tp] = line; activeBoxes[tp] = sq; activeLabels[tp] = txt
end
local function removeESP(tp)
    for _, t in pairs({activeTracers, activeBoxes, activeLabels}) do
        if t[tp] then t[tp]:Destroy(); t[tp] = nil end
    end
end
for _, p in ipairs(Players:GetPlayers()) do createESP(p) end
Players.PlayerAdded:Connect(createESP)
Players.PlayerRemoving:Connect(removeESP)

function toggleESP(state)
    espEnabled = state
    if not state then
        for _,v in pairs(activeTracers) do v.Visible = false end
        for _,v in pairs(activeBoxes)   do v.Visible = false end
        for _,v in pairs(activeLabels)  do v.Visible = false end
    end
end

UserInputService.InputBegan:Connect(function(input, processed)
    if not processed and input.UserInputType == Enum.UserInputType.MouseButton2 then aimActive = true end
end)
UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton2 then aimActive = false; currentTarget = nil end
end)

-- Main Cycle Connection
RunService.RenderStepped:Connect(function(dt)
    if aimAssistEnabled and not spectatingEnabled then
        fovCircle.Position = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
        fovCircle.Radius = FOV_RADIUS
        fovCircle.Visible = true
    else
        fovCircle.Visible = false
    end

    for tp, line in pairs(activeTracers) do
        local sq = activeBoxes[tp]; local lbl2 = activeLabels[tp]
        local char = tp.Character; local tRoot = char and char:FindFirstChild("HumanoidRootPart"); local tHum = char and char:FindFirstChildOfClass("Humanoid")
        if espEnabled and tRoot and tHum and tHum.Health > 0 then
            local sp, onScreen = camera:WorldToViewportPoint(tRoot.Position)
            if onScreen then
                local col = isEnemy(tp) and Color3.fromRGB(255, 70, 70) or Color3.fromRGB(50, 255, 130)
              
                line.From = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y); line.To = Vector2.new(sp.X, sp.Y); line.Color = col
                line.Visible = true
                local topP, topS = camera:WorldToViewportPoint(tRoot.Position + Vector3.new(0, 3, 0))
                local botP, botS = camera:WorldToViewportPoint(tRoot.Position - Vector3.new(0, 3.5, 0))
                if topS and botS then
                    local bh = math.abs(topP.Y - botP.Y); local bw = bh / 1.8
                    sq.Size = Vector2.new(bw, bh)
                    sq.Position = Vector2.new(sp.X - bw / 2, topP.Y); sq.Color = col
                    sq.Visible = true
                    lbl2.Text = string.format("%s\n[%d HP]", tp.Name, math.floor(tHum.Health))
                    lbl2.Position = Vector2.new(sp.X, topP.Y - 30)
                    lbl2.Color = col; lbl2.Visible = true
                else sq.Visible = false; lbl2.Visible = false end
            else line.Visible = false; sq.Visible = false; lbl2.Visible = false end
        else line.Visible = false; sq.Visible = false; lbl2.Visible = false end
    end

    if noclipEnabled and character then
        for _, part in ipairs(character:GetChildren()) do if part:IsA("BasePart") then part.CanCollide = false end end
    end
    if tpWalkEnabled and root and humanoid and humanoid.MoveDirection.Magnitude > 0 then
        root.CFrame = root.CFrame + (humanoid.MoveDirection * (tpWalkSpeed * dt))
    end
    
    if aimAssistEnabled and aimActive and not spectatingEnabled then
        local targetValid = false
        if currentTarget and currentTarget.Parent and currentTarget.Parent:FindFirstChildOfClass("Humanoid") then
            local hum = currentTarget.Parent:FindFirstChildOfClass("Humanoid")
            if hum.Health > 0 and hasLOS(currentTarget) then targetValid = true end
        end
        if not targetValid then
            local nextTargetPlayer = getClosestInFOV()
            currentTarget = (nextTargetPlayer and nextTargetPlayer.Character) and nextTargetPlayer.Character:FindFirstChild(aimTargetPart) or nil
        end
        if currentTarget then
            camera.CFrame = camera.CFrame:Lerp(CFrame.new(camera.CFrame.Position, currentTarget.Position), getEngineSmoothness())
        end
    end
    
    if flying and root and bv and bg and not spectatingEnabled then
        local move = Vector3.zero
        if UserInputService:IsKeyDown(Enum.KeyCode.W)       then move += camera.CFrame.LookVector end
        if UserInputService:IsKeyDown(Enum.KeyCode.S)           then move -= camera.CFrame.LookVector end
        if UserInputService:IsKeyDown(Enum.KeyCode.A)           then move -= camera.CFrame.RightVector end
        if UserInputService:IsKeyDown(Enum.KeyCode.D)           then move += camera.CFrame.RightVector end
        if UserInputService:IsKeyDown(Enum.KeyCode.Space)       then move += Vector3.new(0, 1, 0) end
        if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then move -= Vector3.new(0, 1, 0) end
        if move.Magnitude > 0 then move = move.Unit end
        
        bv.Velocity = move * flySpeed
        local lookDir = camera.CFrame.LookVector
        bg.CFrame = CFrame.new(root.Position, root.Position + Vector3.new(lookDir.X, 0, lookDir.Z))
    end
end)

localPlayer.CharacterAdded:Connect(function(newChar)
    stopFlying(); aimActive = false; currentTarget = nil; character = newChar
    humanoid = newChar:WaitForChild("Humanoid"); root = newChar:WaitForChild("HumanoidRootPart")
    IGNORE_LIST = {localPlayer.Character, camera}
    task.wait(0.2); updateWalkSpeed()
end)

-- Initialize Mapping Environment Variables
applyTheme("OLED")
task.spawn(runIntroSequence)
print("FACHub Premium Edition Successfully Initialized.")

Features & Information

aimbot and more lol (credits to the owners of external scripts)

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts