NEKIT HUB Blox Loot script keyless
Blox Loot Keyless
NEKIT HUB Blox Loot script keyless
👤 knockoutscripts 👁 5 views ❤️ 0 likes ⏱ Nov 9, 2026
This script is developed by Nekit for Blox Loot and currently supports Auto Farm in the 3rd World only. Support for the 1st and 2nd Worlds is planned for future updates. The script is designed for PC users only. Feel free to report any bugs or suggest additional features.
✨ Features
Movement Set speed Set jump Fly Home Auto attack Auto loot Auto farm
📋 Script Code
-- NEKIT HUB | by: nekit
-- BLOX LOOT | Xeno

local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local VIM = game:GetService("VirtualInputManager")

local Player = Players.LocalPlayer
local Purple = Color3.fromRGB(100, 35, 180)
local Dark = Color3.fromRGB(20, 15, 30)
local Light = Color3.fromRGB(175, 100, 255)

local old = game:GetService("CoreGui"):FindFirstChild("NEKIT_HUB")
if old then old:Destroy() end

local gui = Instance.new("ScreenGui")
gui.Name = "NEKIT_HUB"
gui.ResetOnSpawn = false
gui.Parent = (gethui and gethui()) or game:GetService("CoreGui")

local main = Instance.new("Frame", gui)
main.Size = UDim2.fromOffset(700, 460)
main.AnchorPoint = Vector2.new(0.5, 0.5)
main.Position = UDim2.new(0.5, 0, 0.5, 0)
main.BackgroundColor3 = Color3.fromRGB(15, 16, 23)
main.BorderSizePixel = 0
main.Active = true
main.Draggable = true
main.ClipsDescendants = true

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

local mainStroke = Instance.new("UIStroke", main)
mainStroke.Color = Color3.fromRGB(48, 49, 65)
mainStroke.Transparency = 0.25
mainStroke.Thickness = 1

-- GUI SCALE
local uiScale = Instance.new("UIScale")
uiScale.Scale = 1
uiScale.Parent = main

local title = Instance.new("TextLabel", main)
title.Size = UDim2.new(1, 0, 0, 42)
title.BackgroundTransparency = 1
title.Text = "NEKIT HUB     |     BLOX LOOT"
title.TextColor3 = Color3.new(1,1,1)
title.Font = Enum.Font.GothamBold
title.TextSize = 15
title.TextXAlignment = Enum.TextXAlignment.Left
title.Position = UDim2.fromOffset(16, 0)

local topLine = Instance.new("Frame", main)
topLine.Position = UDim2.fromOffset(0, 41)
topLine.Size = UDim2.new(1, 0, 0, 1)
topLine.BackgroundColor3 = Color3.fromRGB(43, 44, 58)
topLine.BorderSizePixel = 0

local minimize = Instance.new("TextButton", main)
minimize.Size = UDim2.fromOffset(35, 30)
minimize.Position = UDim2.new(1, -42, 0, 6)
minimize.BackgroundColor3 = Color3.fromRGB(34, 35, 48)
minimize.Text = "—"
minimize.TextColor3 = Color3.new(1,1,1)
minimize.Font = Enum.Font.GothamBold
minimize.TextSize = 18
minimize.BorderSizePixel = 0
Instance.new("UICorner", minimize).CornerRadius = UDim.new(0, 8)

local sidebar = Instance.new("Frame", main)
sidebar.Position = UDim2.fromOffset(8, 48)
sidebar.Size = UDim2.new(0, 150, 1, -56)
sidebar.BackgroundColor3 = Color3.fromRGB(18, 19, 27)
sidebar.BorderSizePixel = 0
Instance.new("UICorner", sidebar).CornerRadius = UDim.new(0, 11)

local sidebarTitle = Instance.new("TextLabel", sidebar)
sidebarTitle.Position = UDim2.fromOffset(15, 12)
sidebarTitle.Size = UDim2.new(1, -25, 0, 22)
sidebarTitle.BackgroundTransparency = 1
sidebarTitle.Text = "MENU"
sidebarTitle.TextColor3 = Color3.fromRGB(125, 127, 148)
sidebarTitle.Font = Enum.Font.GothamBold
sidebarTitle.TextSize = 10
sidebarTitle.TextXAlignment = Enum.TextXAlignment.Left

local tabBar = Instance.new("Frame", sidebar)
tabBar.Position = UDim2.fromOffset(7, 42)
tabBar.Size = UDim2.new(1, -14, 1, -52)
tabBar.BackgroundTransparency = 1

local tabLayout = Instance.new("UIListLayout", tabBar)
tabLayout.Padding = UDim.new(0, 5)
tabLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
tabLayout.SortOrder = Enum.SortOrder.LayoutOrder

local pages = Instance.new("Frame", main)
pages.Position = UDim2.fromOffset(170, 58)
pages.Size = UDim2.new(1, -184, 1, -72)
pages.BackgroundTransparency = 1

local currentPage
local currentTabButton

