📅 2026-06-30T05:42:39.899Z
👁️ 198 katselukertaa
🔓 Julkinen


-- 1. Định nghĩa các dịch vụ hệ thống cốt lõi của Roblox
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local Camera = Workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer

-- 2. Khởi tạo bảng trạng thái tính năng toàn cục
local State = { 
    TP_Closest = false, 
    TP_4Far = false, 
    TP_Mid = false,
    Fly_Hack = false,      -- Tính năng bay mới thay thế WalkFling
    Speed_Hack = false, 
    Jump_Hack = false,
    Lock_Player = false, 
    Lock_NPC = false, 
    AIM = false, 
    AIM_Player = false, 
    Aim_VatCan_S2 = false,     
    ESP_1 = false, 
    ESP_2 = false, 
    ESP_3 = false              
}

-- 3. Các biến cấu hình thông số kỹ thuật mặc định
local TargetHeight, LoopDistance = 0, 15
local Target_Speed, Target_Jump = 16, 50
local Fly_Speed = 50       -- Tốc độ bay mặc định ban đầu
local ESPDrawings, ButtonsList = {}, {}
local LockedTPTarget = nil
local currentOrder = 1 
-- 4. Ép buộc Menu cài vào CoreGui để tăng độ bảo mật và chống đè UI
local CoreGui = game:GetService("CoreGui")
if CoreGui:FindFirstChild("SuperMultiMenuV6") then CoreGui:FindFirstChild("SuperMultiMenuV6"):Destroy() end

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SuperMultiMenuV6"
ScreenGui.ResetOnSpawn = false
ScreenGui.DisplayOrder = 999999
ScreenGui.Parent = CoreGui

-- Khung hiển thị chính (Main Frame) - Tăng chiều cao lên 280 để vừa ô nhập dữ liệu mới
local MainFrame = Instance.new("Frame", ScreenGui)
MainFrame.Name = "MainFrame"; MainFrame.Size = UDim2.new(0, 180, 0, 280); MainFrame.Position = UDim2.new(0.05, 0, 0.2, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15); MainFrame.BackgroundTransparency = 0.1
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 8)

-- Khung cuộn chứa nút bấm (Scrolling Frame)
local ScrollFrame = Instance.new("ScrollingFrame", MainFrame)
ScrollFrame.Name = "ScrollFrame"; ScrollFrame.Size = UDim2.new(1, 0, 1, -35); ScrollFrame.Position = UDim2.new(0, 0, 0, 35)
ScrollFrame.BackgroundTransparency = 1; ScrollFrame.ScrollBarThickness = 3; ScrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y

local ListLayout = Instance.new("UIListLayout", ScrollFrame)
ListLayout.SortOrder = Enum.SortOrder.LayoutOrder; ListLayout.Padding = UDim.new(0, 5)
Instance.new("UIPadding", ScrollFrame).PaddingTop = UDim.new(0, 5)

-- Tiêu đề Menu
local MenuTitle = Instance.new("TextLabel", MainFrame)
MenuTitle.Size = UDim2.new(0, 130, 0, 30); MenuTitle.Position = UDim2.new(0, 10, 0, 2)
MenuTitle.Text = "SUPER MULTI MENU V6"; MenuTitle.TextColor3 = Color3.new(1, 1, 1); MenuTitle.Font = Enum.Font.SourceSansBold; MenuTitle.TextSize = 11; MenuTitle.BackgroundTransparency = 1

-- NÚT THU NHỎ / PHÓNG TO GIAO DIỆN
local MinimizeBtn = Instance.new("TextButton", MainFrame)
MinimizeBtn.Size = UDim2.new(0, 25, 0, 25); MinimizeBtn.Position = UDim2.new(1, -30, 0, 2); MinimizeBtn.BackgroundTransparency = 1; MinimizeBtn.Text = "[-]"; MinimizeBtn.TextColor3 = Color3.fromRGB(255, 50, 50); MinimizeBtn.Font = Enum.Font.SourceSansBold

local MaximizeBtn = Instance.new("TextButton", ScreenGui)
MaximizeBtn.Size = UDim2.new(0, 40, 0, 40); MaximizeBtn.Position = MainFrame.Position; MaximizeBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30); MaximizeBtn.Text = "[+]"; MaximizeBtn.TextColor3 = Color3.fromRGB(50, 255, 50); MaximizeBtn.Font = Enum.Font.SourceSansBold; MaximizeBtn.Visible = false
Instance.new("UICorner", MaximizeBtn).CornerRadius = UDim.new(0, 20)

