
Keyless VerifiedUniversal
--[[
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))
]])No comments yet for this script.