local function makePage(name)
    local page = Instance.new("ScrollingFrame", pages)
    page.Name = name
    page.Size = UDim2.fromScale(1,1)
    page.BackgroundTransparency = 1
    page.BorderSizePixel = 0
    page.ScrollBarThickness = 4
    page.ScrollBarImageColor3 = Light
    page.Visible = false
    page.CanvasSize = UDim2.new(0,0,0,0)

    local pagePadding = Instance.new("UIPadding", page)
    pagePadding.PaddingTop = UDim.new(0, 4)
    pagePadding.PaddingLeft = UDim.new(0, 4)
    pagePadding.PaddingRight = UDim.new(0, 4)

    local layout = Instance.new("UIListLayout", page)
    layout.Padding = UDim.new(0, 7)

    layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
        page.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 10)
    end)

    return page
end

local function makeTab(name)
    local button = Instance.new("TextButton", tabBar)
    button.Size = UDim2.new(1, 0, 0, 35)
    button.BackgroundColor3 = Color3.fromRGB(25, 26, 36)
    button.BackgroundTransparency = 1
    button.Text = "   " .. name
    button.TextColor3 = Color3.fromRGB(155, 157, 176)
    button.Font = Enum.Font.GothamMedium
    button.TextSize = 11
    button.TextXAlignment = Enum.TextXAlignment.Left
    button.BorderSizePixel = 0
    Instance.new("UICorner", button).CornerRadius = UDim.new(0, 6)

    local page = makePage(name)

    button.MouseButton1Click:Connect(function()
        if currentPage then currentPage.Visible = false end
        if currentTabButton then
            currentTabButton.BackgroundTransparency = 1
            currentTabButton.TextColor3 = Color3.fromRGB(155, 157, 176)
        end
        currentPage = page
        currentTabButton = button
        button.BackgroundTransparency = 0
        button.TextColor3 = Color3.fromRGB(235, 226, 255)
        page.Visible = true
    end)

    if not currentPage then
        currentPage = page
        currentTabButton = button
        button.BackgroundTransparency = 0
        button.TextColor3 = Color3.fromRGB(235, 226, 255)
        page.Visible = true
    end

    return page
end

local function makeButton(parent, text)
    local b = Instance.new("TextButton", parent)
    b.Size = UDim2.new(1, -10, 0, 40)
    b.BackgroundColor3 = Color3.fromRGB(29, 30, 41)
    b.Text = text
    b.TextColor3 = Color3.fromRGB(235, 235, 244)
    b.Font = Enum.Font.GothamMedium
    b.TextSize = 12
    b.BorderSizePixel = 0
    b.TextXAlignment = Enum.TextXAlignment.Left
    Instance.new("UICorner", b).CornerRadius = UDim.new(0, 7)
    local stroke = Instance.new("UIStroke", b)
    stroke.Color = Color3.fromRGB(48, 49, 64)
    stroke.Transparency = 0.55
    stroke.Thickness = 1
    return b
end

local function makeBox(parent, placeholder, default)
    local box = Instance.new("TextBox", parent)
    box.Size = UDim2.new(1, -10, 0, 38)
    box.BackgroundColor3 = Color3.fromRGB(29, 30, 41)
    box.TextColor3 = Color3.fromRGB(245, 245, 250)
    box.PlaceholderColor3 = Color3.fromRGB(135, 137, 157)
    box.PlaceholderText = placeholder
    box.Text = tostring(default or "")
    box.Font = Enum.Font.Gotham
    box.TextSize = 13
    box.ClearTextOnFocus = false
    box.BorderSizePixel = 0
    Instance.new("UICorner", box).CornerRadius = UDim.new(0, 7)
    return box
end

local function label(parent, text)
    local l = Instance.new("TextLabel", parent)
    l.Size = UDim2.new(1, -10, 0, 27)
    l.BackgroundTransparency = 1
    l.Text = text
    l.TextColor3 = Color3.fromRGB(220, 220, 233)
    l.Font = Enum.Font.GothamBold
    l.TextSize = 13
    l.TextXAlignment = Enum.TextXAlignment.Left
    return l
end

-- MOVEMENT
local movement = makeTab("MOVEMENT")
label(movement, "MOVEMENT SETTINGS")

local speedBox = makeBox(movement, "Speed", "33")
local jumpBox = makeBox(movement, "Power Jump", "60")

local currentSpeed = 33
local currentJump = 60

makeButton(movement, "SET SPEED").MouseButton1Click:Connect(function()
    local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid")
    local value = tonumber(speedBox.Text)
    if hum and value then
        currentSpeed = math.clamp(value, 0, 300)
        hum.WalkSpeed = currentSpeed
    end
end)

makeButton(movement, "SET JUMP").MouseButton1Click:Connect(function()
    local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid")
    local value = tonumber(jumpBox.Text)
    if hum and value then
        currentJump = math.clamp(value, 0, 300)
        hum.UseJumpPower = true
        hum.JumpPower = currentJump
    end
end)

task.spawn(function()
    while gui.Parent do
        local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid")
        if hum then
            hum.WalkSpeed = currentSpeed
            hum.UseJumpPower = true
            hum.JumpPower = currentJump
        end
        task.wait(0.0001)
    end
end)

local infiniteJump = false
local jumpButton = makeButton(movement, "INFINITE JUMP: OFF")

jumpButton.MouseButton1Click:Connect(function()
    infiniteJump = not infiniteJump
    jumpButton.Text = "INFINITE JUMP: " .. (infiniteJump and "ON" or "OFF")
end)

UIS.JumpRequest:Connect(function()
    if infiniteJump then
        local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid")
        if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
    end
end)

