script H-386
Key Required

script H-386

[LULLABY] Funky Fridaydalinswasdithxng27dalinswasdithxng27 2.4K views 9.6K executesUpdated Sep 4, 2026
Unrated
00
Lua Script•377 lines (14032 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
--Made by 0_Void
--Test by BOT_Extream on delta executor about pc? Only high unc lol
run_on_actor(game:GetService("Players").LocalPlayer.PlayerScripts.ClientActor, [[
    if not newlclosure then
        getgenv().newlclosure = function(func)
            local env = getfenv(func)
            local t = {F = func}
            setrawmetatable(t, {index = env, newindex = env})
            local closure = function(...)
                return F(...)
            end
            setfenv(closure, t)
            return closure
        end
    end

    local RunService = game:GetService("RunService")
    local UserInputService = game:GetService("UserInputService")
    local Players = game:GetService("Players")
    local LocalPlayer = Players.LocalPlayer

    -- ==========================================
    -- CONFIGURATION
    -- ==========================================
    local TAP_HOLD_MS = 120      -- Tap note hold length (ms)
    local GUI_UPDATE_RATE = 0.016 -- Refresh UI/FPS every 100ms
    local TOGGLE_KEY = Enum.KeyCode.RightControl
    -- ==========================================

    local autoPlayerEnabled = true
    local keyHitCounts = {} 
    local keyCounterLabels = {} 
    local keyFrames = {} 
    local counterContainerFrame = nil

    local function createStatusGUI()
        local playerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui", 5)
        if not playerGui then return nil end

        local existing = playerGui:FindFirstChild("AutoPlayerStatus")
        if existing then existing:Destroy() end

        local screenGui = Instance.new("ScreenGui")
        screenGui.Name = "AutoPlayerStatus"
        screenGui.ResetOnSpawn = false
        screenGui.DisplayOrder = 999999999 -- Maximum Z-index layer depth
        screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Global
        screenGui.Parent = playerGui

        local frame = Instance.new("Frame")
        frame.Size = UDim2.new(0, 240, 0, 160)
        frame.Position = UDim2.new(0.02, 0, 0.3, 0)
        frame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
        frame.BorderSizePixel = 0
        frame.Active = true
        frame.Draggable = true
        frame.ZIndex = 10
        frame.Parent = screenGui

        local corner = Instance.new("UICorner")
        corner.CornerRadius = UDim.new(0, 8)
        corner.Parent = frame

        local title = Instance.new("TextLabel")
        title.Size = UDim2.new(1, -10, 0, 25)
        title.Position = UDim2.new(0, 10, 0, 0)
        title.BackgroundTransparency = 1
        title.Text = "ENGINE STATUS"
        title.TextColor3 = Color3.fromRGB(0, 255, 170)
        title.TextXAlignment = Enum.TextXAlignment.Left
        title.Font = Enum.Font.SourceSansBold
        title.TextSize = 14
        title.ZIndex = 11
        title.Parent = frame

        local statusText = Instance.new("TextLabel")
        statusText.Size = UDim2.new(1, -20, 0, 45)
        statusText.Position = UDim2.new(0, 10, 0, 25)
        statusText.BackgroundTransparency = 1
        statusText.Text = "Status: Idle\nFPS: --\nEvents: 0 / 0"
        statusText.TextColor3 = Color3.fromRGB(220, 220, 220)
        statusText.TextXAlignment = Enum.TextXAlignment.Left
        statusText.TextYAlignment = Enum.TextYAlignment.Top
        statusText.Font = Enum.Font.Code
        statusText.TextSize = 11
        statusText.ZIndex = 11
        statusText.Parent = frame

        -- Single Row Key Counters Container
        counterContainerFrame = Instance.new("Frame")
        counterContainerFrame.Size = UDim2.new(1, -20, 0, 42)
        counterContainerFrame.Position = UDim2.new(0, 10, 0, 72)
        counterContainerFrame.BackgroundTransparency = 1
        counterContainerFrame.ZIndex = 11
        counterContainerFrame.Parent = frame

        local toggleBtn = Instance.new("TextButton")
        toggleBtn.Size = UDim2.new(1, -20, 0, 28)
        toggleBtn.Position = UDim2.new(0, 10, 0, 122)
        toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 100)
        toggleBtn.BorderSizePixel = 0
        toggleBtn.Font = Enum.Font.SourceSansBold
        toggleBtn.Text = "AUTOPLAY: ON [RCtrl]"
        toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
        toggleBtn.TextSize = 12
        toggleBtn.ZIndex = 11
        toggleBtn.Parent = frame

        local btnCorner = Instance.new("UICorner")
        btnCorner.CornerRadius = UDim.new(0, 5)
        btnCorner.Parent = toggleBtn

        local function updateToggleState()
            if autoPlayerEnabled then
                toggleBtn.Text = "AUTOPLAY: ON [RCtrl]"
                toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 100)
            else
                toggleBtn.Text = "AUTOPLAY: OFF [RCtrl]"
                toggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
            end
        end

        toggleBtn.MouseButton1Click:Connect(function()
            autoPlayerEnabled = not autoPlayerEnabled
            updateToggleState()
        end)

        UserInputService.InputBegan:Connect(function(input, gpe)
            if not gpe and input.KeyCode == TOGGLE_KEY then
                autoPlayerEnabled = not autoPlayerEnabled
                updateToggleState()
            end
        end)

        return statusText
    end

    local statusUI = createStatusGUI()

    local function setupKeyCounterUI(keyCount)
        if not counterContainerFrame then return end
        counterContainerFrame:ClearAllChildren()
        keyCounterLabels = {}
        keyHitCounts = {}
        keyFrames = {}

        local spacing = 3
        local totalAvailableWidth = 220
        local itemWidth = math.floor((totalAvailableWidth - ((keyCount - 1) * spacing)) / keyCount)
        local itemHeight = 40

        for lane = 1, keyCount do
            keyHitCounts[lane] = 0

            local keyFrame = Instance.new("Frame")
            keyFrame.Size = UDim2.new(0, itemWidth, 0, itemHeight)
            keyFrame.Position = UDim2.new(0, (lane - 1) * (itemWidth + spacing), 0, 0)
            keyFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
            keyFrame.BorderSizePixel = 0
            keyFrame.ZIndex = 12
            keyFrame.Parent = counterContainerFrame

            local keyCorner = Instance.new("UICorner")
            keyCorner.CornerRadius = UDim.new(0, 4)
            keyCorner.Parent = keyFrame

            local keyTitle = Instance.new("TextLabel")
            keyTitle.Size = UDim2.new(1, 0, 0, 12)
            keyTitle.Position = UDim2.new(0, 0, 0, 2)
            keyTitle.BackgroundTransparency = 1
            keyTitle.Text = "K" .. lane
            keyTitle.TextColor3 = Color3.fromRGB(0, 255, 170)
            keyTitle.Font = Enum.Font.SourceSansBold
            keyTitle.TextSize = 10
            keyTitle.ZIndex = 13
            keyTitle.Parent = keyFrame

            local countLabel = Instance.new("TextLabel")
            countLabel.Size = UDim2.new(1, 0, 1, -14)
            countLabel.Position = UDim2.new(0, 0, 0, 12)
            countLabel.BackgroundTransparency = 1
            countLabel.Text = "0"
            countLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
            countLabel.Font = Enum.Font.Code
            countLabel.TextSize = 11
            countLabel.ZIndex = 13
            countLabel.Parent = keyFrame

            keyCounterLabels[lane] = countLabel
            keyFrames[lane] = keyFrame
        end
    end

    local function setUI(text)
        if statusUI then
            statusUI.Text = text
        end
    end

    local function isIgnoredType(noteType)
        if not noteType then return false end
        local numType = tonumber(noteType)
        return numType and numType >= 18 and numType <= 30
    end

    local newgame, gamehandler
    for i, v in pairs(getgc(true)) do
        if type(v) == "table" and rawget(v, "Games") and rawget(v, "NewGame") then
            newgame = v.StartGame
            gamehandler = v
            break
        end
    end

    if not gamehandler then
        warn("[AutoPlayer] GameHandler not found in GC!")
        return
    end

    local function ongamestarted()
        setUI("Status: Syncing...\nFPS: Measuring\nEvents: Loading...")
        
        local gameid, game = next(gamehandler.Games)
        
        local timeout = 0
        repeat 
            task.wait(0.05) 
            timeout = timeout + 0.05
        until (gamehandler.Field and gamehandler.Field.Game and gamehandler.Field.Game.TimePosition) or timeout > 10

        if not gamehandler.Field or not gamehandler.Field.Game then
            setUI("Status: Failed to Hook Game")
            return
        end
        
        local field = gamehandler.Field
        local side = field.Team
        local rate = field.Game.AdjustedPlayback or 1
        
        local tapHoldSec = (TAP_HOLD_MS / 1000) / rate
        local noteConfigs = game.NoteConfigs and game.NoteConfigs.NoteData

        local maxDirection = 4
        for _, v in pairs(game.Notes) do
            if v.Direction and tonumber(v.Direction) then
                if v.Direction > maxDirection then
                    maxDirection = v.Direction
                end
            end
        end

        setupKeyCounterUI(maxDirection)

        local events = {}
        local eventCount = 0

        for i, v in pairs(game.Notes) do
            if not isIgnoredType(v.Type) and (v.Field == side or v.Field == "All") then
                local isDeathNote = v.Type and noteConfigs and noteConfigs[tostring(v.Type)] and noteConfigs[tostring(v.Type)].Type == "Death"
                
                if not isDeathNote then
                    local dir = v.Direction
                    local pressTime = v.Time
                    local holdDuration = (v.Length and v.Length > 0) and (v.Length / rate) or tapHoldSec
                    local releaseTime = pressTime + holdDuration

                    eventCount = eventCount + 1
                    events[eventCount] = { time = pressTime, dir = dir, state = true }

                    eventCount = eventCount + 1
                    events[eventCount] = { time = releaseTime, dir = dir, state = false }
                end
            end
        end

        table.sort(events, function(a, b)
            return a.time < b.time
        end)

        local activeHolds = {}
        local eventIndex = 1
        
        local lastTimePosition = field.Game.TimePosition
        local lastClock = os.clock()
        local lastFrameClock = os.clock()
        local lastGuiUpdate = 0

        local connection
        connection = RunService.RenderStepped:Connect(function()
            if not gamehandler.Field or not field.Game then 
                setUI("Status: Game Ended\nFPS: --\nEvents: Done")
                connection:Disconnect()
                return 
            end

            local nowClock = os.clock()
            local frameDelta = nowClock - lastFrameClock
            lastFrameClock = nowClock

            local rawTime = field.Game.TimePosition or 0

            if rawTime ~= lastTimePosition then
                lastTimePosition = rawTime
                lastClock = nowClock
            end

            local preciseTime = rawTime + ((nowClock - lastClock) * rate)
            local currentTick = tick()

            while eventIndex <= eventCount do
                local ev = events[eventIndex]
                if preciseTime < ev.time then break end

                local dir = ev.dir
                
                if autoPlayerEnabled then
                    if ev.state then
                        activeHolds[dir] = (activeHolds[dir] or 0) + 1
                        field:HitLane(dir, true, currentTick)
                        
                        -- INSTANT INCREMENT & COLOR FILL
                        if keyHitCounts[dir] then
                            keyHitCounts[dir] = keyHitCounts[dir] + 1
                            if keyCounterLabels[dir] then
                                keyCounterLabels[dir].Text = tostring(keyHitCounts[dir])
                            end
                        end

                        if keyFrames[dir] then
                            keyFrames[dir].BackgroundColor3 = Color3.fromRGB(0, 200, 120)
                        end
                    else
                        local count = (activeHolds[dir] or 1) - 1
                        activeHolds[dir] = count
                        if count <= 0 then
                            activeHolds[dir] = 0
                            field:HitLane(dir, false, currentTick)
                            
                            -- INSTANT UNFILL ON RELEASE
                            if keyFrames[dir] then
                                keyFrames[dir].BackgroundColor3 = Color3.fromRGB(25, 25, 35)
                            end
                        end
                    end
                end

                eventIndex = eventIndex + 1
            end

            if nowClock - lastGuiUpdate >= GUI_UPDATE_RATE then
                lastGuiUpdate = nowClock
                local currentFPS = frameDelta > 0 and math.floor(1 / frameDelta) or 0
                local statusState = autoPlayerEnabled and "Active (0ms)" or "PAUSED"

                if eventIndex > eventCount then
                    setUI(string.format("Status: Complete\nFPS: %d\nEvents: %d / %d", currentFPS, eventCount, eventCount))
                    connection:Disconnect()
                else
                    setUI(string.format("Status: %s\nFPS: %d\nEvents: %d / %d", statusState, currentFPS, eventIndex - 1, eventCount))
                end
            end
        end)
    end

    if isfunctionhooked and isfunctionhooked(newgame) then 
        restorefunction(newgame) 
    end

    local old; old = hookfunction(newgame, newlclosure(function(...)
        local res = old(...)
        task.spawn(ongamestarted)
        return res
    end))
]])

Features & Information

Pfc Absurde if you device is good Optimize to make less lag keyless remake by gemini QwQ

Community Comments (0)

No comments yet for this script.

More Scripts for [LULLABY] Funky Friday