MinimizeBtn.MouseButton1Click:Connect(function() MaximizeBtn.Position = MainFrame.Position; MainFrame.Visible = false; MaximizeBtn.Visible = true end)
MaximizeBtn.MouseButton1Click:Connect(function() MainFrame.Position = MaximizeBtn.Position; MainFrame.Visible = false; MainFrame.Visible = true end)
-- 5. Hàm mẫu khởi tạo nút bấm tự động đồng bộ trạng thái logic
local function AddMenuButton(name, displayName)
    local btn = Instance.new("TextButton", ScrollFrame)
    btn.Size = UDim2.new(1, -16, 0, 24); btn.LayoutOrder = currentOrder; currentOrder = currentOrder + 1
    btn.BackgroundColor3 = Color3.fromRGB(35, 35, 35); btn.Text = displayName .. ": OFF"; btn.TextColor3 = Color3.new(1, 1, 1); btn.Font = Enum.Font.SourceSansBold; btn.TextSize = 10
    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 4)
    
    btn.MouseButton1Click:Connect(function()
        State[name] = not State[name]
        btn.Text = displayName .. (State[name] and ": ON" or ": OFF")
        btn.BackgroundColor3 = State[name] and Color3.fromRGB(0, 120, 0) or Color3.fromRGB(35, 35, 35)
    end)
end

-- 6. Đăng ký nút Bay (Fly) và Ô nhập tốc độ bay chuyên dụng
AddMenuButton("Fly_Hack", "✈️ KÍCH HOẠT BAY (FLY)")

local FlySpeedInput = Instance.new("TextBox", ScrollFrame)
FlySpeedInput.Size = UDim2.new(1, -16, 0, 24); FlySpeedInput.LayoutOrder = currentOrder; currentOrder = currentOrder + 1
FlySpeedInput.BackgroundColor3 = Color3.fromRGB(45, 45, 45); FlySpeedInput.Text = "Tốc độ bay: " .. tostring(Fly_Speed)
FlySpeedInput.TextColor3 = Color3.fromRGB(0, 255, 255); FlySpeedInput.Font = Enum.Font.SourceSansBold; FlySpeedInput.TextSize = 10
Instance.new("UICorner", FlySpeedInput).CornerRadius = UDim.new(0, 4)

FlySpeedInput.FocusLost:Connect(function()
    local num = tonumber(FlySpeedInput.Text:match("%d+")) or tonumber(FlySpeedInput.Text)
    if num then
        Fly_Speed = math.clamp(num, 1, 1000)
        FlySpeedInput.Text = "Tốc độ bay: " .. tostring(Fly_Speed)
    else
        FlySpeedInput.Text = "Tốc độ bay: " .. tostring(Fly_Speed)
    end
end)

-- Đăng ký các nút bổ trợ còn lại
AddMenuButton("TP_Closest", "TP SÁT SAU LƯNG")
AddMenuButton("TP_4Far", "TP 4 FAR (S1)")
AddMenuButton("TP_Mid", "TP MID (S1)")
AddMenuButton("Speed_Hack", "CHẠY NHANH (SPEED)")
AddMenuButton("Jump_Hack", "NHẢY CAO (JP)")
-- 7. Khởi tạo cấu trúc kiểm soát lực lượng bay
local FlyBV = nil
local FlyBG = nil
local FlyConnection = nil