local flyEnabled = false
local flySpeed = 50
local flyBox = makeBox(movement, "Fly speed (1-200)", "50")
local flyButton = makeButton(movement, "FLY: OFF")

local function toggleFly()
    flyEnabled = not flyEnabled
    flyButton.Text = "FLY: " .. (flyEnabled and "ON" or "OFF")
    flySpeed = math.clamp(tonumber(flyBox.Text) or 50, 1, 200)
end

flyButton.MouseButton1Click:Connect(toggleFly)

RunService.RenderStepped:Connect(function()
    if not flyEnabled then return end

    local char = Player.Character
    local root = char and char:FindFirstChild("HumanoidRootPart")
    local hum = char and char:FindFirstChildOfClass("Humanoid")
    if not root or not hum then return end

    local camera = workspace.CurrentCamera
    local direction = Vector3.zero

    if UIS:IsKeyDown(Enum.KeyCode.W) then direction += camera.CFrame.LookVector end
    if UIS:IsKeyDown(Enum.KeyCode.S) then direction -= camera.CFrame.LookVector end
    if UIS:IsKeyDown(Enum.KeyCode.A) then direction -= camera.CFrame.RightVector end
    if UIS:IsKeyDown(Enum.KeyCode.D) then direction += camera.CFrame.RightVector end
    if UIS:IsKeyDown(Enum.KeyCode.Space) then direction += Vector3.yAxis end
    if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then direction -= Vector3.yAxis end

    root.AssemblyLinearVelocity = direction.Magnitude > 0
        and direction.Unit * flySpeed
        or Vector3.zero
end)

UIS.InputBegan:Connect(function(input, processed)
    if not processed and input.KeyCode == Enum.KeyCode.G then
        toggleFly()
    end
end)

-- HOME
local home = makeTab("HOME")
label(home, "HOME TELEPORT")

local homePositions = {}

local homeList = Instance.new("ScrollingFrame", home)
homeList.Size = UDim2.new(1, -10, 0, 130)
homeList.BackgroundColor3 = Color3.fromRGB(30,22,42)
homeList.BorderSizePixel = 0
homeList.ScrollBarThickness = 4
homeList.CanvasSize = UDim2.new(0, 0, 0, 0)

local homeLayout = Instance.new("UIListLayout")
homeLayout.SortOrder = Enum.SortOrder.LayoutOrder
homeLayout.Padding = UDim.new(0, 5)
homeLayout.Parent = homeList
homeLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
    homeList.CanvasSize = UDim2.new(0, 0, 0, homeLayout.AbsoluteContentSize.Y + 8)
end)

local function refreshHomes()
    for _,v in ipairs(homeList:GetChildren()) do
        if v:IsA("TextButton") then v:Destroy() end
    end

    for i, spot in ipairs(homePositions) do
        local b = makeButton(homeList, "HOME " .. i)
        b.MouseButton1Click:Connect(function()
            local root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
            if root then root.CFrame = spot end
        end)
    end

    homeList.CanvasSize = UDim2.new(0, 0, 0, homeLayout.AbsoluteContentSize.Y + 8)
end

makeButton(home, "SET HOME").MouseButton1Click:Connect(function()
    local root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
    if root then
        table.insert(homePositions, root.CFrame)
        refreshHomes()
    end
end)

makeButton(home, "DELETE LAST HOME").MouseButton1Click:Connect(function()
    table.remove(homePositions, #homePositions)
    refreshHomes()
end)

-- PLAYER TP
local tp = makeTab("PLAYER TP")
label(tp, "SELECT PLAYER")

local selectedPlayer

local playerList = Instance.new("ScrollingFrame", tp)
playerList.Size = UDim2.new(1, -10, 0, 170)
playerList.BackgroundColor3 = Color3.fromRGB(30,22,42)
playerList.BorderSizePixel = 0
playerList.ScrollBarThickness = 4
playerList.CanvasSize = UDim2.new(0, 0, 0, 0)

local playerLayout = Instance.new("UIListLayout")
playerLayout.SortOrder = Enum.SortOrder.LayoutOrder
playerLayout.Padding = UDim.new(0, 5)
playerLayout.Parent = playerList
playerLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
    playerList.CanvasSize = UDim2.new(0, 0, 0, playerLayout.AbsoluteContentSize.Y + 8)
end)

local function refreshPlayers()
    for _, child in ipairs(playerList:GetChildren()) do
        if child:IsA("TextButton") then child:Destroy() end
    end

    selectedPlayer = nil

    for _, target in ipairs(Players:GetPlayers()) do
        if target ~= Player then
            local b = makeButton(
                playerList,
                target.DisplayName .. " (@" .. target.Name .. ")"
            )

            b.TextSize = 11

            b.MouseButton1Click:Connect(function()
                selectedPlayer = target

                for _, other in ipairs(playerList:GetChildren()) do
                    if other:IsA("TextButton") then
                        other.BackgroundColor3 = other == b and Light or Purple
                    end
                end
            end)
        end
    end

    playerList.CanvasSize = UDim2.new(0, 0, 0, playerLayout.AbsoluteContentSize.Y + 8)
end

makeButton(tp, "REFRESH PLAYERS").MouseButton1Click:Connect(refreshPlayers)

