-- THIS DOES NOT WORK WITH XENO! -- DO NOT TOUCH ANYTHING while the bot is playing, dont even turn the sound down, no nothing! itll mess up the bot -- lag plays a MAJOR role in this bot, if you lag even for like 5 frames, itll just stop working or something, idk just have a good device (mine sucks) -- I couldnt get upscroll to work so dont enable it -- have your keybinds set to A, S, K, L local keybinds = {0x41,0x53,0x4B,0x4C} -- (https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes) local offset = 0 -- do not change, its fine at the moment if getgenv().restartautoplayss ~= nil then getgenv().restartautoplayss() end local notes = {} local hitnotes = {} function docol(v) if v:IsA("Frame") and string.sub(v.Name,1,4) == "Lane" then local cnum = tonumber(string.sub(v.Name,5)) hitnotes[cnum] = v.Hitzone v.ChildAdded:Connect(function(c) if c.Name == "Note" then table.insert(notes,{c,cnum}) end end) end end for i,v in pairs(game:GetService("Players").LocalPlayer.PlayerGui.KEYHUD.Cascade:GetChildren()) do docol(v) end local toremove = {} local alreadypressed = {} local upscroll = false local ors = game:GetService("RunService").RenderStepped:Connect(function() if game:GetService("Players").LocalPlayer.PlayerGui.Menu.ReadyScreen2.Upscroll.Tx.Text == "Disabled" then upscroll = false elseif game:GetService("Players").LocalPlayer.PlayerGui.Menu.ReadyScreen2.Upscroll.Tx.Text == "Enabled" then upscroll = true end for i,v in pairs(keybinds) do keyrelease(v) end local cnotes = notes for i,v in pairs(cnotes) do if typeof(v[1]) == "Instance" and not alreadypressed[v[1]] then local checkpos = nil if upscroll then checkpos = (hitnotes[v[2]].AbsolutePosition.Y >= v[1].AbsolutePosition.Y + offset) else checkpos = (hitnotes[v[2]].AbsolutePosition.Y <= v[1].AbsolutePosition.Y + offset) end if checkpos then local kb = keybinds[v[2]]--keybinds[(upscroll and 4 - v[2]) or v[2]] toremove[i] = true alreadypressed[v[1]] = true keypress(kb) elseif v[1] == nil or v[1].Parent == nil then toremove[i] = true end end end for i,v in pairs(toremove) do notes[i] = nil toremove[i] = nil end end) getgenv().restartautoplayss = function() ors:Disconnect() end