local Players=game:GetService("Players") local VIM=game:GetService("VirtualInputManager") local UIS=game:GetService("UserInputService") local RS=game:GetService("RunService") local player=Players.LocalPlayer local enabled=true local threshold=0.98 local keys={ Track1=Enum.KeyCode.A, Track2=Enum.KeyCode.S, Track3=Enum.KeyCode.L, Track4=Enum.KeyCode.Semicolon } local function key(k,d) VIM:SendKeyEvent(d,k,false,game) end local gameplay while not gameplay do for _,g in ipairs(player.PlayerGui:GetChildren()) do gameplay=g:FindFirstChild("GameplayFrame") if gameplay then break end end task.wait() end local function tap(note,k) while note.Parent do RS.Stepped:Wait() if note.Position.Y.Scale>=threshold then if enabled then key(k,true) task.wait(0.03) key(k,false) end return end end end local function hold(note,k) local h=note:FindFirstChild("Head") local t=note:FindFirstChild("Tail") if not h or not t then return end while note.Parent do RS.Stepped:Wait() if enabled and h.Position.Y.Scale>=threshold then key(k,true) break end end while note.Parent do RS.Stepped:Wait() if not enabled or t.Position.Y.Scale>=threshold then key(k,false) return end end key(k,false) end for _,track in ipairs(gameplay.Tracks:GetChildren()) do local k=keys[track.Name] if track:IsA("Frame") and k then track.ChildAdded:Connect(function(note) task.spawn(function() if note:FindFirstChild("Head") and note:FindFirstChild("Tail") then hold(note,k) else tap(note,k) end end) end) end end UIS.InputBegan:Connect(function(i,gp) if not gp and i.KeyCode==Enum.KeyCode.Y then enabled=not enabled end end)