makeButton(tp, "TELEPORT TO SELECTED").MouseButton1Click:Connect(function()
    if not selectedPlayer then return end

    local myRoot = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
    local targetRoot = selectedPlayer.Character and selectedPlayer.Character:FindFirstChild("HumanoidRootPart")

    if myRoot and targetRoot then
        myRoot.CFrame = targetRoot.CFrame * CFrame.new(0,0,-3)
    end
end)

refreshPlayers()
Players.PlayerAdded:Connect(refreshPlayers)
Players.PlayerRemoving:Connect(refreshPlayers)

-- AUTO ATTACK
local attack = makeTab("AUTO ATTACK")
label(attack, "AUTO ATTACK SETTINGS")

local attackEnabled = false
local attackDelay = 0.15
local delayBox = makeBox(attack, "Attack delay", "0.15")
local attackButton = makeButton(attack, "AUTO ATTACK: OFF")

local function toggleAttack()
    attackEnabled = not attackEnabled
    attackButton.Text = "AUTO ATTACK: " .. (attackEnabled and "ON" or "OFF")
    attackDelay = math.clamp(tonumber(delayBox.Text) or 0.15, 0.05, 5)
end

attackButton.MouseButton1Click:Connect(toggleAttack)

task.spawn(function()
    while gui.Parent do
        if attackEnabled then
            pcall(function()
                VIM:SendMouseButtonEvent(0,0,0,true,game,0)
                task.wait(0.03)
                VIM:SendMouseButtonEvent(0,0,0,false,game,0)
            end)
            task.wait(attackDelay)
        else
            task.wait(0.1)
        end
    end
end)

-- AUTOLOOT
local loot = makeTab("AUTOLOOT")
label(loot, "AUTOLOOT SETTINGS")

local lootEnabled = false
local radius = 20

local lootButton = makeButton(loot, "AUTOLOOT: OFF")
local radiusButton = makeButton(loot, "RADIUS: 20")

lootButton.MouseButton1Click:Connect(function()
    lootEnabled = not lootEnabled
    lootButton.Text = "AUTOLOOT: " .. (lootEnabled and "ON" or "OFF")
end)

radiusButton.MouseButton1Click:Connect(function()
    radius = radius + 10
    if radius > 50 then radius = 10 end
    radiusButton.Text = "RADIUS: " .. radius
end)