local function StartFlying()
    local Ch = LocalPlayer.Character; if not Ch then return end
    local Root = Ch:FindFirstChild("HumanoidRootPart")
    local Hum = Ch:FindFirstChild("Humanoid"); if not Root or not Hum then return end

    -- Thiết lập gyro để giữ nhân vật thẳng đứng khi bay
    FlyBG = Instance.new("BodyGyro")
    FlyBG.Name = "Fly_Gyro"
    FlyBG.P = 9e4
    FlyBG.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
    FlyBG.CFrame = Root.CFrame
    FlyBG.Parent = Root

    -- Thiết lập velocity kiểm soát hướng bay tịnh tiến
    FlyBV = Instance.new("BodyVelocity")
    FlyBV.Name = "Fly_Velocity"
    FlyBV.MaxForce = Vector3.new(9e9, 9e9, 9e9)
    FlyBV.Velocity = Vector3.new(0, 0, 0)
    FlyBV.Parent = Root

    -- Ngắt trạng thái đứng trên mặt đất để không bị giật hoạt ảnh rơi
    Hum.PlatformStand = true

    -- Luồng điều khiển hướng di chuyển thời gian thực dựa vào Camera góc nhìn
    FlyConnection = RunService.Heartbeat:Connect(function()
        if not State.Fly_Hack or not Root or not Root.Parent then return end
        
        FlyBG.CFrame = Camera.CFrame
        local moveDirection = Hum.MoveDirection
        
        if moveDirection.Magnitude > 0 then
            -- Tính toán vector hướng di chuyển tương ứng theo góc quay Camera toàn cục
            local camCFrame = Camera.CFrame
            local lookVector = camCFrame.LookVector
            local rightVector = camCFrame.RightVector
            
            -- Chuyển đổi phím bấm di chuyển cục bộ của người dùng sang Vector không gian
            local customVelocity = Vector3.new(0, 0, 0)
            
            -- Ép di chuyển bay tới/lùi/trái/phải
            if UserInputService:IsKeyDown(Enum.KeyCode.W) then customVelocity = customVelocity + lookVector end
            if UserInputService:IsKeyDown(Enum.KeyCode.S) then customVelocity = customVelocity - lookVector end
            if UserInputService:IsKeyDown(Enum.KeyCode.A) then customVelocity = customVelocity - rightVector end
            if UserInputService:IsKeyDown(Enum.KeyCode.D) then customVelocity = customVelocity + rightVector end
            
            -- Đồng bộ hóa tốc độ bay thay đổi từ hộp văn bản input
            if customVelocity.Magnitude > 0 then
                FlyBV.Velocity = customVelocity.Unit * Fly_Speed
            else
                FlyBV.Velocity = Vector3.new(0, 0, 0)
            end
        else
            FlyBV.Velocity = Vector3.new(0, 0, 0)
        end
    end)
end

local function StopFlying()
    if FlyConnection then FlyConnection:Disconnect(); FlyConnection = nil end
    if FlyBV then pcall(function() FlyBV:Destroy() end) FlyBV = nil end
    if FlyBG then pcall(function() FlyBG:Destroy() end) FlyBG = nil end
    
    local Ch = LocalPlayer.Character
    if Ch then
        local Hum = Ch:FindFirstChild("Humanoid")
        if Hum then Hum.PlatformStand = false end
    end
end

-- Trình giám sát Daemon lắng nghe hành vi Toggle Fly
task.spawn(function()
    while true do task.wait(0.1)
        if State.Fly_Hack then
            if not FlyConnection then StartFlying() end
        else
            if FlyConnection then StopFlying() end
        end
    end
end)
-- 8. Vòng lặp đồng bộ hóa tất cả các chức năng bổ trợ còn lại trong Menu
RunService.Heartbeat:Connect(function()
    local myChar = LocalPlayer.Character; if not myChar or not myChar:FindFirstChild("HumanoidRootPart") then return end
    local rootPart = myChar.HumanoidRootPart
    local humanoid = myChar:FindFirstChild("Humanoid")

    -- Áp dụng thông số hack tốc độ và độ cao khi không bật trạng thái bay Fly
    if State.Speed_Hack and not State.Fly_Hack and humanoid then humanoid.WalkSpeed = Target_Speed end
    if State.Jump_Hack and humanoid then humanoid.UseJumpPower = true; humanoid.JumpPower = Target_Jump end

    -- Bộ lọc xử lý tọa độ dịch chuyển áp sát mục tiêu (TP Logic)
    local isTPEnabled = (State.TP_Closest or State.TP_4Far or State.TP_Mid)
    if not isTPEnabled then LockedTPTarget = nil return end
    
    -- Tự động tìm kiếm mục tiêu có khoảng cách ngắn nhất để khóa vị trí (Lock Target)
    if not LockedTPTarget or not LockedTPTarget.Character or not LockedTPTarget.Character:FindFirstChild("HumanoidRootPart") then
        local closest, shortestDist = nil, math.huge
        for _, p in pairs(Players:GetPlayers()) do
            if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
                local dist = (rootPart.Position - p.Character.HumanoidRootPart.Position).Magnitude
                if dist < shortestDist then closest = p; shortestDist = dist end
            end
        end
        LockedTPTarget = closest
    end
    
    -- Thực thi các trạng thái ép dịch chuyển CFrame theo các chế độ Menu
    if LockedTPTarget and LockedTPTarget.Character and LockedTPTarget.Character:FindFirstChild("HumanoidRootPart") then
        local targetRoot = LockedTPTarget.Character.HumanoidRootPart
        if State.TP_Closest then
            rootPart.CFrame = CFrame.new(targetRoot.Position - (targetRoot.CFrame.LookVector * 3.5), targetRoot.Position)
        elseif State.TP_4Far then
            rootPart.CFrame = CFrame.new(targetRoot.Position + (targetRoot.CFrame.LookVector * -LoopDistance), targetRoot.Position)
        elseif State.TP_Mid then
            rootPart.CFrame = targetRoot.CFrame
        end
    end
end)