--[[ MMMPlxyer - Condensed Logic Only - Toggle Key: "none" editable at line 24 - Reworked By Raikou :D ]] local lIlIlI = loadstring(game:HttpGet("https://raw.githubusercontent.com/AZYsGithub/DrRay-UI-Library/main/DrRay.lua"))() local o0Oo0O = lIlIlI:Load("MMMPlxyer V2", "Default") local iIi1I1 = lIlIlI.newTab("MMMAutoPlayer", "7733960981") local O0O00 = true local function sendNotif(state) game.StarterGui:SetCore("SendNotification", { Title = "MMMPlxyer V2", Text = "Autoplayer: " .. (state and "ENABLED" or "DISABLED"), Duration = 2 }) end local UIS = game:GetService("UserInputService") UIS.InputBegan:Connect(function(input, processed) --replace the nil to any key u want if not processed and input.KeyCode == Enum.KeyCode.nil then O0O00 = not O0O00 sendNotif(O0O00) end end) iIi1I1.newToggle("Toggle Autoplayer", "Toggles the autoplayer", true, function(v) O0O00 = v end) iIi1I1.newKeybind("Close GUI", "A Keybind to close the gui", function() o0Oo0O:Close() end) if not game:IsLoaded() then game.Loaded:Wait() end local VIM = game:GetService("VirtualInputManager") local RS = game:GetService("RunService") local Opts = getrenv()._G.PlayerData.Options local TYP = {"Left", "Right"} local C0nns = {} local KeyMap = { [9] = {"Left", "Down", "Up", "Right", "Space", "Left2", "Down2", "Up2", "Right2"}, [8] = {"Left", "Down", "Up", "Right", "Left2", "Down2", "Up2", "Right2"}, [7] = {"Left", "Up", "Right", "Space", "Left2", "Down", "Right2"}, [6] = {"Left", "Up", "Right", "Left2", "Down", "Right2"}, [5] = {"Left", "Down", "Space", "Up", "Right"}, [4] = {"Left", "Down", "Up", "Right"} } local function sorter(p) if not p then return {} end local c = p:GetChildren() table.sort(c, function(a, b) return a.AbsolutePosition.X < b.AbsolutePosition.X end) return c end local function getMatch() for _, v in ipairs(getgc(true)) do if type(v) == "table" and rawget(v, "MatchFolder") then return v end end end local function MAIN() local m = getMatch() if not m then return end repeat task.wait() until rawget(m, "Songs") local side = TYP[m.PlayerType] local G = m.ArrowGui[side] local receptors = sorter(G.MainArrowContainer) local longHolders = sorter(G.LongNotes) local noteHolders = sorter(G.Notes) local max = m.MaxArrows local keys = KeyMap[max] local binds = max < 5 and Opts or Opts.ExtraKeySettings[tostring(max)] for i, holder in ipairs(noteHolders) do local keycode = binds[keys[i].."Key"] local receptor = receptors[i] local longContainer = longHolders[i] table.insert(C0nns, holder.ChildAdded:Connect(function(note) task.spawn(function() while note and note.Parent and (receptor.AbsolutePosition - note.AbsolutePosition).Magnitude > 25 do RS.RenderStepped:Wait() end if not O0O00 or not note or not note.Parent then return end VIM:SendKeyEvent(true, keycode, false, nil) task.wait() local body = longContainer:FindFirstChildWhichIsA("GuiObject") if body then while body and body.Parent == longContainer and O0O00 do local bodyBottom = body.AbsolutePosition.Y + body.AbsoluteSize.Y local receptorPos = receptor.AbsolutePosition.Y if bodyBottom < receptorPos then break end RS.RenderStepped:Wait() end end VIM:SendKeyEvent(false, keycode, false, nil) end) end)) end return m end while true do task.wait(1) for _, v in ipairs(C0nns) do v:Disconnect() end table.clear(C0nns) local match = MAIN() if match and match.MatchFolder then match.MatchFolder.Destroying:Wait() end end