task.spawn(function()
    while gui.Parent do
        if lootEnabled then
            local root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")

            if root and fireproximityprompt then
                for _, obj in ipairs(workspace:GetDescendants()) do
                    if obj:IsA("ProximityPrompt") then
                        local part = obj.Parent

                        if part and part:IsA("BasePart") then
                            if (part.Position - root.Position).Magnitude  0 then
                    local distance =
                        (targetRoot.Position - myRoot.Position).Magnitude

                    if distance < nearestDistance then
                        nearestDistance = distance
                        nearestMob = mob
                    end
                end
            end
        end
    end

    return nearestMob
end

-- NOCLIP
local function enableNoclip()
    if noclipConnection then
        noclipConnection:Disconnect()
    end

    noclipConnection = RunService.Stepped:Connect(function()
        if not farmEnabled then return end

        local character = Player.Character
        if not character then return end

        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                if savedCollisions[part] == nil then
                    savedCollisions[part] = part.CanCollide
                end

                part.CanCollide = false
            end
        end
    end)
end

local function disableNoclip()
    if noclipConnection then
        noclipConnection:Disconnect()
        noclipConnection = nil
    end

    for part, oldValue in pairs(savedCollisions) do
        if part and part.Parent then
            part.CanCollide = oldValue
        end
    end

    table.clear(savedCollisions)
end

-- СОЗДАНИЕ FLY
local function createFarmVelocity(root)
    if farmVelocity then
        farmVelocity:Destroy()
        farmVelocity = nil
    end

    if farmMode == "FLY" then
        farmVelocity = Instance.new("BodyVelocity")
        farmVelocity.Name = "NekitFarmVelocity"
        farmVelocity.MaxForce = Vector3.new(1000000, 1000000, 1000000)
        farmVelocity.P = 10000
        farmVelocity.Velocity = Vector3.zero
        farmVelocity.Parent = root
    end
end

-- ОСТАНОВКА
local function stopFarm()
    farmEnabled = false

    if farmConnection then
        farmConnection:Disconnect()
        farmConnection = nil
    end

    disableNoclip()

    if farmVelocity then
        farmVelocity:Destroy()
        farmVelocity = nil
    end

    local character = Player.Character
    local root = character and character:FindFirstChild("HumanoidRootPart")
    local humanoid = character and character:FindFirstChildOfClass("Humanoid")

    if root then
        root.AssemblyLinearVelocity = Vector3.zero
    end

    if humanoid and originalWalkSpeed then
        humanoid.WalkSpeed = originalWalkSpeed
    end

    originalWalkSpeed = nil
    lastFarmMob = nil
    farmPaused = false
    farmPauseUntil = 0
    teleportedMob = nil

    farmToggle.Text = "AUTO FARM: OFF"
    updateFarmStatus("OFF")
end

-- ЗАПУСК
local function startFarm()
    local character = Player.Character
    local root = character and character:FindFirstChild("HumanoidRootPart")
    local humanoid = character and character:FindFirstChildOfClass("Humanoid")

    if not root or not humanoid then
        updateFarmStatus("CHARACTER NOT FOUND")
        return
    end

    if farmEnabled then return end

    farmEnabled = true
    originalWalkSpeed = humanoid.WalkSpeed

    lastFarmMob = nil
    farmPaused = false
    farmPauseUntil = 0
    teleportedMob = nil

    farmToggle.Text = "AUTO FARM: ON"
    updateFarmStatus("SEARCHING")

    -- Noclip включается автоматически
    enableNoclip()
    createFarmVelocity(root)

    farmConnection = RunService.Heartbeat:Connect(function()
        if not farmEnabled then return end

        local char = Player.Character
        local currentRoot = char and char:FindFirstChild("HumanoidRootPart")
        local currentHumanoid = char and char:FindFirstChildOfClass("Humanoid")

        if not currentRoot or not currentHumanoid then
            return
        end

        if farmMode == "FLY" then
            if not farmVelocity or farmVelocity.Parent ~= currentRoot then
                createFarmVelocity(currentRoot)
            end
        elseif farmVelocity then
            farmVelocity:Destroy()
            farmVelocity = nil
        end

        -- ПАУЗА ПОСЛЕ УБИЙСТВА
        if farmPaused then
            if farmVelocity then
                farmVelocity.Velocity = Vector3.zero
            end

            currentRoot.AssemblyLinearVelocity = Vector3.zero
            currentHumanoid:MoveTo(currentRoot.Position)

            if os.clock() < farmPauseUntil then
                updateFarmStatus("PAUSE 5 SEC")
                return
            end

            farmPaused = false
            farmPauseUntil = 0
            lastFarmMob = nil
            teleportedMob = nil
            updateFarmStatus("SEARCHING")
        end

        -- ПРОВЕРКА СМЕРТИ ПРЕДЫДУЩЕГО МОБА
        if lastFarmMob then
            local oldHumanoid = lastFarmMob:FindFirstChildOfClass("Humanoid")

            local dead =
                not lastFarmMob.Parent
                or (oldHumanoid and oldHumanoid.Health <= 0)

            if dead then
                farmPaused = true
                farmPauseUntil = os.clock() + 5

                if farmVelocity then
                    farmVelocity.Velocity = Vector3.zero
                end

                currentRoot.AssemblyLinearVelocity = Vector3.zero
                currentHumanoid:MoveTo(currentRoot.Position)

                updateFarmStatus("PAUSE 5 SEC")
                return
            end
        end

        local mob = findFarmMob()

        if not mob then
            if farmVelocity then
                farmVelocity.Velocity = Vector3.zero
            end

            currentHumanoid:MoveTo(currentRoot.Position)
            updateFarmStatus("MOB NOT FOUND")
            return
        end

        local targetRoot =
            mob:FindFirstChild("HumanoidRootPart") or mob.PrimaryPart

        if not targetRoot or not targetRoot:IsA("BasePart") then
            updateFarmStatus("TARGET PART NOT FOUND")
            return
        end

        local targetHumanoid = mob:FindFirstChildOfClass("Humanoid")

        if targetHumanoid and targetHumanoid.Health <= 0 then
            farmPaused = true
            farmPauseUntil = os.clock() + 5
            return
        end

        lastFarmMob = mob

        local offset = targetRoot.Position - currentRoot.Position
        local distance = offset.Magnitude

        -- TELEPORT
        if farmMode == "TELEPORT" then
            if teleportedMob ~= mob then
                currentRoot.CFrame =
                    targetRoot.CFrame * CFrame.new(0, 0, 3)

                teleportedMob = mob
            end

            currentRoot.AssemblyLinearVelocity = Vector3.zero
            updateFarmStatus("TELEPORTING")

        -- FLY
        elseif farmMode == "FLY" then
            if distance <= stopDistance then
                farmVelocity.Velocity = Vector3.zero
                updateFarmStatus("ATTACKING")
            else
                farmVelocity.Velocity = offset.Unit * flySpeed
                updateFarmStatus("FLYING")
            end

        -- WALK
        elseif farmMode == "WALK" then
            currentHumanoid.WalkSpeed = walkSpeed

            if distance = 0.25 then
                lastMoveUpdate = os.clock()
                currentHumanoid:MoveTo(targetRoot.Position)
                updateFarmStatus("WALKING")
            end
        end
    end)
end

farmToggle.MouseButton1Click:Connect(function()
    if farmEnabled then
        stopFarm()
    else
        startFarm()
    end
end)

-- АВТОАТАКА
task.spawn(function()
    while gui.Parent do
        if farmEnabled then
            pcall(function()
                VIM:SendMouseButtonEvent(0, 0, 0, true, game, 0)
                task.wait(0.03)
                VIM:SendMouseButtonEvent(0, 0, 0, false, game, 0)
            end)

            task.wait(attackDelay)
        else
            task.wait(0.1)
        end
    end
end)

-- ВЫБОР МОБОВ
label(mobsPage, "SELECT MOB")

for _, mobName in ipairs(mobNames) do
    local button = makeButton(mobsPage, mobName)
    farmButtons[mobName] = button

    if mobName == selectedFarmMob then
        button.BackgroundColor3 = Purple
    end

    button.MouseButton1Click:Connect(function()
        selectedFarmMob = mobName
        lastFarmMob = nil
        farmPaused = false
        farmPauseUntil = 0
        teleportedMob = nil

        for name, otherButton in pairs(farmButtons) do
            otherButton.BackgroundColor3 =
                name == selectedFarmMob
                and Purple
                or Color3.fromRGB(29, 30, 41)
        end

        updateFarmStatus(farmEnabled and "SEARCHING" or "OFF")
    end)
end

-- РЕСПАВН
Player.CharacterAdded:Connect(function(character)
    if not farmEnabled then return end

    if farmConnection then
        farmConnection:Disconnect()
        farmConnection = nil
    end

    disableNoclip()

    if farmVelocity then
        farmVelocity:Destroy()
        farmVelocity = nil
    end

    task.spawn(function()
        local root = character:WaitForChild("HumanoidRootPart", 20)
        local humanoid = character:WaitForChild("Humanoid", 20)

        if not root or not humanoid then return end

        task.wait(1)

        if farmEnabled and Player.Character == character then
            originalWalkSpeed = humanoid.WalkSpeed
            enableNoclip()
            createFarmVelocity(root)

            lastFarmMob = nil
            farmPaused = false
            farmPauseUntil = 0

            -- Перезапуск соединения
            farmEnabled = false
            startFarm()
        end
    end)
end)

-- НАСТРОЙКА ВКЛАДОК
setFarmMode("TELEPORT")
showFarmPage(worldPage)


-- VISUAL
local visual = makeTab("VISUAL")
label(visual, "VISUAL SETTINGS")

local espEnabled = false
local currentOutlineColor = Color3.fromRGB(170, 0, 255)

local espObjects = {}
local espConnections = {}

label(visual, "OUTLINE COLOR PALETTE")

local colors = {
    {"PURPLE", Color3.fromRGB(170, 0, 255)},
    {"RED", Color3.fromRGB(255, 0, 0)},
    {"BLUE", Color3.fromRGB(0, 100, 255)},
    {"GREEN", Color3.fromRGB(0, 255, 0)},
    {"CYAN", Color3.fromRGB(0, 255, 255)},
    {"PINK", Color3.fromRGB(255, 0, 170)},
    {"YELLOW", Color3.fromRGB(255, 255, 0)},
    {"WHITE", Color3.fromRGB(255, 255, 255)},
    {"ORANGE", Color3.fromRGB(255, 140, 0)}
}

local function formatHealth(hp)
    local units = {
        {1e33, "dc"},
        {1e30, "no"},
        {1e27, "oc"},
        {1e24, "sp"},
        {1e21, "sx"},
        {1e18, "Qi"},
        {1e15, "Q"},
        {1e12, "T"},
        {1e9, "B"},
        {1e6, "M"},
        {1e3, "K"}
    }

    for _, unit in ipairs(units) do
        if hp >= unit[1] then
            local value = hp / unit[1]
            return string.format("%.1f", value):gsub("%.0$", "") .. unit[2]
        end
    end

    return tostring(math.floor(hp))
end

local function removeESP(character)
    local data = espObjects[character]
    if not data then return end

    for _, connection in ipairs(data.connections) do
        connection:Disconnect()
    end

    if data.highlight then
        data.highlight:Destroy()
    end

    if data.billboard then
        data.billboard:Destroy()
    end

    espObjects[character] = nil
end

local function applyOutlineColor()
    for _, data in pairs(espObjects) do
        if data.highlight and data.highlight.Parent then
            data.highlight.OutlineColor = currentOutlineColor
        end
    end
end

for _, item in ipairs(colors) do
    local colorButton = makeButton(visual, "● " .. item[1])
    colorButton.BackgroundColor3 = item[2]
    colorButton.TextColor3 = Color3.fromRGB(20, 15, 30)

    colorButton.MouseButton1Click:Connect(function()
        currentOutlineColor = item[2]
        applyOutlineColor()
    end)
end

local function createESP(target, character)
    if not espEnabled or target == Player then return end
    if not character or not character.Parent then return end
    if espObjects[character] then return end

    task.spawn(function()
        local head = character:WaitForChild("Head", 10)
        local humanoid = character:WaitForChild("Humanoid", 10)

        if not espEnabled or not head or not humanoid then return end
        if not character.Parent or espObjects[character] then return end

        local highlight = Instance.new("Highlight")
        highlight.Name = "PurpleESP"
        highlight.FillTransparency = 1
        highlight.OutlineTransparency = 0
        highlight.OutlineColor = currentOutlineColor
        highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
        highlight.Parent = character

        local billboard = Instance.new("BillboardGui")
        billboard.Name = "PlayerESP"
        billboard.Adornee = head
        billboard.Size = UDim2.fromOffset(220, 55)
        billboard.StudsOffset = Vector3.new(0, 3, 0)
        billboard.AlwaysOnTop = true
        billboard.MaxDistance = 0
        billboard.Parent = head

        local text = Instance.new("TextLabel")
        text.Size = UDim2.fromScale(1, 1)
        text.BackgroundTransparency = 1
        text.TextColor3 = Color3.new(1, 1, 1)
        text.TextStrokeTransparency = 0
        text.Font = Enum.Font.GothamBold
        text.TextSize = 16
        text.Parent = billboard

        local function update()
            if text.Parent then
                text.Text = target.DisplayName ..
                    "\nHP: " .. formatHealth(humanoid.Health)
            end
        end

        update()

        local data = {
            highlight = highlight,
            billboard = billboard,
            connections = {}
        }

        espObjects[character] = data

        table.insert(data.connections,
            humanoid.HealthChanged:Connect(update)
        )

        table.insert(data.connections,
            humanoid:GetPropertyChangedSignal("MaxHealth"):Connect(update)
        )

        table.insert(data.connections,
            character.AncestryChanged:Connect(function(_, parent)
                if not parent then
                    removeESP(character)
                end
            end)
        )
    end)
end

local function trackPlayer(target)
    if target == Player then return end

    if target.Character then
        createESP(target, target.Character)
    end

    table.insert(espConnections,
        target.CharacterAdded:Connect(function(character)
            if espEnabled then
                createESP(target, character)
            end
        end)
    )
end

local function disableESP()
    for _, connection in ipairs(espConnections) do
        connection:Disconnect()
    end

    table.clear(espConnections)

    local characters = {}

    for character in pairs(espObjects) do
        table.insert(characters, character)
    end

    for _, character in ipairs(characters) do
        removeESP(character)
    end
end

local espButton = makeButton(visual, "PURPLE ESP + HP: OFF")

espButton.MouseButton1Click:Connect(function()
    espEnabled = not espEnabled

    espButton.Text = "PURPLE ESP + HP: " ..
        (espEnabled and "ON" or "OFF")

    if espEnabled then
        for _, target in ipairs(Players:GetPlayers()) do
            trackPlayer(target)
        end

        table.insert(espConnections,
            Players.PlayerAdded:Connect(function(target)
                if espEnabled then
                    trackPlayer(target)
                end
            end)
        )

        table.insert(espConnections,
            Players.PlayerRemoving:Connect(function(target)
                if target.Character then
                    removeESP(target.Character)
                end
            end)
        )
    else
        disableESP()
    end
end)

-- SETTINGS: GUI SCALE
local settings = makeTab("SETTINGS")

label(settings, "KEYBINDS")

local function bindInfo(key, action)
    local row = Instance.new("Frame", settings)
    row.Size = UDim2.new(1, -10, 0, 34)
    row.BackgroundColor3 = Color3.fromRGB(29, 30, 41)
    row.BorderSizePixel = 0
    Instance.new("UICorner", row).CornerRadius = UDim.new(0, 7)

    local keyText = Instance.new("TextLabel", row)
    keyText.Position = UDim2.fromOffset(10, 0)
    keyText.Size = UDim2.new(0, 130, 1, 0)
    keyText.BackgroundTransparency = 1
    keyText.Text = key
    keyText.TextColor3 = Color3.fromRGB(190, 150, 255)
    keyText.Font = Enum.Font.GothamBold
    keyText.TextSize = 12
    keyText.TextXAlignment = Enum.TextXAlignment.Left

    local actionText = Instance.new("TextLabel", row)
    actionText.Position = UDim2.fromOffset(145, 0)
    actionText.Size = UDim2.new(1, -155, 1, 0)
    actionText.BackgroundTransparency = 1
    actionText.Text = action
    actionText.TextColor3 = Color3.fromRGB(225, 225, 235)
    actionText.Font = Enum.Font.Gotham
    actionText.TextSize = 12
    actionText.TextXAlignment = Enum.TextXAlignment.Left
end

bindInfo("G", "Включить / выключить Fly")
bindInfo("P", "Включить / выключить Auto Attack")
bindInfo("Right Shift", "Скрыть / показать NEKIT HUB")

label(settings, "GUI SCALE")

local scaleLabel = label(settings, "SCALE: 100%")

local slider = Instance.new("Frame", settings)
slider.Size = UDim2.new(1, -20, 0, 12)
slider.BackgroundColor3 = Color3.fromRGB(65, 45, 85)
slider.BorderSizePixel = 0

local fill = Instance.new("Frame", slider)
fill.Size = UDim2.new(0.5, 0, 1, 0)
fill.BackgroundColor3 = Light
fill.BorderSizePixel = 0

local knob = Instance.new("TextButton", slider)
knob.Size = UDim2.fromOffset(18, 18)
knob.AnchorPoint = Vector2.new(0.5, 0.5)
knob.Position = UDim2.new(0.5, 0, 0.5, 0)
knob.BackgroundColor3 = Color3.new(1,1,1)
knob.Text = ""
knob.BorderSizePixel = 0

local dragging = false

local function setScale(percent)
    percent = math.clamp(percent, 70, 130)

    local value = (percent - 70) / 60

    uiScale.Scale = percent / 100

    fill.Size = UDim2.new(value, 0, 1, 0)
    knob.Position = UDim2.new(value, 0, 0.5, 0)

    scaleLabel.Text = "SCALE: " .. math.floor(percent) .. "%"
end

local function updateSlider(input)
    local position = math.clamp(
        (input.Position.X - slider.AbsolutePosition.X) / slider.AbsoluteSize.X,
        0, 1
    )

    setScale(70 + position * 60)
end

slider.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        updateSlider(input)
    end
end)

