robloxexploits.lol
Keyless

simple autoplay bot only 4k

areyoumental110 1 year ago 13K views 2

Run it

Copy the script and paste it into your executor.

simple autoplay bot only 4k.lua · 114 lines
-- THIS DOES NOT WORK WITH XENO!
-- only support 4 key

-- 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)
-- have your keybinds set to A, S, W, D

local keybinds = {0x41,0x53,0x57,0x44} -- (https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes)
local offset = 0 -- do not change, its fine at the moment

local localplr = game.Players.LocalPlayer
if getgenv().restartautoplayss ~= nil then
	getgenv().restartautoplayss()
end
local notes = {}
local hitnotes = {}
function docol(v)
	if v:IsA("Frame")then
		local cnum = v.Name
		v.ChildAdded:Connect(function(c)
			if c:IsA("ImageLabel") then
				table.insert(notes,{c,cnum})
			end
		end)
	end
end
local side = "Right"
function getside()
		for i,v in pairs(game.ReplicatedStorage.ComplexMatches:GetChildren()) do
			for i,v in pairs(v:GetChildren()) do
				if v.Name == localplr.Name then
					side = (v.PlayerType.Value == 1 and "Left") or (v.PlayerType.Value == 2 and "Right")
				end
			end
		end
		for i,v in pairs(game.ReplicatedStorage.Matches:GetChildren()) do
			--for i,v in pairs(v:GetChildren()) do
				if v.Participants.Value == nil then
					if (v.Owner.Value and v.Owner.Value.Name == localplr.Name) or (v.Opponent.Value and v.Opponent.Value.Name == localplr.Name) then
						local ptype = (v.Owner.Value and v.Owner.Value.Name == localplr.Name and v.Owner.PlayerType.Value) or (v.Opponent.Value and v.Opponent.Value.Name == localplr.Name and v.Opponent.PlayerType.Value)
						side = (ptype == 1 and "Left") or (ptype == 2 and "Right")
					end
				end
			--end
		end
		--side = (side == "Left" and "Right") or "Left"
end
getside()
local dup = {Left = 1,Down = 2,Up = 3,Right = 4}
function domn(v)
		hitnotes[v.Name] = v
end
function dag(v)
	getside()
	for i,v in pairs(v[side].Notes:GetChildren()) do
			docol(v)
	end
	coroutine.wrap(function()
		v[side]:WaitForChild("MainArrowContainer",math.huge)
		for i,v in pairs(v[side].MainArrowContainer:GetChildren()) do
			domn(v)
		end
	end)()
end
if localplr.PlayerGui.ScreenGui:FindFirstChild("ArrowGui",true) and not localplr.PlayerGui.ScreenGui:FindFirstChild("ArrowGui",true).Parent:FindFirstChild("Bop") then
	dag(localplr.PlayerGui.ScreenGui:FindFirstChild("ArrowGui",true))
end
local newgui = localplr.PlayerGui.ScreenGui:FindFirstChild("Bop",true).ChildAdded:Connect(function(child)
	if child.Name == "ArrowGui" then
		dag(child)
	end
end)
local toremove = {}
local alreadypressed = {}
local upscroll = false
local ors = game:GetService("RunService").RenderStepped:Connect(function()
	for i,v in pairs(keybinds) do
		keyrelease(v)
	end
	if localplr.PlayerGui.ScreenGui:FindFirstChild("ArrowGui",true) and localplr.PlayerGui.ScreenGui:FindFirstChild("ArrowGui",true)[side] and localplr.PlayerGui.ScreenGui:FindFirstChild("ArrowGui",true)[side]:FindFirstChild("MainArrowContainer") then
		upscroll = localplr.PlayerGui.ScreenGui:FindFirstChild("ArrowGui",true)[side].MainArrowContainer:GetChildren()[1].AbsolutePosition.Y < localplr.PlayerGui.ScreenGui.AbsoluteSize.Y/2
		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 v[1] and v[1].Parent ~= nil then
				local checkpos = nil
				if upscroll then
					checkpos = v[1].AbsolutePosition.Y < 0--math.abs(hitnotes[v[2]].AbsolutePosition.Y - v[1].AbsolutePosition.Y) < 100
				else
					checkpos = v[1].AbsolutePosition.Y > 431
				end
				if checkpos then
					local kb = keybinds[dup[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
		alreadypressed = {}
	end
end)
getgenv().restartautoplayss = function()
	ors:Disconnect()
	newgui:Disconnect()
end

About this script

no xeno support since xeno didnt do their keypress function correctly auto play only support 4 key cant do long notes lmao idk if it supports team matches

More for {MECHANICS} Monday Morning Misery [Beta]