knob.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
    end
end)

UIS.InputChanged:Connect(function(input)
    if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
        updateSlider(input)
    end
end)

UIS.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = false
    end
end)

setScale(100)

-- GUI CONTROLS
local minimized = false

minimize.MouseButton1Click:Connect(function()
    minimized = not minimized
    sidebar.Visible = not minimized
    pages.Visible = not minimized

    main.Size = minimized
        and UDim2.fromOffset(700,48)
        or UDim2.fromOffset(700,460)

    minimize.Text = minimized and "+" or "—"
end)

local visible = true

UIS.InputBegan:Connect(function(input, processed)
    if not processed and input.KeyCode == Enum.KeyCode.RightShift then
        visible = not visible
        main.Visible = visible
    end

    if not processed and input.KeyCode == Enum.KeyCode.P then
        toggleAttack()
    end
end)

print("NEKIT HUB loaded!")



--ping|fps


local UIS = game:GetService("UserInputService")
local RS = game:GetService("RunService")
local Stats = game:GetService("Stats")
local HttpService = game:GetService("HttpService")

local saveFile = "MinimalStats_Pos.json"

local function loadPos()
    if isfile(saveFile) then
        local d = HttpService:JSONDecode(readfile(saveFile))
        return UDim2.new(d.XS, d.XO, d.YS, d.YO)
    end
end

local function savePos(p)
    writefile(saveFile, HttpService:JSONEncode({
        XS = p.X.Scale,
        XO = p.X.Offset,
        YS = p.Y.Scale,
        YO = p.Y.Offset
    }))
end

local sg = Instance.new("ScreenGui")
sg.Name = "MinimalStats"
sg.ResetOnSpawn = false
sg.IgnoreGuiInset = true
sg.Parent = game:GetService("CoreGui")

local main = Instance.new("Frame")
main.Size = UDim2.new(0,100,0,40)
main.Position = loadPos() or UDim2.new(0.5,-50,0.1,0)
main.BackgroundColor3 = Color3.fromRGB(15,15,15)
main.BackgroundTransparency = 0.25
main.BorderSizePixel = 0
main.Active = true
main.Parent = sg

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

local stroke = Instance.new("UIStroke", main)
stroke.Thickness = 1.2
stroke.Color = Color3.new(1,1,1)
stroke.Transparency = 0.8

local layout = Instance.new("UIListLayout", main)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.VerticalAlignment = Enum.VerticalAlignment.Center
layout.Padding = UDim.new(0,1)

local function label()
    local l = Instance.new("TextLabel")
    l.Size = UDim2.new(1,0,0,15)
    l.BackgroundTransparency = 1
    l.Font = Enum.Font.GothamBold
    l.TextColor3 = Color3.new(1,1,1)
    l.TextSize = 13
    l.Parent = main
    return l
end

local fpsLabel = label()
local pingLabel = label()

local dragging, dragInput, dragStart, startPos

main.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = i.Position
        startPos = main.Position
        i.Changed:Connect(function()
            if i.UserInputState == Enum.UserInputState.End then
                dragging = false
                savePos(main.Position)
            end
        end)
    end
end)

main.InputChanged:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch then
        dragInput = i
    end
end)

UIS.InputChanged:Connect(function(i)
    if i == dragInput and dragging then
        local d = i.Position - dragStart
        main.Position = UDim2.new(
            startPos.X.Scale,
            startPos.X.Offset + d.X,
            startPos.Y.Scale,
            startPos.Y.Offset + d.Y
        )
    end
end)

local frames = 0
local last = tick()

RS.RenderStepped:Connect(function()
    frames += 1
    local now = tick()

    if now - last >= 1 then
        local fps = frames
        local ping = Stats.PerformanceStats.Ping:GetValue()
        
        fpsLabel.Text = "FPS: "..fps
        pingLabel.Text = "PING: "..string.format("%.0f", ping).."ms"

        if fps >= 50 then
            fpsLabel.TextColor3 = Color3.fromRGB(120,255,120)
        elseif fps >= 30 then
            fpsLabel.TextColor3 = Color3.fromRGB(255,200,80)
        else
            fpsLabel.TextColor3 = Color3.fromRGB(255,80,80)
        end

        frames = 0
        last = now
    end
end)
🎮 Similar Scripts
💬 Comments (0)
Login to post a comment
No comments yet. Be the first!
Script Info
Game Blox Loot
TypeKeyless
Authorknockoutscripts
Views5
Likes0
PublishedNov 9, 2026
🎮 Play Game on Roblox
🕐 Recent Scripts
Arkxi Hub Blox Fruits Auto Halloween Event script
Arkxi Hub Blox Fruits Auto Halloween Event script
Blox Fruits • 👁 2
Keyless
Fly script for mobile only
Fly script for mobile only
Just a baseplate. • 👁 5
Keyless
Tokyo X Hub Blade Ball script (No Key)
Tokyo X Hub Blade Ball script (No Key)
Blade Ball • 👁 4
Keyless
3 Functions, Build a boat script (No miner, you can search miner in script) Free and ok
3 Functions, Build a boat script (No miner, you can search miner in script) Free and ok
Build A Boat For Treasure • 👁 5
Keyless
Stratub Hub MM2 script keyless | Auto farm
Stratub Hub MM2 script keyless | Auto farm
Murder Mystery 2 • 👁 5
Keyless