Jine Bot Universal Script

Roblox Scripts is what Roblox players and coders use to build interactive games. To be more specific, players use Lua scripts—a popular scripting and programming language.

BloxScript4You


We do not any harmful on your devices we always check it before we post online.
Instruction
1.Open Roblox And Start Playing
2.Click The Blue Circle To Copy The Script Code
3.Paste The Script Code Into Your Executor
4.Then Execute The Script Code
5.Enjoy
Use your dummy account first we are not responsible if your account getting Ban.
Script Code
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local menu
local MenuName = isfile("bitchbot/menuname.txt") and readfile("bitchbot/menuname.txt") or nil
local loadstart = tick()

local function map(X, A, B, C, D)
	return (X - A) / (B - A) * (D - C) + C
end

do
	local notes = {}
	local function DrawingObject(t, col)
		local d = Drawing.new(t)

		d.Visible = true
		d.Transparency = 1
		d.Color = col

		return d
	end

	local function Rectangle(sizex, sizey, fill, col)
		local s = DrawingObject("Square", col)

		s.Filled = fill
		s.Thickness = 1
		s.Position = Vector2.new()
		s.Size = Vector2.new(sizex, sizey)

		return s
	end

	local function Text(text)
		local s = DrawingObject("Text", Color3.new(1, 1, 1))

		s.Text = text
		s.Size = 13
		s.Center = false
		s.Outline = true
		s.Position = Vector2.new()
		s.Font = 2

		return s
	end

	function CreateNotification(t, customcolor) -- TODO i want some kind of prioritized message to the notification list, like a warning or something. warnings have icons too maybe? idk??
		local gap = 25
		local width = 18

		local alpha = 255
		local time = 0
		local estep = 0
		local eestep = 0.02

		local insety = 0

		local Note = {

			enabled = true,

			targetPos = Vector2.new(50, 33),

			size = Vector2.new(200, width),

			drawings = {
				outline = Rectangle(202, width + 2, false, Color3.new(0, 0, 0)),
				fade = Rectangle(202, width + 2, false, Color3.new(0, 0, 0)),
			},

			Remove = function(self, d)
				if d.Position.x < d.Size.x then
					for k, drawing in pairs(self.drawings) do
						drawing:Remove()
						drawing = false
					end
					self.enabled = false
				end
			end,

			Update = function(self, num, listLength, dt)
				local pos = self.targetPos

				local indexOffset = (listLength - num) * gap
				if insety < indexOffset then
					insety -= (insety - indexOffset) * 0.2
				else
					insety = indexOffset
				end
				local size = self.size

				local tpos = Vector2.new(pos.x - size.x / time - map(alpha, 0, 255, size.x, 0), pos.y + insety)
				self.pos = tpos

				local locRect = {
					x = math.ceil(tpos.x),
					y = math.ceil(tpos.y),
					w = math.floor(size.x - map(255 - alpha, 0, 255, 0, 70)),
					h = size.y,
				}
				--pos.set(-size.x / fc - map(alpha, 0, 255, size.x, 0), pos.y)

				local fade = math.min(time * 12, alpha)
				fade = fade > 255 and 255 or fade < 0 and 0 or fade

				if self.enabled then
					local linenum = 1
					for i, drawing in pairs(self.drawings) do
						drawing.Transparency = fade / 255

						if type(i) == "number" then
							drawing.Position = Vector2.new(locRect.x + 1, locRect.y + i)
							drawing.Size = Vector2.new(locRect.w - 2, 1)
						elseif i == "text" then
							drawing.Position = tpos + Vector2.new(6, 2)
						elseif i == "outline" then
							drawing.Position = Vector2.new(locRect.x, locRect.y)
							drawing.Size = Vector2.new(locRect.w, locRect.h)
						elseif i == "fade" then
							drawing.Position = Vector2.new(locRect.x - 1, locRect.y - 1)
							drawing.Size = Vector2.new(locRect.w + 2, locRect.h + 2)
							local t = (200 - fade) / 255 / 3
							drawing.Transparency = t < 0.4 and 0.4 or t
						elseif i:find("line") then
							drawing.Position = Vector2.new(locRect.x + linenum, locRect.y + 1)
							if menu then
								local mencol = customcolor or (
										Color3.fromRGB(127, 72, 163)
									)
								local color = linenum == 1 and mencol or Color3.fromRGB(mencol.R * 255 - 40, mencol.G * 255 - 40, mencol.B * 255 - 40) -- super shit
								if drawing.Color ~= color then
									drawing.Color = color
								end
							end
							linenum += 1
						end
					end

					time += estep * dt * 128 -- TODO need to do the duration
					estep += eestep * dt * 64
				end
			end,

			Fade = function(self, num, len, dt)
				if self.pos.x > self.targetPos.x - 0.2 * len or self.fading then
					if not self.fading then
						estep = 0
					end
					self.fading = true
					alpha -= estep / 4 * len * dt * 50
					eestep += 0.01 * dt * 100
				end
				if alpha <= 0 then
					self:Remove(self.drawings[1])
				end
			end,
		}

		for i = 1, Note.size.y - 2 do
			local c = 0.28 - i / 80
			Note.drawings[i] = Rectangle(200, 1, true, Color3.new(c, c, c))
		end
		local color =  Color3.fromRGB(127, 72, 163)

		Note.drawings.text = Text(t)
		if Note.drawings.text.TextBounds.x + 7 > Note.size.x then -- expand the note size to fit if it's less than the default size
			Note.size = Vector2.new(Note.drawings.text.TextBounds.x + 7, Note.size.y)
		end
		Note.drawings.line = Rectangle(1, Note.size.y - 2, true, color)
		Note.drawings.line1 = Rectangle(1, Note.size.y - 2, true, color)

		notes[#notes + 1] = Note
	end

	renderStepped = game.RunService.RenderStepped:Connect(function(dt)
		Camera = workspace.CurrentCamera
		local smallest = math.huge
		for k = 1, #notes do
			local v = notes[k]
			if v and v.enabled then
				smallest = k < smallest and k or smallest
			else
				table.remove(notes, k)
			end
		end
		local length = #notes
		for k = 1, #notes do
			local note = notes[k]
			note:Update(k, length, dt)
			if k <= math.ceil(length / 10) or note.fading then
				note:Fade(k, length, dt)
			end
		end
	end)
	--ANCHOR how to create notification
	--CreateNotification("Loading...")
end

--!SECTION

local menuWidth, menuHeight = 500, 600
menu = { -- this is for menu stuffs n shi
	w = menuWidth,
	h = menuHeight,
	x = 0,
	y = 0,
	columns = {
		width = (menuWidth - 40) / 2,
		left = 17,
		right = (menuWidth - 20) / 2 + 13,
	},
	activetab = 1,
	open = true,
	fadestart = 0,
	fading = false,
	mousedown = false,
	postable = {},
	options = {},
	clrs = {
		norm = {},
		dark = {},
		togz = {},
	},
	mc = { 127, 72, 163 },
	watermark = {},
	connections = {},
	list = {},
	unloaded = false,
	copied_clr = nil,
	game = "uni",
	tabnames = {}, -- its used to change the tab num to the string (did it like this so its dynamic if u add or remove tabs or whatever :D)
	friends = {},
	priority = {},
	muted = {},
	spectating = false,
	stat_menu = false,
	load_time = 0,
	log_multi = nil,
	mgrouptabz = {},
	backspaceheld = false,
	backspacetime = -1,
	backspaceflags = 0,
	selectall = false,
	modkeys = {
		alt = {
			direction = nil,
		},
		shift = {
			direction = nil,
		},
	},
	modkeydown = function(self, key, direction)
		local keydata = self.modkeys[key]
		return keydata.direction and keydata.direction == direction or false
	end,
	keybinds = {},
	values = {}
}

local function round(num, numDecimalPlaces)
	local mult = 10 ^ (numDecimalPlaces or 0)
	return math.floor(num * mult + 0.5) / mult
end

local function average(t)
	local sum = 0
	for _, v in pairs(t) do -- Get the sum of all numbers in t
		sum = sum + v
	end
	return sum / #t
end

local function clamp(a, lowerNum, higher) -- DONT REMOVE this clamp is better then roblox's because it doesnt error when its not lower or heigher
	if a > higher then
		return higher
	elseif a < lowerNum then
		return lowerNum
	else
		return a
	end
end

local function CreateThread(func, ...) -- improved... yay.
	local thread = coroutine.create(func)
	coroutine.resume(thread, ...)
	return thread
end

local function MultiThreadList(obj, ...)
	local n = #obj
	if n > 0 then
		for i = 1, n do
			local t = obj[i]
			if type(t) == "table" then
				local d = #t
				assert(d ~= 0, "table inserted was not an array or was empty")
				assert(d < 3, ("invalid number of arguments (%d)"):format(d))
				local thetype = type(t[1])
				assert(
					thetype == "function",
					("invalid argument #1: expected 'function', got '%s'"):format(tostring(thetype))
				)

				CreateThread(t[1], unpack(t[2]))
			else
				CreateThread(t, ...)
			end
		end
	else
		for i, v in pairs(obj) do
			CreateThread(v, ...)
		end
	end
end

local DeepRestoreTableFunctions, DeepCleanupTable

DeepRestoreTableFunctions = function(tbl)
	for k, v in next, tbl do
		if type(v) == "function" and is_synapse_function(v) then
			for k1, v1 in next, getupvalues(v) do
				if type(v1) == "function" and islclosure(v1) and not is_synapse_function(v1) then
					tbl[k] = v1
				end
			end
		end

		if type(v) == "table" then
			DeepRestoreTableFunctions(v)
		end
	end
end

DeepCleanupTable = function(tbl)
	local numTable = #tbl
	local isTableArray = numTable > 0
	if isTableArray then
		for i = 1, numTable do
			local entry = tbl[i]
			local entryType = type(entry)

			if entryType == "table" then
				DeepCleanupTable(tbl)
			end

			tbl[i] = nil
			entry = nil
			entryType = nil
		end
	else
		for k, v in next, tbl do
			if type(v) == "table" then
				DeepCleanupTable(tbl)
			end
		end

		tbl[k] = nil
	end

	numTable = nil
	isTableArray = nil
end

local event = {}

local allevent = {}

function event.new(eventname, eventtable, requirename) -- fyi you can put in a table of choice to make the table you want an "event" pretty cool its like doing & in c lol!
	if eventname then
		assert(
			allevent[eventname] == nil,
			("the event '%s' already exists in the event table"):format(eventname)
		)
	end
	local newevent = eventtable or {}
	local funcs = {}
	local disconnectlist = {}
	function newevent:fire(...)
		allevent[eventname].fire(...)
	end
	function newevent:connect(func)
		funcs[#funcs + 1] = func
		local disconnected = false
		local function disconnect()
			if not disconnected then
				disconnected = true
				disconnectlist[func] = true
			end
		end
		return disconnect
	end

	local function fire(...)
		local n = #funcs
		local j = 0
		for i = 1, n do
			local func = funcs[i]
			if disconnectlist[func] then
				disconnectlist[func] = nil
			else
				j = j + 1
				funcs[j] = func
			end
		end
		for i = j + 1, n do
			funcs[i] = nil
		end
		for i = 1, j do
			CreateThread(function(...)
				pcall(funcs[i], ...)
			end, ...)
		end
	end

	if eventname then
		allevent[eventname] = {
			event = newevent,
			fire = fire,
		}
	end

	return newevent, fire
end

local function FireEvent(eventname, ...)
	if allevent[eventname] then
		return allevent[eventname].fire(...)
	else
		--warn(("Event %s does not exist!"):format(eventname))
	end
end

local function GetEvent(eventname)
	return allevent[eventname]
end

local BBOT_IMAGES = {}
MultiThreadList({
	function()
		BBOT_IMAGES[1] = game:HttpGet("https://i.imgur.com/9NMuFcQ.png")
	end,
	function()
		BBOT_IMAGES[2] = game:HttpGet("https://i.imgur.com/jG3NjxN.png")
	end,
	function()
		BBOT_IMAGES[3] = game:HttpGet("https://i.imgur.com/2Ty4u2O.png")
	end,
	function()
		BBOT_IMAGES[4] = game:HttpGet("https://i.imgur.com/kNGuTlj.png")
	end,
	function()
		BBOT_IMAGES[5] = game:HttpGet("https://i.imgur.com/OZUR3EY.png")
	end,
	function()
		BBOT_IMAGES[6] = game:HttpGet("https://i.imgur.com/3HGuyVa.png")
	end,
})

-- MULTITHREAD DAT LOADING SO FAST!!!!
local loaded = {}
do
	local function Loopy_Image_Checky()
		for i = 1, 6 do
			local v = BBOT_IMAGES[i]
			if v == nil then
				return true
			elseif not loaded[i] then
				loaded[i] = true
			end
		end
		return false
	end
	while Loopy_Image_Checky() do
		wait(0)
	end
end

loadstart = tick()

-- nate i miss u D:
-- im back
local NETWORK = game:service("NetworkClient")
local NETWORK_SETTINGS = settings().Network
NETWORK:SetOutgoingKBPSLimit(0)

setfpscap(maxfps or 144)

if not isfolder("bitchbot") then
	makefolder("bitchbot")
	if not isfile("bitchbot/relations.bb") then
		writefile("bitchbot/relations.bb", "bb:{{friends:}{priority:}")
	end
else
	if not isfile("bitchbot/relations.bb") then
		writefile("bitchbot/relations.bb", "bb:{{friends:}{priority:}")
	end
	writefile("bitchbot/debuglog.bb", "")
end

if not isfolder("bitchbot/" .. menu.game) then
	makefolder("bitchbot/" .. menu.game)
end

local configs = {}

local function GetConfigs()
	local result = {}
	local directory = "bitchbot\\" .. menu.game
	for k, v in pairs(listfiles(directory)) do
		local clipped = v:sub(#directory + 2)
		if clipped:sub(#clipped - 2) == ".bb" then
			clipped = clipped:sub(0, #clipped - 3)
			result[k] = clipped
			configs[k] = v
		end
	end
	if #result <= 0 then
		writefile("bitchbot/" .. menu.game .. "/Default.bb", "")
	end
	return result
end

local Players = game:GetService("Players")
local stats = game:GetService("Stats")

local function UnpackRelations()
	local str = isfile("bitchbot/relations.bb") and readfile("bitchbot/relations.bb") or nil
	local final = {
		friends = {},
		priority = {},
	}
	if str then
		if str:find("bb:{{") then
			writefile("bitchbot/relations.bb", "friends:\npriority:")
			return
		end

		local friends, frend = str:find("friends:")
		local priority, priend = str:find("\npriority:")
		local friendslist = str:sub(frend + 1, priority - 1)
		local prioritylist = str:sub(priend + 1)
		for i in friendslist:gmatch("[^,]+") do
			if not table.find(final.friends, i) then
				table.insert(final.friends, i)
			end
		end
		for i in prioritylist:gmatch("[^,]+") do
			if not table.find(final.priority, i) then
				table.insert(final.priority, i)
			end
		end
	end
	if not menu then
		repeat
			game.RunService.Heartbeat:Wait()
		until menu
	end
	menu.friends = final.friends
	if not table.find(menu.friends, Players.LocalPlayer.Name) then
		table.insert(menu.friends, Players.LocalPlayer.Name)
	end
	menu.priority = final.priority
end

local function WriteRelations()
	local str = "friends:"

	for k, v in next, menu.friends do
		local playerobj
		local userid
		local pass, ret = pcall(function()
			playerobj = Players[v]
		end)

		if not pass then
			local newpass, newret = pcall(function()
				userid = v
			end)
		end

		if userid then
			str ..= tostring(userid) .. ","
		else
			str ..= tostring(playerobj.Name) .. ","
		end
	end

	str ..= "\npriority:"

	for k, v in next, menu.priority do
		local playerobj
		local userid
		local pass, ret = pcall(function()
			playerobj = Players[v]
		end)

		if not pass then
			local newpass, newret = pcall(function()
				userid = v
			end)
		end

		if userid then
			str ..= tostring(userid) .. ","
		else
			str ..= tostring(playerobj.Name) .. ","
		end
	end

	writefile("bitchbot/relations.bb", str)
end
CreateThread(function()
	if (not menu or not menu.GetVal) then
		repeat
			game.RunService.Heartbeat:Wait()
		until (menu and menu.GetVal)
	end
	wait(2)
	UnpackRelations()
	WriteRelations()
end)

local LOCAL_PLAYER = Players.LocalPlayer
local LOCAL_MOUSE = LOCAL_PLAYER:GetMouse()
local TEAMS = game:GetService("Teams")
local INPUT_SERVICE = game:GetService("UserInputService")
local GAME_SETTINGS = UserSettings():GetService("UserGameSettings")
local CACHED_VEC3 = Vector3.new()
local Camera = workspace.CurrentCamera
local SCREEN_SIZE = Camera.ViewportSize
local ButtonPressed = event.new("bb_buttonpressed")
local TogglePressed = event.new("bb_togglepressed")
local MouseMoved = event.new("bb_mousemoved")

menu.x = math.floor((SCREEN_SIZE.x / 2) - (menu.w / 2))
menu.y = math.floor((SCREEN_SIZE.y / 2) - (menu.h / 2))

local Lerp = function(delta, from, to) -- wtf why were these globals thats so exploitable!
	if (delta > 1) then
		return to
	end
	if (delta < 0) then
		return from
	end
	return from + (to - from) * delta
end

local ColorRange = function(value, ranges) -- ty tony for dis function u a homie
	if value <= ranges[1].start then
		return ranges[1].color
	end
	if value >= ranges[#ranges].start then
		return ranges[#ranges].color
	end

	local selected = #ranges
	for i = 1, #ranges - 1 do
		if value < ranges[i + 1].start then
			selected = i
			break
		end
	end
	local minColor = ranges[selected]
	local maxColor = ranges[selected + 1]
	local lerpValue = (value - minColor.start) / (maxColor.start - minColor.start)
	return Color3.new(
		Lerp(lerpValue, minColor.color.r, maxColor.color.r),
		Lerp(lerpValue, minColor.color.g, maxColor.color.g),
		Lerp(lerpValue, minColor.color.b, maxColor.color.b)
	)
end

local bVector2 = {}
do -- vector functions
	function bVector2:getRotate(Vec, Rads)
		local vec = Vec.Unit
		--x2 = cos β x1 − sin β y1
		--y2 = sin β x1 + cos β y1
		local sin = math.sin(Rads)
		local cos = math.cos(Rads)
		local x = (cos * vec.x) - (sin * vec.y)
		local y = (sin * vec.x) + (cos * vec.y)

		return Vector2.new(x, y).Unit * Vec.Magnitude
	end
end
local bColor = {}
do -- color functions
	function bColor:Mult(col, mult)
		return Color3.new(col.R * mult, col.G * mult, col.B * mult)
	end
	function bColor:Add(col, num)
		return Color3.new(col.R + num, col.G + num, col.B + num)
	end
end
local function string_cut(s1, num)
	return num == 0 and s1 or string.sub(s1, 1, num)
end

local textBoxLetters = {
	"A",
	"B",
	"C",
	"D",
	"E",
	"F",
	"G",
	"H",
	"I",
	"J",
	"K",
	"L",
	"M",
	"N",
	"O",
	"P",
	"Q",
	"R",
	"S",
	"T",
	"U",
	"V",
	"W",
	"X",
	"Y",
	"Z",
}

local keyNames = {
	One = "1",
	Two = "2",
	Three = "3",
	Four = "4",
	Five = "5",
	Six = "6",
	Seven = "7",
	Eight = "8",
	Nine = "9",
	Zero = "0",
	LeftBracket = "[",
	RightBracket = "]",
	Semicolon = ";",
	BackSlash = "\\",
	Slash = "/",
	Minus = "-",
	Equals = "=",
	Return = "Enter",
	Backquote = "`",
	CapsLock = "Caps",
	LeftShift = "LShift",
	RightShift = "RShift",
	LeftControl = "LCtrl",
	RightControl = "RCtrl",
	LeftAlt = "LAlt",
	RightAlt = "RAlt",
	Backspace = "Back",
	Plus = "+",
	Multiply = "x",
	PageUp = "PgUp",
	PageDown = "PgDown",
	Delete = "Del",
	Insert = "Ins",
	NumLock = "NumL",
	Comma = ",",
	Period = ".",
}
local colemak = {
	E = "F",
	R = "P",
	T = "G",
	Y = "J",
	U = "L",
	I = "U",
	O = "Y",
	P = ";",
	S = "R",
	D = "S",
	F = "T",
	G = "D",
	J = "N",
	K = "E",
	L = "I",
	[";"] = "O",
	N = "K",
}

local keymodifiernames = {
	["`"] = "~",
	["1"] = "!",
	["2"] = "@",
	["3"] = "#",
	["4"] = "$",
	["5"] = "%",
	["6"] = "^",
	["7"] = "&",
	["8"] = "*",
	["9"] = "(",
	["0"] = ")",
	["-"] = "_",
	["="] = "+",
	["["] = "{",
	["]"] = "}",
	["\\"] = "|",
	[";"] = ":",
	["'"] = '"',
	[","] = "<",
	["."] = ".",
	["/"] = "?",
}

local function KeyEnumToName(key) -- did this all in a function cuz why not
	if key == nil then
		return "None"
	end
	local _key = tostring(key) .. "."
	local _key = _key:gsub("%.", ",")
	local keyname = nil
	local looptime = 0
	for w in _key:gmatch("(.-),") do
		looptime = looptime + 1
		if looptime == 3 then
			keyname = w
		end
	end
	if string.match(keyname, "Keypad") then
		keyname = string.gsub(keyname, "Keypad", "")
	end

	if keyname == "Unknown" or key.Value == 27 then
		return "None"
	end

	if keyNames[keyname] then
		keyname = keyNames[keyname]
	end
	if Nate then
		return colemak[keyname] or keyname
	else
		return keyname
	end
end

local invalidfilekeys = {
	["\\"] = true,
	["/"] = true,
	[":"] = true,
	["*"] = true,
	["?"] = true,
	['"'] = true,
	["<"] = true,
	[">"] = true,
	["|"] = true,
}

local function KeyModifierToName(key, filename)
	if keymodifiernames[key] ~= nil then
		if filename then
			if invalidfilekeys[keymodifiernames[key]] then
				return ""
			else
				return keymodifiernames[key]
			end
		else
			return keymodifiernames[key]
		end
	else
		return ""
	end
end

local allrender = {}

local RGB = Color3.fromRGB
local Draw = {}

do
	function Draw:UnRender()
		for k, v in pairs(allrender) do
			for k1, v1 in pairs(v) do
				--warn(k1, v1)
				-- ANCHOR WHAT THE FUCK IS GOING ON WITH THIS WHY IS THIS ERRORING BECAUSE OF NUMBER
				if v1 and type(v1) ~= "number" and v1.__OBJECT_EXISTS then
					v1:Remove()
				else
					--rconsolewarn(tostring(k),tostring(v),tostring(k1),tostring(v1)) -- idfk why but this shit doesn't print anything out. might as well have it commented out though -nata april 1 21
				end
			end
		end
	end

	function Draw:OutlinedRect(visible, pos_x, pos_y, width, height, clr, tablename)
		local temptable = Drawing.new("Square")
		temptable.Visible = visible
		temptable.Position = Vector2.new(pos_x, pos_y)
		temptable.Size = Vector2.new(width, height)
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		temptable.Filled = false
		temptable.Thickness = 0
		temptable.Transparency = clr[4] / 255
		table.insert(tablename, temptable)
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	function Draw:FilledRect(visible, pos_x, pos_y, width, height, clr, tablename)
		local temptable = Drawing.new("Square")
		temptable.Visible = visible
		temptable.Position = Vector2.new(pos_x, pos_y)
		temptable.Size = Vector2.new(width, height)
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		temptable.Filled = true
		temptable.Thickness = 0
		temptable.Transparency = clr[4] / 255
		table.insert(tablename, temptable)
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	function Draw:Line(visible, thickness, start_x, start_y, end_x, end_y, clr, tablename)
		temptable = Drawing.new("Line")
		temptable.Visible = visible
		temptable.Thickness = thickness
		temptable.From = Vector2.new(start_x, start_y)
		temptable.To = Vector2.new(end_x, end_y)
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		temptable.Transparency = clr[4] / 255
		table.insert(tablename, temptable)
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	function Draw:Image(visible, imagedata, pos_x, pos_y, width, height, transparency, tablename)
		local temptable = Drawing.new("Image")
		temptable.Visible = visible
		temptable.Position = Vector2.new(pos_x, pos_y)
		temptable.Size = Vector2.new(width, height)
		temptable.Transparency = transparency
		temptable.Data = imagedata or placeholderImage
		table.insert(tablename, temptable)
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	function Draw:Text(text, font, visible, pos_x, pos_y, size, centered, clr, tablename)
		local temptable = Drawing.new("Text")
		temptable.Text = text
		temptable.Visible = visible
		temptable.Position = Vector2.new(pos_x, pos_y)
		temptable.Size = size
		temptable.Center = centered
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		temptable.Transparency = clr[4] / 255
		temptable.Outline = false
		temptable.Font = font
		table.insert(tablename, temptable)
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	function Draw:OutlinedText(text, font, visible, pos_x, pos_y, size, centered, clr, clr2, tablename)
		local temptable = Drawing.new("Text")
		temptable.Text = text
		temptable.Visible = visible
		temptable.Position = Vector2.new(pos_x, pos_y)
		temptable.Size = size
		temptable.Center = centered
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		temptable.Transparency = clr[4] / 255
		temptable.Outline = true
		temptable.OutlineColor = RGB(clr2[1], clr2[2], clr2[3])
		temptable.Font = font
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
		if tablename then
			table.insert(tablename, temptable)
		end
		return temptable
	end

	function Draw:Triangle(visible, filled, pa, pb, pc, clr, tablename)
		clr = clr or { 255, 255, 255, 1 }
		local temptable = Drawing.new("Triangle")
		temptable.Visible = visible
		temptable.Transparency = clr[4] or 1
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		temptable.Thickness = 4.1
		if pa and pb and pc then
			temptable.PointA = Vector2.new(pa[1], pa[2])
			temptable.PointB = Vector2.new(pb[1], pb[2])
			temptable.PointC = Vector2.new(pc[1], pc[2])
		end
		temptable.Filled = filled
		table.insert(tablename, temptable)
		if tablename and not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	function Draw:Circle(visible, pos_x, pos_y, size, thickness, sides, clr, tablename)
		local temptable = Drawing.new("Circle")
		temptable.Position = Vector2.new(pos_x, pos_y)
		temptable.Visible = visible
		temptable.Radius = size
		temptable.Thickness = thickness
		temptable.NumSides = sides
		temptable.Transparency = clr[4]
		temptable.Filled = false
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		table.insert(tablename, temptable)
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	function Draw:FilledCircle(visible, pos_x, pos_y, size, thickness, sides, clr, tablename)
		local temptable = Drawing.new("Circle")
		temptable.Position = Vector2.new(pos_x, pos_y)
		temptable.Visible = visible
		temptable.Radius = size
		temptable.Thickness = thickness
		temptable.NumSides = sides
		temptable.Transparency = clr[4]
		temptable.Filled = true
		temptable.Color = RGB(clr[1], clr[2], clr[3])
		table.insert(tablename, temptable)
		if not table.find(allrender, tablename) then
			table.insert(allrender, tablename)
		end
	end

	--ANCHOR MENU ELEMENTS

	function Draw:MenuOutlinedRect(visible, pos_x, pos_y, width, height, clr, tablename)
		Draw:OutlinedRect(visible, pos_x + menu.x, pos_y + menu.y, width, height, clr, tablename)
		table.insert(menu.postable, { tablename[#tablename], pos_x, pos_y })

		if menu.log_multi ~= nil then
			table.insert(menu.mgrouptabz[menu.log_multi[1]][menu.log_multi[2]], tablename[#tablename])
		end
	end

	function Draw:MenuFilledRect(visible, pos_x, pos_y, width, height, clr, tablename)
		Draw:FilledRect(visible, pos_x + menu.x, pos_y + menu.y, width, height, clr, tablename)
		table.insert(menu.postable, { tablename[#tablename], pos_x, pos_y })

		if menu.log_multi ~= nil then
			table.insert(menu.mgrouptabz[menu.log_multi[1]][menu.log_multi[2]], tablename[#tablename])
		end
	end

	function Draw:MenuImage(visible, imagedata, pos_x, pos_y, width, height, transparency, tablename)
		Draw:Image(visible, imagedata, pos_x + menu.x, pos_y + menu.y, width, height, transparency, tablename)
		table.insert(menu.postable, { tablename[#tablename], pos_x, pos_y })

		if menu.log_multi ~= nil then
			table.insert(menu.mgrouptabz[menu.log_multi[1]][menu.log_multi[2]], tablename[#tablename])
		end
	end

	function Draw:MenuBigText(text, visible, centered, pos_x, pos_y, tablename)
		local text = Draw:OutlinedText(
			text,
			2,
			visible,
			pos_x + menu.x,
			pos_y + menu.y,
			13,
			centered,
			{ 255, 255, 255, 255 },
			{ 0, 0, 0 },
			tablename
		)
		table.insert(menu.postable, { tablename[#tablename], pos_x, pos_y })

		if menu.log_multi ~= nil then
			table.insert(menu.mgrouptabz[menu.log_multi[1]][menu.log_multi[2]], tablename[#tablename])
		end

		return text
	end

	function Draw:CoolBox(name, x, y, width, height, tab)
		Draw:MenuOutlinedRect(true, x, y, width, height, { 0, 0, 0, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 1, width - 2, height - 2, { 20, 20, 20, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 2, y + 2, width - 3, 1, { 127, 72, 163, 255 }, tab)
		table.insert(menu.clrs.norm, tab[#tab])
		Draw:MenuOutlinedRect(true, x + 2, y + 3, width - 3, 1, { 87, 32, 123, 255 }, tab)
		table.insert(menu.clrs.dark, tab[#tab])
		Draw:MenuOutlinedRect(true, x + 2, y + 4, width - 3, 1, { 20, 20, 20, 255 }, tab)

		for i = 0, 7 do
			Draw:MenuFilledRect(true, x + 2, y + 5 + (i * 2), width - 4, 2, { 45, 45, 45, 255 }, tab)
			tab[#tab].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(45, 45, 45) }, [2] = { start = 7, color = RGB(35, 35, 35) } }
			)
		end

		Draw:MenuBigText(name, true, false, x + 6, y + 5, tab)
	end

	function Draw:CoolMultiBox(names, x, y, width, height, tab)
		Draw:MenuOutlinedRect(true, x, y, width, height, { 0, 0, 0, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 1, width - 2, height - 2, { 20, 20, 20, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 2, y + 2, width - 3, 1, { 127, 72, 163, 255 }, tab)
		table.insert(menu.clrs.norm, tab[#tab])
		Draw:MenuOutlinedRect(true, x + 2, y + 3, width - 3, 1, { 87, 32, 123, 255 }, tab)
		table.insert(menu.clrs.dark, tab[#tab])
		Draw:MenuOutlinedRect(true, x + 2, y + 4, width - 3, 1, { 20, 20, 20, 255 }, tab)

		--{35, 35, 35, 255}

		Draw:MenuFilledRect(true, x + 2, y + 5, width - 4, 18, { 30, 30, 30, 255 }, tab)
		Draw:MenuFilledRect(true, x + 2, y + 21, width - 4, 2, { 20, 20, 20, 255 }, tab)

		local selected = {}
		for i = 0, 8 do
			Draw:MenuFilledRect(true, x + 2, y + 5 + (i * 2), width - 159, 2, { 45, 45, 45, 255 }, tab)
			tab[#tab].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 8, color = RGB(35, 35, 35) } }
			)
			table.insert(selected, { postable = #menu.postable, drawn = tab[#tab] })
		end

		local length = 2
		local selected_pos = {}
		local click_pos = {}
		local nametext = {}
		for i, v in ipairs(names) do
			Draw:MenuBigText(v, true, false, x + 4 + length, y + 5, tab)
			if i == 1 then
				tab[#tab].Color = RGB(255, 255, 255)
			else
				tab[#tab].Color = RGB(170, 170, 170)
			end
			table.insert(nametext, tab[#tab])

			Draw:MenuFilledRect(true, x + length + tab[#tab].TextBounds.X + 8, y + 5, 2, 16, { 20, 20, 20, 255 }, tab)
			table.insert(selected_pos, { pos = x + length, length = tab[#tab - 1].TextBounds.X + 8 })
			table.insert(click_pos, {
				x = x + length,
				y = y + 5,
				width = tab[#tab - 1].TextBounds.X + 8,
				height = 18,
				name = v,
				num = i,
			})
			length += tab[#tab - 1].TextBounds.X + 10
		end

		local settab = 1
		for k, v in pairs(selected) do
			menu.postable[v.postable][2] = selected_pos[settab].pos
			v.drawn.Size = Vector2.new(selected_pos[settab].length, 2)
		end

		return { bar = selected, barpos = selected_pos, click_pos = click_pos, nametext = nametext }

		--Draw:MenuBigText(str, true, false, x + 6, y + 5, tab)
	end

	function Draw:Toggle(name, value, unsafe, x, y, tab)
		Draw:MenuOutlinedRect(true, x, y, 12, 12, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 1, 10, 10, { 0, 0, 0, 255 }, tab)

		local temptable = {}
		for i = 0, 3 do
			Draw:MenuFilledRect(true, x + 2, y + 2 + (i * 2), 8, 2, { 0, 0, 0, 255 }, tab)
			table.insert(temptable, tab[#tab])
			if value then
				tab[#tab].Color = ColorRange(i, {
					[1] = { start = 0, color = RGB(menu.mc[1], menu.mc[2], menu.mc[3]) },
					[2] = { start = 3, color = RGB(menu.mc[1] - 40, menu.mc[2] - 40, menu.mc[3] - 40) },
				})
			else
				tab[#tab].Color = ColorRange(i, {
					[1] = { start = 0, color = RGB(50, 50, 50) },
					[2] = { start = 3, color = RGB(30, 30, 30) },
				})
			end
		end

		Draw:MenuBigText(name, true, false, x + 16, y - 1, tab)
		if unsafe == true then
			tab[#tab].Color = RGB(90, 90, 90)
		end
		table.insert(temptable, tab[#tab])
		return temptable
	end

	function Draw:Keybind(key, x, y, tab)
		local temptable = {}
		Draw:MenuFilledRect(true, x, y, 44, 16, { 25, 25, 25, 255 }, tab)
		Draw:MenuBigText(KeyEnumToName(key), true, true, x + 22, y + 1, tab)
		table.insert(temptable, tab[#tab])
		Draw:MenuOutlinedRect(true, x, y, 44, 16, { 30, 30, 30, 255 }, tab)
		table.insert(temptable, tab[#tab])
		Draw:MenuOutlinedRect(true, x + 1, y + 1, 42, 14, { 0, 0, 0, 255 }, tab)

		return temptable
	end

	function Draw:ColorPicker(color, x, y, tab)
		local temptable = {}

		Draw:MenuOutlinedRect(true, x, y, 28, 14, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 1, 26, 12, { 0, 0, 0, 255 }, tab)

		Draw:MenuFilledRect(true, x + 2, y + 2, 24, 10, { color[1], color[2], color[3], 255 }, tab)
		table.insert(temptable, tab[#tab])
		Draw:MenuOutlinedRect(true, x + 2, y + 2, 24, 10, { color[1] - 40, color[2] - 40, color[3] - 40, 255 }, tab)
		table.insert(temptable, tab[#tab])
		Draw:MenuOutlinedRect(true, x + 3, y + 3, 22, 8, { color[1] - 40, color[2] - 40, color[3] - 40, 255 }, tab)
		table.insert(temptable, tab[#tab])

		return temptable
	end

	function Draw:Slider(name, stradd, value, minvalue, maxvalue, customvals, rounded, x, y, length, tab)
		Draw:MenuBigText(name, true, false, x, y - 3, tab)

		for i = 0, 3 do
			Draw:MenuFilledRect(true, x + 2, y + 14 + (i * 2), length - 4, 2, { 0, 0, 0, 255 }, tab)
			tab[#tab].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 3, color = RGB(30, 30, 30) } }
			)
		end

		local temptable = {}
		for i = 0, 3 do
			Draw:MenuFilledRect(
				true,
				x + 2,
				y + 14 + (i * 2),
				(length - 4) * ((value - minvalue) / (maxvalue - minvalue)),
				2,
				{ 0, 0, 0, 255 },
				tab
			)
			table.insert(temptable, tab[#tab])
			tab[#tab].Color = ColorRange(i, {
				[1] = { start = 0, color = RGB(menu.mc[1], menu.mc[2], menu.mc[3]) },
				[2] = { start = 3, color = RGB(menu.mc[1] - 40, menu.mc[2] - 40, menu.mc[3] - 40) },
			})
		end
		Draw:MenuOutlinedRect(true, x, y + 12, length, 12, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 13, length - 2, 10, { 0, 0, 0, 255 }, tab)

		local textstr = ""

		if stradd == nil then
			stradd = ""
		end

		local decplaces = rounded and string.rep("0", math.log(1 / rounded) / math.log(10)) or 1
		if rounded and value == math.floor(value * decplaces) then
			textstr = tostring(value) .. "." .. decplaces .. stradd
		else
			textstr = tostring(value) .. stradd
		end

		Draw:MenuBigText(customvals[value] or textstr, true, true, x + (length * 0.5), y + 11, tab)
		table.insert(temptable, tab[#tab])
		table.insert(temptable, stradd)
		return temptable
	end

	function Draw:Dropbox(name, value, values, x, y, length, tab)
		local temptable = {}
		Draw:MenuBigText(name, true, false, x, y - 3, tab)

		for i = 0, 7 do
			Draw:MenuFilledRect(true, x + 2, y + 14 + (i * 2), length - 4, 2, { 0, 0, 0, 255 }, tab)
			tab[#tab].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 7, color = RGB(35, 35, 35) } }
			)
		end

		Draw:MenuOutlinedRect(true, x, y + 12, length, 22, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 13, length - 2, 20, { 0, 0, 0, 255 }, tab)

		Draw:MenuBigText(tostring(values[value]), true, false, x + 6, y + 16, tab)
		table.insert(temptable, tab[#tab])

		Draw:MenuBigText("-", true, false, x - 17 + length, y + 16, tab)
		table.insert(temptable, tab[#tab])

		return temptable
	end

	function Draw:Combobox(name, values, x, y, length, tab)
		local temptable = {}
		Draw:MenuBigText(name, true, false, x, y - 3, tab)

		for i = 0, 7 do
			Draw:MenuFilledRect(true, x + 2, y + 14 + (i * 2), length - 4, 2, { 0, 0, 0, 255 }, tab)
			tab[#tab].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 7, color = RGB(35, 35, 35) } }
			)
		end

		Draw:MenuOutlinedRect(true, x, y + 12, length, 22, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 13, length - 2, 20, { 0, 0, 0, 255 }, tab)
		local textthing = ""
		for k, v in pairs(values) do
			if v[2] then
				if textthing == "" then
					textthing = v[1]
				else
					textthing ..= ", " .. v[1]
				end
			end
		end
		if string.len(textthing) > 25 then
			textthing = string_cut(textthing, 25)
		end
		textthing = textthing ~= "" and textthing or "None"
		Draw:MenuBigText(textthing, true, false, x + 6, y + 16, tab)
		table.insert(temptable, tab[#tab])

		Draw:MenuBigText("...", true, false, x - 27 + length, y + 16, tab)
		table.insert(temptable, tab[#tab])

		return temptable
	end

	function Draw:Button(name, x, y, length, tab)
		local temptable = {}

		for i = 0, 8 do
			Draw:MenuFilledRect(true, x + 2, y + 2 + (i * 2), length - 4, 2, { 0, 0, 0, 255 }, tab)
			tab[#tab].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 8, color = RGB(35, 35, 35) } }
			)
			table.insert(temptable, tab[#tab])
		end

		Draw:MenuOutlinedRect(true, x, y, length, 22, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 1, length - 2, 20, { 0, 0, 0, 255 }, tab)
		temptable.text = Draw:MenuBigText(name, true, true, x + math.floor(length * 0.5), y + 4, tab)

		return temptable
	end

	function Draw:List(name, x, y, length, maxamount, columns, tab)
		local temptable = { uparrow = {}, downarrow = {}, liststuff = { rows = {}, words = {} } }

		for i, v in ipairs(name) do
			Draw:MenuBigText(
				v,
				true,
				false,
				(math.floor(length / columns) * i) - math.floor(length / columns) + 30,
				y - 3,
				tab
			)
		end

		Draw:MenuOutlinedRect(true, x, y + 12, length, 22 * maxamount + 4, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 13, length - 2, 22 * maxamount + 2, { 0, 0, 0, 255 }, tab)

		Draw:MenuFilledRect(true, x + length - 7, y + 16, 1, 1, { menu.mc[1], menu.mc[2], menu.mc[3], 255 }, tab)
		table.insert(temptable.uparrow, tab[#tab])
		table.insert(menu.clrs.norm, tab[#tab])
		Draw:MenuFilledRect(true, x + length - 8, y + 17, 3, 1, { menu.mc[1], menu.mc[2], menu.mc[3], 255 }, tab)
		table.insert(temptable.uparrow, tab[#tab])
		table.insert(menu.clrs.norm, tab[#tab])
		Draw:MenuFilledRect(true, x + length - 9, y + 18, 5, 1, { menu.mc[1], menu.mc[2], menu.mc[3], 255 }, tab)
		table.insert(temptable.uparrow, tab[#tab])
		table.insert(menu.clrs.norm, tab[#tab])

		Draw:MenuFilledRect(
			true,
			x + length - 7,
			y + 16 + (22 * maxamount + 4) - 9,
			1,
			1,
			{ menu.mc[1], menu.mc[2], menu.mc[3], 255 },
			tab
		)
		table.insert(temptable.downarrow, tab[#tab])
		table.insert(menu.clrs.norm, tab[#tab])
		Draw:MenuFilledRect(
			true,
			x + length - 8,
			y + 16 + (22 * maxamount + 4) - 10,
			3,
			1,
			{ menu.mc[1], menu.mc[2], menu.mc[3], 255 },
			tab
		)
		table.insert(temptable.downarrow, tab[#tab])
		table.insert(menu.clrs.norm, tab[#tab])
		Draw:MenuFilledRect(
			true,
			x + length - 9,
			y + 16 + (22 * maxamount + 4) - 11,
			5,
			1,
			{ menu.mc[1], menu.mc[2], menu.mc[3], 255 },
			tab
		)
		table.insert(temptable.downarrow, tab[#tab])
		table.insert(menu.clrs.norm, tab[#tab])

		for i = 1, maxamount do
			temptable.liststuff.rows[i] = {}
			if i ~= maxamount then
				Draw:MenuOutlinedRect(true, x + 4, (y + 13) + (22 * i), length - 8, 2, { 20, 20, 20, 255 }, tab)
				table.insert(temptable.liststuff.rows[i], tab[#tab])
			end

			if columns ~= nil then
				for i1 = 1, columns - 1 do
					Draw:MenuOutlinedRect(
						true,
						x + math.floor(length / columns) * i1,
						(y + 13) + (22 * i) - 18,
						2,
						16,
						{ 20, 20, 20, 255 },
						tab
					)
					table.insert(temptable.liststuff.rows[i], tab[#tab])
				end
			end

			temptable.liststuff.words[i] = {}
			if columns ~= nil then
				for i1 = 1, columns do
					Draw:MenuBigText(
						"",
						true,
						false,
						(x + math.floor(length / columns) * i1) - math.floor(length / columns) + 5,
						(y + 13) + (22 * i) - 16,
						tab
					)
					table.insert(temptable.liststuff.words[i], tab[#tab])
				end
			else
				Draw:MenuBigText("", true, false, x + 5, (y + 13) + (22 * i) - 16, tab)
				table.insert(temptable.liststuff.words[i], tab[#tab])
			end
		end

		return temptable
	end

	function Draw:ImageWithText(size, image, text, x, y, tab)
		local temptable = {}
		Draw:MenuOutlinedRect(true, x, y, size + 4, size + 4, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 1, size + 2, size + 2, { 0, 0, 0, 255 }, tab)
		Draw:MenuFilledRect(true, x + 2, y + 2, size, size, { 40, 40, 40, 255 }, tab)

		Draw:MenuBigText(text, true, false, x + size + 8, y, tab)
		table.insert(temptable, tab[#tab])

		Draw:MenuImage(true, BBOT_IMAGES[5], x + 2, y + 2, size, size, 1, tab)
		table.insert(temptable, tab[#tab])

		return temptable
	end

	function Draw:TextBox(name, text, x, y, length, tab)
		for i = 0, 8 do
			Draw:MenuFilledRect(true, x + 2, y + 2 + (i * 2), length - 4, 2, { 0, 0, 0, 255 }, tab)
			tab[#tab].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 8, color = RGB(35, 35, 35) } }
			)
		end

		Draw:MenuOutlinedRect(true, x, y, length, 22, { 30, 30, 30, 255 }, tab)
		Draw:MenuOutlinedRect(true, x + 1, y + 1, length - 2, 20, { 0, 0, 0, 255 }, tab)
		Draw:MenuBigText(text, true, false, x + 6, y + 4, tab)

		return tab[#tab]
	end
end

-- finish

local loadingthing = Draw:OutlinedText(
	"Loading...",
	2,
	true,
	math.floor(SCREEN_SIZE.x / 16),
	math.floor(SCREEN_SIZE.y / 16),
	13,
	true,
	{ 255, 50, 200, 255 },
	{ 0, 0, 0 }
)

function menu.Initialize(menutable)
	local bbmenu = {} -- this one is for the rendering n shi
	do
		Draw:MenuOutlinedRect(true, 0, 0, menu.w, menu.h, { 0, 0, 0, 255 }, bbmenu) -- first gradent or whatever
		Draw:MenuOutlinedRect(true, 1, 1, menu.w - 2, menu.h - 2, { 20, 20, 20, 255 }, bbmenu)
		Draw:MenuOutlinedRect(true, 2, 2, menu.w - 3, 1, { 127, 72, 163, 255 }, bbmenu)
		table.insert(menu.clrs.norm, bbmenu[#bbmenu])
		Draw:MenuOutlinedRect(true, 2, 3, menu.w - 3, 1, { 87, 32, 123, 255 }, bbmenu)
		table.insert(menu.clrs.dark, bbmenu[#bbmenu])
		Draw:MenuOutlinedRect(true, 2, 4, menu.w - 3, 1, { 20, 20, 20, 255 }, bbmenu)

		for i = 0, 19 do
			Draw:MenuFilledRect(true, 2, 5 + i, menu.w - 4, 1, { 20, 20, 20, 255 }, bbmenu)
			bbmenu[6 + i].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 20, color = RGB(35, 35, 35) } }
			)
		end
		Draw:MenuFilledRect(true, 2, 25, menu.w - 4, menu.h - 27, { 35, 35, 35, 255 }, bbmenu)

		Draw:MenuBigText(MenuName or "Bitch Bot", true, false, 6, 6, bbmenu)

		Draw:MenuOutlinedRect(true, 8, 22, menu.w - 16, menu.h - 30, { 0, 0, 0, 255 }, bbmenu) -- all this shit does the 2nd gradent
		Draw:MenuOutlinedRect(true, 9, 23, menu.w - 18, menu.h - 32, { 20, 20, 20, 255 }, bbmenu)
		Draw:MenuOutlinedRect(true, 10, 24, menu.w - 19, 1, { 127, 72, 163, 255 }, bbmenu)
		table.insert(menu.clrs.norm, bbmenu[#bbmenu])
		Draw:MenuOutlinedRect(true, 10, 25, menu.w - 19, 1, { 87, 32, 123, 255 }, bbmenu)
		table.insert(menu.clrs.dark, bbmenu[#bbmenu])
		Draw:MenuOutlinedRect(true, 10, 26, menu.w - 19, 1, { 20, 20, 20, 255 }, bbmenu)

		for i = 0, 14 do
			Draw:MenuFilledRect(true, 10, 27 + (i * 2), menu.w - 20, 2, { 45, 45, 45, 255 }, bbmenu)
			bbmenu[#bbmenu].Color = ColorRange(
				i,
				{ [1] = { start = 0, color = RGB(50, 50, 50) }, [2] = { start = 15, color = RGB(35, 35, 35) } }
			)
		end
		Draw:MenuFilledRect(true, 10, 57, menu.w - 20, menu.h - 67, { 35, 35, 35, 255 }, bbmenu)
	end
	-- ok now the cool part :D
	--ANCHOR menu stuffz

	local tabz = {}
	for i = 1, #menutable do
		tabz[i] = {}
	end

	local tabs = {} -- i like tabby catz 🐱🐱🐱

	menu.multigroups = {}

	for k, v in pairs(menutable) do
		Draw:MenuFilledRect(
			true,
			10 + ((k - 1) * ((menu.w - 20) / #menutable)),
			27,
			((menu.w - 20) / #menutable),
			32,
			{ 30, 30, 30, 255 },
			bbmenu
		)
		Draw:MenuOutlinedRect(
			true,
			10 + ((k - 1) * ((menu.w - 20) / #menutable)),
			27,
			((menu.w - 20) / #menutable),
			32,
			{ 20, 20, 20, 255 },
			bbmenu
		)
		Draw:MenuBigText(
			v.name,
			true,
			true,
			math.floor(10 + ((k - 1) * ((menu.w - 20) / #menutable)) + (((menu.w - 20) / #menutable) * 0.5)),
			35,
			bbmenu
		)
		table.insert(tabs, { bbmenu[#bbmenu - 2], bbmenu[#bbmenu - 1], bbmenu[#bbmenu] })
		table.insert(menu.tabnames, v.name)

		menu.options[v.name] = {}
		menu.multigroups[v.name] = {}
		menu.mgrouptabz[v.name] = {}

		local y_offies = { left = 66, right = 66 }
		if v.content ~= nil then
			for k1, v1 in pairs(v.content) do
				if v1.autopos ~= nil then
					v1.width = menu.columns.width
					if v1.autopos == "left" then
						v1.x = menu.columns.left
						v1.y = y_offies.left
					elseif v1.autopos == "right" then
						v1.x = menu.columns.right
						v1.y = y_offies.right
					end
				end

				local groups = {}

				if type(v1.name) == "table" then
					groups = v1.name
				else
					table.insert(groups, v1.name)
				end

				local y_pos = 24

				for g_ind, g_name in ipairs(groups) do
					menu.options[v.name][g_name] = {}
					if type(v1.name) == "table" then
						menu.mgrouptabz[v.name][g_name] = {}
						menu.log_multi = { v.name, g_name }
					end

					local content = nil
					if type(v1.name) == "table" then
						y_pos = 28
						content = v1[g_ind].content
					else
						y_pos = 24
						content = v1.content
					end

					if content ~= nil then
						for k2, v2 in pairs(content) do
							if v2.type == "toggle" then
								menu.options[v.name][g_name][v2.name] = {}
								local unsafe = false
								if v2.unsafe then
									unsafe = true
								end
								menu.options[v.name][g_name][v2.name][4] = Draw:Toggle(v2.name, v2.value, unsafe, v1.x + 8, v1.y + y_pos, tabz[k])
								menu.options[v.name][g_name][v2.name][1] = v2.value
								menu.options[v.name][g_name][v2.name][7] = v2.value
								menu.options[v.name][g_name][v2.name][2] = v2.type
								menu.options[v.name][g_name][v2.name][3] = { v1.x + 7, v1.y + y_pos - 1 }
								menu.options[v.name][g_name][v2.name][6] = unsafe
								menu.options[v.name][g_name][v2.name].tooltip = v2.tooltip or nil
								if v2.extra ~= nil then
									if v2.extra.type == "keybind" then
										menu.options[v.name][g_name][v2.name][5] = {}
										menu.options[v.name][g_name][v2.name][5][4] = Draw:Keybind(
											v2.extra.key,
											v1.x + v1.width - 52,
											y_pos + v1.y - 2,
											tabz[k]
										)
										menu.options[v.name][g_name][v2.name][5][1] = v2.extra.key
										menu.options[v.name][g_name][v2.name][5][2] = v2.extra.type
										menu.options[v.name][g_name][v2.name][5][3] = { v1.x + v1.width - 52, y_pos + v1.y - 2 }
										menu.options[v.name][g_name][v2.name][5][5] = false
										menu.options[v.name][g_name][v2.name][5].toggletype = v2.extra.toggletype == nil and 1 or v2.extra.toggletype
										menu.options[v.name][g_name][v2.name][5].relvalue = false
										local event = event.new(("%s %s %s"):format(v.name, g_name, v2.name))
										event:connect(function(newval) 
											if menu:GetVal("Visuals", "Keybinds" ,"Log Keybinds") then 
												CreateNotification(("%s %s %s has been set to %s"):format(v.name, g_name, v2.name, newval and "true" or "false")) 
											end 
										end)
										menu.options[v.name][g_name][v2.name][5].event = event
										menu.options[v.name][g_name][v2.name][5].bind = table.insert(menu.keybinds, {
												menu.options[v.name][g_name][v2.name],
												tostring(v2.name),
												tostring(g_name),
												tostring(v.name),
											})
									elseif v2.extra.type == "single colorpicker" then
										menu.options[v.name][g_name][v2.name][5] = {}
										menu.options[v.name][g_name][v2.name][5][4] = Draw:ColorPicker(
											v2.extra.color,
											v1.x + v1.width - 38,
											y_pos + v1.y - 1,
											tabz[k]
										)
										menu.options[v.name][g_name][v2.name][5][1] = v2.extra.color
										menu.options[v.name][g_name][v2.name][5][2] = v2.extra.type
										menu.options[v.name][g_name][v2.name][5][3] = { v1.x + v1.width - 38, y_pos + v1.y - 1 }
										menu.options[v.name][g_name][v2.name][5][5] = false
										menu.options[v.name][g_name][v2.name][5][6] = v2.extra.name
									elseif v2.extra.type == "double colorpicker" then
										menu.options[v.name][g_name][v2.name][5] = {}
										menu.options[v.name][g_name][v2.name][5][1] = {}
										menu.options[v.name][g_name][v2.name][5][1][1] = {}
										menu.options[v.name][g_name][v2.name][5][1][2] = {}
										menu.options[v.name][g_name][v2.name][5][2] = v2.extra.type
										for i = 1, 2 do
											menu.options[v.name][g_name][v2.name][5][1][i][4] = Draw:ColorPicker(
												v2.extra.color[i],
												v1.x + v1.width - 38 - ((i - 1) * 34),
												y_pos + v1.y - 1,
												tabz[k]
											)
											menu.options[v.name][g_name][v2.name][5][1][i][1] = v2.extra.color[i]
											menu.options[v.name][g_name][v2.name][5][1][i][3] = { v1.x + v1.width - 38 - ((i - 1) * 34), y_pos + v1.y - 1 }
											menu.options[v.name][g_name][v2.name][5][1][i][5] = false
											menu.options[v.name][g_name][v2.name][5][1][i][6] = v2.extra.name[i]
										end
									end
								end
								y_pos += 18
							elseif v2.type == "slider" then
								menu.options[v.name][g_name][v2.name] = {}
								menu.options[v.name][g_name][v2.name][4] = Draw:Slider(
									v2.name,
									v2.stradd,
									v2.value,
									v2.minvalue,
									v2.maxvalue,
									v2.custom or {},
									v2.decimal,
									v1.x + 8,
									v1.y + y_pos,
									v1.width - 16,
									tabz[k]
								)
								menu.options[v.name][g_name][v2.name][1] = v2.value
								menu.options[v.name][g_name][v2.name][2] = v2.type
								menu.options[v.name][g_name][v2.name][3] = { v1.x + 7, v1.y + y_pos - 1, v1.width - 16 }
								menu.options[v.name][g_name][v2.name][5] = false
								menu.options[v.name][g_name][v2.name][6] = { v2.minvalue, v2.maxvalue }
								menu.options[v.name][g_name][v2.name][7] = { v1.x + 7 + v1.width - 38, v1.y + y_pos - 1 }
								menu.options[v.name][g_name][v2.name].decimal = v2.decimal == nil and nil or v2.decimal
								menu.options[v.name][g_name][v2.name].stepsize = v2.stepsize
								menu.options[v.name][g_name][v2.name].custom = v2.custom or {}

								y_pos += 30
							elseif v2.type == "dropbox" then
								menu.options[v.name][g_name][v2.name] = {}
								menu.options[v.name][g_name][v2.name][1] = v2.value
								menu.options[v.name][g_name][v2.name][2] = v2.type
								menu.options[v.name][g_name][v2.name][5] = false
								menu.options[v.name][g_name][v2.name][6] = v2.values

								if v2.x == nil then
									menu.options[v.name][g_name][v2.name][3] = { v1.x + 7, v1.y + y_pos - 1, v1.width - 16 }
									menu.options[v.name][g_name][v2.name][4] = Draw:Dropbox(
										v2.name,
										v2.value,
										v2.values,
										v1.x + 8,
										v1.y + y_pos,
										v1.width - 16,
										tabz[k]
									)
									y_pos += 40
								else
									menu.options[v.name][g_name][v2.name][3] = { v2.x + 7, v2.y - 1, v2.w }
									menu.options[v.name][g_name][v2.name][4] = Draw:Dropbox(v2.name, v2.value, v2.values, v2.x + 8, v2.y, v2.w, tabz[k])
								end
							elseif v2.type == "combobox" then
								menu.options[v.name][g_name][v2.name] = {}
								menu.options[v.name][g_name][v2.name][4] = Draw:Combobox(
										v2.name,
										v2.values,
										v1.x + 8,
										v1.y + y_pos,
										v1.width - 16,
										tabz[k]
									)
								menu.options[v.name][g_name][v2.name][1] = v2.values
								menu.options[v.name][g_name][v2.name][2] = v2.type
								menu.options[v.name][g_name][v2.name][3] = { v1.x + 7, v1.y + y_pos - 1, v1.width - 16 }
								menu.options[v.name][g_name][v2.name][5] = false
								y_pos += 40
							elseif v2.type == "button" then
								menu.options[v.name][g_name][v2.name] = {}
								menu.options[v.name][g_name][v2.name][1] = false
								menu.options[v.name][g_name][v2.name][2] = v2.type
								menu.options[v.name][g_name][v2.name].name = v2.name
								menu.options[v.name][g_name][v2.name].groupbox = g_name
								menu.options[v.name][g_name][v2.name].tab = v.name -- why is it all v, v1, v2 so ugly
								menu.options[v.name][g_name][v2.name].doubleclick = v2.doubleclick

								if v2.x == nil then
									menu.options[v.name][g_name][v2.name][3] = { v1.x + 7, v1.y + y_pos - 1, v1.width - 16 }
									menu.options[v.name][g_name][v2.name][4] = Draw:Button(v2.name, v1.x + 8, v1.y + y_pos, v1.width - 16, tabz[k])
									y_pos += 28
								else
									menu.options[v.name][g_name][v2.name][3] = { v2.x + 7, v2.y - 1, v2.w }
									menu.options[v.name][g_name][v2.name][4] = Draw:Button(v2.name, v2.x + 8, v2.y, v2.w, tabz[k])
								end
							elseif v2.type == "textbox" then
								menu.options[v.name][g_name][v2.name] = {}
								menu.options[v.name][g_name][v2.name][4] = Draw:TextBox(v2.name, v2.text, v1.x + 8, v1.y + y_pos, v1.width - 16, tabz[k])
								menu.options[v.name][g_name][v2.name][1] = v2.text
								menu.options[v.name][g_name][v2.name][2] = v2.type
								menu.options[v.name][g_name][v2.name][3] = { v1.x + 7, v1.y + y_pos - 1, v1.width - 16 }
								menu.options[v.name][g_name][v2.name][5] = false
								menu.options[v.name][g_name][v2.name][6] = v2.file and true or false
								y_pos += 28
							elseif v2.type == "list" then
								menu.options[v.name][g_name][v2.name] = {}
								menu.options[v.name][g_name][v2.name][4] = Draw:List(
									v2.multiname,
									v1.x + 8,
									v1.y + y_pos,
									v1.width - 16,
									v2.size,
									v2.columns,
									tabz[k]
								)
								menu.options[v.name][g_name][v2.name][1] = nil
								menu.options[v.name][g_name][v2.name][2] = v2.type
								menu.options[v.name][g_name][v2.name][3] = 1
								menu.options[v.name][g_name][v2.name][5] = {}
								menu.options[v.name][g_name][v2.name][6] = v2.size
								menu.options[v.name][g_name][v2.name][7] = v2.columns
								menu.options[v.name][g_name][v2.name][8] = { v1.x + 8, v1.y + y_pos, v1.width - 16 }
								y_pos += 22 + (22 * v2.size)
							elseif v2.type == "image" then
								menu.options[v.name][g_name][v2.name] = {}
								menu.options[v.name][g_name][v2.name][1] = Draw:ImageWithText(v2.size, nil, v2.text, v1.x + 8, v1.y + y_pos, tabz[k])
								menu.options[v.name][g_name][v2.name][2] = v2.type
							end
						end
					end

					menu.log_multi = nil
				end

				y_pos += 2

				if type(v1.name) ~= "table" then
					if v1.autopos == nil then
						Draw:CoolBox(v1.name, v1.x, v1.y, v1.width, v1.height, tabz[k])
					else
						if v1.autofill then
							y_pos = (menu.h - 17) - v1.y
						elseif v1.size ~= nil then
							y_pos = v1.size
						end
						Draw:CoolBox(v1.name, v1.x, v1.y, v1.width, y_pos, tabz[k])
						y_offies[v1.autopos] += y_pos + 6
					end
				else
					if v1.autofill then
						y_pos = (menu.h - 17) - v1.y
						y_offies[v1.autopos] += y_pos + 6
					elseif v1.size ~= nil then
						y_pos = v1.size
						y_offies[v1.autopos] += y_pos + 6
					end

					local drawn

					if v1.autopos == nil then
						drawn = Draw:CoolMultiBox(v1.name, v1.x, v1.y, v1.width, v1.height, tabz[k])
					else
						drawn = Draw:CoolMultiBox(v1.name, v1.x, v1.y, v1.width, y_pos, tabz[k])
					end

					local group_vals = {}

					for _i, _v in ipairs(v1.name) do
						if _i == 1 then
							group_vals[_v] = true
						else
							group_vals[_v] = false
						end
					end
					table.insert(menu.multigroups[v.name], { vals = group_vals, drawn = drawn })
				end
			end
		end
	end

	menu.list.addval = function(list, option)
		table.insert(list[5], option)
	end

	menu.list.removeval = function(list, optionnum)
		if list[1] == optionnum then
			list[1] = nil
		end
		table.remove(list[5], optionnum)
	end

	menu.list.removeall = function(list)
		list[5] = {}
		for k, v in pairs(list[4].liststuff) do
			for i, v1 in ipairs(v) do
				for i1, v2 in ipairs(v1) do
					v2.Visible = false
				end
			end
		end
	end

	menu.list.setval = function(list, value)
		list[1] = value
	end

	Draw:MenuOutlinedRect(true, 10, 59, menu.w - 20, menu.h - 69, { 20, 20, 20, 255 }, bbmenu)

	Draw:MenuOutlinedRect(true, 11, 58, ((menu.w - 20) / #menutable) - 2, 2, { 35, 35, 35, 255 }, bbmenu)
	local barguy = { bbmenu[#bbmenu], menu.postable[#menu.postable] }

	local function setActiveTab(slot)
		barguy[1].Position = Vector2.new(
			(menu.x + 11 + ((((menu.w - 20) / #menutable) - 2) * (slot - 1))) + ((slot - 1) * 2),
			menu.y + 58
		)
		barguy[2][2] = (11 + ((((menu.w - 20) / #menutable) - 2) * (slot - 1))) + ((slot - 1) * 2)
		barguy[2][3] = 58

		for k, v in pairs(tabs) do
			if k == slot then
				v[1].Visible = false
				v[3].Color = RGB(255, 255, 255)
			else
				v[3].Color = RGB(170, 170, 170)
				v[1].Visible = true
			end
		end

		for k, v in pairs(tabz) do
			if k == slot then
				for k1, v1 in pairs(v) do
					v1.Visible = true
				end
			else
				for k1, v1 in pairs(v) do
					v1.Visible = false
				end
			end
		end

		for k, v in pairs(menu.multigroups) do
			if menu.tabnames[menu.activetab] == k then
				for k1, v1 in pairs(v) do
					for k2, v2 in pairs(v1.vals) do
						for k3, v3 in pairs(menu.mgrouptabz[k][k2]) do
							v3.Visible = v2
						end
					end
				end
			end
		end
	end

	setActiveTab(menu.activetab)

	local plusminus = {}

	Draw:OutlinedText("_", 1, false, 10, 10, 14, false, { 225, 225, 225, 255 }, { 20, 20, 20 }, plusminus)
	Draw:OutlinedText("+", 1, false, 10, 10, 14, false, { 225, 225, 225, 255 }, { 20, 20, 20 }, plusminus)

	local function set_plusminus(value, x, y)
		for i, v in ipairs(plusminus) do
			if value == 0 then
				v.Visible = false
			else
				v.Visible = true
			end
		end

		if value ~= 0 then
			plusminus[1].Position = Vector2.new(x + 3 + menu.x, y - 5 + menu.y)
			plusminus[2].Position = Vector2.new(x + 13 + menu.x, y - 1 + menu.y)

			if value == 1 then
				for i, v in ipairs(plusminus) do
					v.Color = RGB(225, 225, 225)
					v.OutlineColor = RGB(20, 20, 20)
				end
			else
				for i, v in ipairs(plusminus) do
					if i + 1 == value then
						v.Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
					else
						v.Color = RGB(255, 255, 255)
					end
					v.OutlineColor = RGB(0, 0, 0)
				end
			end
		end
	end

	set_plusminus(0, 20, 20)

	--DROP BOX THINGY
	local dropboxthingy = {}
	local dropboxtexty = {}

	Draw:OutlinedRect(false, 20, 20, 100, 22, { 20, 20, 20, 255 }, dropboxthingy)
	Draw:OutlinedRect(false, 21, 21, 98, 20, { 0, 0, 0, 255 }, dropboxthingy)
	Draw:FilledRect(false, 22, 22, 96, 18, { 45, 45, 45, 255 }, dropboxthingy)

	for i = 1, 30 do
		Draw:OutlinedText("", 2, false, 20, 20, 13, false, { 255, 255, 255, 255 }, { 0, 0, 0 }, dropboxtexty)
	end

	local function set_dropboxthingy(visible, x, y, length, value, values)
		for k, v in pairs(dropboxthingy) do
			v.Visible = visible
		end

		dropboxthingy[1].Position = Vector2.new(x, y)
		dropboxthingy[2].Position = Vector2.new(x + 1, y + 1)
		dropboxthingy[3].Position = Vector2.new(x + 2, y + 22)

		dropboxthingy[1].Size = Vector2.new(length, 21 * (#values + 1) + 3)
		dropboxthingy[2].Size = Vector2.new(length - 2, (21 * (#values + 1)) + 1)
		dropboxthingy[3].Size = Vector2.new(length - 4, (21 * #values) + 1 - 1)

		if visible then
			for i = 1, #values do
				dropboxtexty[i].Position = Vector2.new(x + 6, y + 26 + ((i - 1) * 21))
				dropboxtexty[i].Visible = true
				dropboxtexty[i].Text = values[i]
				if i == value then
					dropboxtexty[i].Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
				else
					dropboxtexty[i].Color = RGB(255, 255, 255)
				end
			end
		else
			for k, v in pairs(dropboxtexty) do
				v.Visible = false
			end
		end
	end

	local function set_comboboxthingy(visible, x, y, length, values)
		for k, v in pairs(dropboxthingy) do
			v.Visible = visible
		end

		dropboxthingy[1].Position = Vector2.new(x, y)
		dropboxthingy[2].Position = Vector2.new(x + 1, y + 1)
		dropboxthingy[3].Position = Vector2.new(x + 2, y + 22)

		dropboxthingy[1].Size = Vector2.new(length, 22 * (#values + 1) + 2)
		dropboxthingy[2].Size = Vector2.new(length - 2, (22 * (#values + 1)))
		dropboxthingy[3].Size = Vector2.new(length - 4, (22 * #values))

		if visible then
			for i = 1, #values do
				dropboxtexty[i].Position = Vector2.new(x + 6, y + 26 + ((i - 1) * 22))
				dropboxtexty[i].Visible = true
				dropboxtexty[i].Text = values[i][1]
				if values[i][2] then
					dropboxtexty[i].Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
				else
					dropboxtexty[i].Color = RGB(255, 255, 255)
				end
			end
		else
			for k, v in pairs(dropboxtexty) do
				v.Visible = false
			end
		end
	end

	set_dropboxthingy(false, 400, 200, 160, 1, { "HI q", "HI q", "HI q" })

	--MODE SELECT THING
	local modeselect = {}

	Draw:OutlinedRect(false, 20, 20, 100, 22, { 20, 20, 20, 255 }, modeselect)
	Draw:OutlinedRect(false, 21, 21, 98, 20, { 0, 0, 0, 255 }, modeselect)
	Draw:FilledRect(false, 22, 22, 96, 18, { 45, 45, 45, 255 }, modeselect)

	local modeselecttext = { "Hold", "Toggle", "Hold Off", "Always" }
	for i = 1, 4 do
		Draw:OutlinedText(
			modeselecttext[i],
			2,
			false,
			20,
			20,
			13,
			false,
			{ 255, 255, 255, 255 },
			{ 0, 0, 0 },
			modeselect
		)
	end

	local function set_modeselect(visible, x, y, value)
		for k, v in pairs(modeselect) do
			v.Visible = visible
		end

		if visible then
			modeselect[1].Position = Vector2.new(x, y)
			modeselect[2].Position = Vector2.new(x + 1, y + 1)
			modeselect[3].Position = Vector2.new(x + 2, y + 2)

			modeselect[1].Size = Vector2.new(70, 22 * 4 - 1)
			modeselect[2].Size = Vector2.new(70 - 2, 22 * 4 - 3)
			modeselect[3].Size = Vector2.new(70 - 4, 22 * 4 - 5)

			for i = 1, 4 do
				modeselect[i + 3].Position = Vector2.new(x + 6, y + 4 + ((i - 1) * 21))
				if value == i then
					modeselect[i + 3].Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
				else
					modeselect[i + 3].Color = RGB(255, 255, 255)
				end
			end
		end
	end

	set_modeselect(false, 200, 400, 1)

	--COLOR PICKER
	local cp = {
		x = 400,
		y = 40,
		w = 280,
		h = 211,
		alpha = false,
		dragging_m = false,
		dragging_r = false,
		dragging_b = false,
		hsv = {
			h = 0,
			s = 0,
			v = 0,
			a = 0,
		},
		postable = {},
		drawings = {},
	}

	local function ColorpickerOutline(visible, pos_x, pos_y, width, height, clr, tablename) -- doing all this shit to make it easier for me to make this beat look nice and shit ya fell dog :dog_head:
		Draw:OutlinedRect(visible, pos_x + cp.x, pos_y + cp.y, width, height, clr, tablename)
		table.insert(cp.postable, { tablename[#tablename], pos_x, pos_y })
	end

	local function ColorpickerRect(visible, pos_x, pos_y, width, height, clr, tablename)
		Draw:FilledRect(visible, pos_x + cp.x, pos_y + cp.y, width, height, clr, tablename)
		table.insert(cp.postable, { tablename[#tablename], pos_x, pos_y })
	end

	local function ColorpickerImage(visible, imagedata, pos_x, pos_y, width, height, transparency, tablename)
		Draw:Image(visible, imagedata, pos_x, pos_y, width, height, transparency, tablename)
		table.insert(cp.postable, { tablename[#tablename], pos_x, pos_y })
	end

	local function ColorpickerText(text, visible, centered, pos_x, pos_y, tablename)
		Draw:OutlinedText(
			text,
			2,
			visible,
			pos_x + cp.x,
			pos_y + cp.y,
			13,
			centered,
			{ 255, 255, 255, 255 },
			{ 0, 0, 0 },
			tablename
		)
		table.insert(cp.postable, { tablename[#tablename], pos_x, pos_y })
	end

	ColorpickerRect(false, 1, 1, cp.w, cp.h, { 35, 35, 35, 255 }, cp.drawings)
	ColorpickerOutline(false, 1, 1, cp.w, cp.h, { 0, 0, 0, 255 }, cp.drawings)
	ColorpickerOutline(false, 2, 2, cp.w - 2, cp.h - 2, { 20, 20, 20, 255 }, cp.drawings)
	ColorpickerOutline(false, 3, 3, cp.w - 3, 1, { 127, 72, 163, 255 }, cp.drawings)
	table.insert(menu.clrs.norm, cp.drawings[#cp.drawings])
	ColorpickerOutline(false, 3, 4, cp.w - 3, 1, { 87, 32, 123, 255 }, cp.drawings)
	table.insert(menu.clrs.dark, cp.drawings[#cp.drawings])
	ColorpickerOutline(false, 3, 5, cp.w - 3, 1, { 20, 20, 20, 255 }, cp.drawings)
	ColorpickerText("color picker :D", false, false, 7, 6, cp.drawings)

	ColorpickerText("x", false, false, 268, 4, cp.drawings)

	ColorpickerOutline(false, 10, 23, 160, 160, { 30, 30, 30, 255 }, cp.drawings)
	ColorpickerOutline(false, 11, 24, 158, 158, { 0, 0, 0, 255 }, cp.drawings)
	ColorpickerRect(false, 12, 25, 156, 156, { 0, 0, 0, 255 }, cp.drawings)
	local maincolor = cp.drawings[#cp.drawings]
	ColorpickerImage(false, BBOT_IMAGES[1], 12, 25, 156, 156, 1, cp.drawings)

	--https://i.imgur.com/jG3NjxN.png
	local alphabar = {}
	ColorpickerOutline(false, 10, 189, 160, 14, { 30, 30, 30, 255 }, cp.drawings)
	table.insert(alphabar, cp.drawings[#cp.drawings])
	ColorpickerOutline(false, 11, 190, 158, 12, { 0, 0, 0, 255 }, cp.drawings)
	table.insert(alphabar, cp.drawings[#cp.drawings])
	ColorpickerImage(false, BBOT_IMAGES[2], 12, 191, 159, 10, 1, cp.drawings)
	table.insert(alphabar, cp.drawings[#cp.drawings])

	ColorpickerOutline(false, 176, 23, 14, 160, { 30, 30, 30, 255 }, cp.drawings)
	ColorpickerOutline(false, 177, 24, 12, 158, { 0, 0, 0, 255 }, cp.drawings)
	--https://i.imgur.com/2Ty4u2O.png
	ColorpickerImage(false, BBOT_IMAGES[3], 178, 25, 10, 156, 1, cp.drawings)

	ColorpickerText("New Color", false, false, 198, 23, cp.drawings)
	ColorpickerOutline(false, 197, 37, 75, 40, { 30, 30, 30, 255 }, cp.drawings)
	ColorpickerOutline(false, 198, 38, 73, 38, { 0, 0, 0, 255 }, cp.drawings)
	ColorpickerImage(false, BBOT_IMAGES[4], 199, 39, 71, 36, 1, cp.drawings)

	ColorpickerRect(false, 199, 39, 71, 36, { 255, 0, 0, 255 }, cp.drawings)
	local newcolor = cp.drawings[#cp.drawings]

	ColorpickerText("copy", false, true, 198 + 36, 41, cp.drawings)
	ColorpickerText("paste", false, true, 198 + 37, 56, cp.drawings)
	local newcopy = { cp.drawings[#cp.drawings - 1], cp.drawings[#cp.drawings] }

	ColorpickerText("Old Color", false, false, 198, 77, cp.drawings)
	ColorpickerOutline(false, 197, 91, 75, 40, { 30, 30, 30, 255 }, cp.drawings)
	ColorpickerOutline(false, 198, 92, 73, 38, { 0, 0, 0, 255 }, cp.drawings)
	ColorpickerImage(false, BBOT_IMAGES[4], 199, 93, 71, 36, 1, cp.drawings)

	ColorpickerRect(false, 199, 93, 71, 36, { 255, 0, 0, 255 }, cp.drawings)
	local oldcolor = cp.drawings[#cp.drawings]

	ColorpickerText("copy", false, true, 198 + 36, 103, cp.drawings)
	local oldcopy = { cp.drawings[#cp.drawings] }

	--ColorpickerRect(false, 197, cp.h - 25, 75, 20, {30, 30, 30, 255}, cp.drawings)
	ColorpickerText("[ Apply ]", false, true, 235, cp.h - 23, cp.drawings)
	local applytext = cp.drawings[#cp.drawings]

	local function set_newcolor(r, g, b, a)
		newcolor.Color = RGB(r, g, b)
		if a ~= nil then
			newcolor.Transparency = a / 255
		else
			newcolor.Transparency = 1
		end
	end

	local function set_oldcolor(r, g, b, a)
		oldcolor.Color = RGB(r, g, b)
		if a ~= nil then
			oldcolor.Transparency = a / 255
		else
			oldcolor.Transparency = 1
		end
	end
	-- all this color picker shit is disgusting, why can't it be in it's own fucking scope. these are all global
	local dragbar_r = {}
	Draw:OutlinedRect(true, 30, 30, 16, 5, { 0, 0, 0, 255 }, cp.drawings)
	table.insert(dragbar_r, cp.drawings[#cp.drawings])
	Draw:OutlinedRect(true, 31, 31, 14, 3, { 255, 255, 255, 255 }, cp.drawings)
	table.insert(dragbar_r, cp.drawings[#cp.drawings])

	local dragbar_b = {}
	Draw:OutlinedRect(true, 30, 30, 5, 16, { 0, 0, 0, 255 }, cp.drawings)
	table.insert(dragbar_b, cp.drawings[#cp.drawings])
	table.insert(alphabar, cp.drawings[#cp.drawings])
	Draw:OutlinedRect(true, 31, 31, 3, 14, { 255, 255, 255, 255 }, cp.drawings)
	table.insert(dragbar_b, cp.drawings[#cp.drawings])
	table.insert(alphabar, cp.drawings[#cp.drawings])

	local dragbar_m = {}
	Draw:OutlinedRect(true, 30, 30, 5, 5, { 0, 0, 0, 255 }, cp.drawings)
	table.insert(dragbar_m, cp.drawings[#cp.drawings])
	Draw:OutlinedRect(true, 31, 31, 3, 3, { 255, 255, 255, 255 }, cp.drawings)
	table.insert(dragbar_m, cp.drawings[#cp.drawings])

	local function set_dragbar_r(x, y)
		dragbar_r[1].Position = Vector2.new(x, y)
		dragbar_r[2].Position = Vector2.new(x + 1, y + 1)
	end

	local function set_dragbar_b(x, y)
		dragbar_b[1].Position = Vector2.new(x, y)
		dragbar_b[2].Position = Vector2.new(x + 1, y + 1)
	end

	local function set_dragbar_m(x, y)
		dragbar_m[1].Position = Vector2.new(x, y)
		dragbar_m[2].Position = Vector2.new(x + 1, y + 1)
	end

	local function set_colorpicker(visible, color, value, alpha, text, x, y)
		for k, v in pairs(cp.drawings) do
			v.Visible = visible
		end

		if visible then
			cp.x = clamp(x, 0, SCREEN_SIZE.x - cp.w)
			cp.y = clamp(y, 0, SCREEN_SIZE.y - cp.h)
			for k, v in pairs(cp.postable) do
				v[1].Position = Vector2.new(cp.x + v[2], cp.y + v[3])
			end

			local tempclr = RGB(color[1], color[2], color[3])
			local h, s, v = tempclr:ToHSV()
			cp.hsv.h = h
			cp.hsv.s = s
			cp.hsv.v = v

			set_dragbar_r(cp.x + 175, cp.y + 23 + math.floor((1 - h) * 156))
			set_dragbar_m(cp.x + 9 + math.floor(s * 156), cp.y + 23 + math.floor((1 - v) * 156))
			if not alpha then
				set_newcolor(color[1], color[2], color[3])
				set_oldcolor(color[1], color[2], color[3])
				cp.alpha = false
				for k, v in pairs(alphabar) do
					v.Visible = false
				end
				cp.h = 191
				for i = 1, 2 do
					cp.drawings[i].Size = Vector2.new(cp.w, cp.h)
				end
				cp.drawings[3].Size = Vector2.new(cp.w - 2, cp.h - 2)
			else
				cp.hsv.a = color[4]
				cp.alpha = true
				set_newcolor(color[1], color[2], color[3], color[4])
				set_oldcolor(color[1], color[2], color[3], color[4])
				cp.h = 211
				for i = 1, 2 do
					cp.drawings[i].Size = Vector2.new(cp.w, cp.h)
				end
				cp.drawings[3].Size = Vector2.new(cp.w - 2, cp.h - 2)
				set_dragbar_b(cp.x + 12 + math.floor(156 * (color[4] / 255)), cp.y + 188)
			end

			applytext.Position = Vector2.new(235 + cp.x, cp.y + cp.h - 23)
			maincolor.Color = Color3.fromHSV(h, 1, 1)
			cp.drawings[7].Text = text
		end
	end

	set_colorpicker(false, { 255, 0, 0 }, nil, false, "", 0, 0)

	--TOOL TIP
	local tooltip = {
		x = 0,
		y = 0,
		time = 0,
		active = false,
		text = "This does this and that i guess\npooping 24/7",
		drawings = {},
		postable = {},
	}

	local function ttOutline(visible, pos_x, pos_y, width, height, clr, tablename)
		Draw:OutlinedRect(visible, pos_x + tooltip.x, pos_y + tooltip.y, width, height, clr, tablename)
		table.insert(tooltip.postable, { tablename[#tablename], pos_x, pos_y })
	end

	local function ttRect(visible, pos_x, pos_y, width, height, clr, tablename)
		Draw:FilledRect(visible, pos_x + tooltip.x, pos_y + tooltip.y, width, height, clr, tablename)
		table.insert(tooltip.postable, { tablename[#tablename], pos_x, pos_y })
	end

	local function ttText(text, visible, centered, pos_x, pos_y, tablename)
		Draw:OutlinedText(
			text,
			2,
			visible,
			pos_x + tooltip.x,
			pos_y + tooltip.y,
			13,
			centered,
			{ 255, 255, 255, 255 },
			{ 0, 0, 0 },
			tablename
		)
		table.insert(tooltip.postable, { tablename[#tablename], pos_x, pos_y })
	end

	ttRect(
		false,
		tooltip.x + 1,
		tooltip.y + 1,
		1,
		28,
		{ menu.mc[1], menu.mc[2], menu.mc[3], 255 },
		tooltip.drawings
	)
	ttRect(
		false,
		tooltip.x + 2,
		tooltip.y + 1,
		1,
		28,
		{ menu.mc[1] - 40, menu.mc[2] - 40, menu.mc[3] - 40, 255 },
		tooltip.drawings
	)
	ttOutline(false, tooltip.x, tooltip.y, 4, 30, { 20, 20, 20, 255 }, tooltip.drawings)
	ttRect(false, tooltip.x + 4, tooltip.y, 100, 30, { 40, 40, 40, 255 }, tooltip.drawings)
	ttOutline(false, tooltip.x - 1, tooltip.y - 1, 102, 32, { 0, 0, 0, 255 }, tooltip.drawings)
	ttOutline(false, tooltip.x + 3, tooltip.y, 102, 30, { 20, 20, 20, 255 }, tooltip.drawings)
	ttText(tooltip.text, false, false, tooltip.x + 7, tooltip.y + 1, tooltip.drawings)

	local function set_tooltip(x, y, text, visible, dt)
		dt = dt or 0
		x = x or tooltip.x
		y = y or tooltip.y
		tooltip.x = x
		tooltip.y = y
		if tooltip.time < 1 and visible then
			if tooltip.time < -2 then
				tooltip.time = -2
			end
			tooltip.time += dt
		else
			tooltip.time -= dt
			if tooltip.time < -1 then
				tooltip.time = -1
			end
		end
		if tooltip.time > 1 then
			tooltip.time = 1
		end
		for k, v in ipairs(tooltip.drawings) do
			v.Visible = tooltip.time > 0
		end

		tooltip.active = visible
		if text then
			tooltip.drawings[7].Text = text
		end
		for k, v in pairs(tooltip.postable) do
			v[1].Position = Vector2.new(x + v[2], y + v[3])
			v[1].Transparency = (0.3 + tooltip.time) ^ 3 - 1
			if not menu.open then
				v[1].Transparency = 0
			end
		end
		tooltip.drawings[1].Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
		tooltip.drawings[2].Color = RGB(menu.mc[1] - 40, menu.mc[2] - 40, menu.mc[3] - 40)

		local tb = tooltip.drawings[7].TextBounds

		tooltip.drawings[1].Size = Vector2.new(1, tb.Y + 3)
		tooltip.drawings[2].Size = Vector2.new(1, tb.Y + 3)
		tooltip.drawings[3].Size = Vector2.new(4, tb.Y + 5)
		tooltip.drawings[4].Size = Vector2.new(tb.X + 6, tb.Y + 5)
		tooltip.drawings[5].Size = Vector2.new(tb.X + 12, tb.Y + 7)
		tooltip.drawings[6].Size = Vector2.new(tb.X + 7, tb.Y + 5)
	end

	set_tooltip(500, 500, "", false)

	-- mouse shiz
	local bbmouse = {}
	local mousie = {
		x = 100,
		y = 240,
	}
	Draw:Triangle(
		true,
		true,
		{ mousie.x, mousie.y },
		{ mousie.x, mousie.y + 15 },
		{ mousie.x + 10, mousie.y + 10 },
		{ 127, 72, 163, 255 },
		bbmouse
	)
	table.insert(menu.clrs.norm, bbmouse[#bbmouse])
	Draw:Triangle(
		true,
		false,
		{ mousie.x, mousie.y },
		{ mousie.x, mousie.y + 15 },
		{ mousie.x + 10, mousie.y + 10 },
		{ 0, 0, 0, 255 },
		bbmouse
	)
	local lastMousePos = Vector2.new()
	function menu:set_mouse_pos(x, y)
		FireEvent("bb_mousemoved", lastMousePos ~= Vector2.new(x, y))
		for k = 1, #bbmouse do
			local v = bbmouse[k]
			v.PointA = Vector2.new(x, y + 36)
			v.PointB = Vector2.new(x, y + 36 + 15)
			v.PointC = Vector2.new(x + 10, y + 46)
		end
		lastMousePos = Vector2.new(x, y)
	end

	function menu:set_menu_clr(r, g, b)
		menu.watermark.rect[1].Color = RGB(r - 40, g - 40, b - 40)
		menu.watermark.rect[2].Color = RGB(r, g, b)

		for k, v in pairs(menu.clrs.norm) do
			v.Color = RGB(r, g, b)
		end
		for k, v in pairs(menu.clrs.dark) do
			v.Color = RGB(r - 40, g - 40, b - 40)
		end
		local menucolor = { r, g, b }
		for k, v in pairs(menu.options) do
			for k1, v1 in pairs(v) do
				for k2, v2 in pairs(v1) do
					if v2[2] == "toggle" then
						if not v2[1] then
							for i = 0, 3 do
								v2[4][i + 1].Color = ColorRange(i, {
									[1] = { start = 0, color = RGB(50, 50, 50) },
									[2] = { start = 3, color = RGB(30, 30, 30) },
								})
							end
						else
							for i = 0, 3 do
								v2[4][i + 1].Color = ColorRange(i, {
									[1] = { start = 0, color = RGB(menucolor[1], menucolor[2], menucolor[3]) },
									[2] = {
										start = 3,
										color = RGB(menucolor[1] - 40, menucolor[2] - 40, menucolor[3] - 40),
									},
								})
							end
						end
					elseif v2[2] == "slider" then
						for i = 0, 3 do
							v2[4][i + 1].Color = ColorRange(i, {
								[1] = { start = 0, color = RGB(menucolor[1], menucolor[2], menucolor[3]) },
								[2] = {
									start = 3,
									color = RGB(menucolor[1] - 40, menucolor[2] - 40, menucolor[3] - 40),
								},
							})
						end
					end
				end
			end
		end
	end

	local function UpdateConfigs()
		local configthing = menu.options["Settings"]["Configuration"]["Configs"]

		configthing[6] = GetConfigs()
		if configthing[1] > #configthing[6] then
			configthing[1] = #configthing[6]
		end
		configthing[4][1].Text = configthing[6][configthing[1]]
	end

	menu.keybind_open = nil

	menu.dropbox_open = nil

	menu.colorpicker_open = false

	menu.textboxopen = nil

	function menu:InputBeganMenu(key) --ANCHOR menu input
		if key.KeyCode == Enum.KeyCode.RightShift and not loadingthing.Visible then
			cp.dragging_m = false
			cp.dragging_r = false
			cp.dragging_b = false

			UpdateConfigs()
			if menu.open and not menu.fading then
				for k = 1, #menu.options do
					local v = menu.options[k]
					for k1, v1 in pairs(v) do
						for k2, v2 in pairs(v1) do
							if v2[2] == "slider" and v2[5] then
								v2[5] = false
							elseif v2[2] == "dropbox" and v2[5] then
								v2[5] = false
							elseif v2[2] == "combobox" and v2[5] then
								v2[5] = false
							elseif v2[2] == "toggle" then
								if v2[5] ~= nil then
									if v2[5][2] == "keybind" and v2[5][5] then
										v2[5][4][2].Color = RGB(30, 30, 30)
										v2[5][5] = false
									elseif v2[5][2] == "single colorpicker" and v2[5][5] then
										v2[5][5] = false
									end
								end
							elseif v2[2] == "button" then
								if v2[1] then
									for i = 0, 8 do
										v2[4][i + 1].Color = ColorRange(i, {
											[1] = { start = 0, color = RGB(50, 50, 50) },
											[2] = { start = 8, color = RGB(35, 35, 35) },
										})
									end
									v2[1] = false
								end
							end
						end
					end
				end
				menu.keybind_open = nil
				set_modeselect(false, 20, 20, 1)
				menu.dropbox_open = nil
				set_dropboxthingy(false, 400, 200, 160, 1, { "HI q", "HI q", "HI q" })
				menu.colorpicker_open = nil
				set_tooltip(nil, nil, nil, false)
				set_colorpicker(false, { 255, 0, 0 }, nil, false, "hahaha", 400, 200)
			end
			if not menu.fading then
				menu.fading = true
				menu.fadestart = tick()
			end
		end

		if menu == nil then
			return
		end

		if menu.textboxopen then
			if key.KeyCode == Enum.KeyCode.RightShift or key.KeyCode == Enum.KeyCode.Return then
				for k, v in pairs(menu.options) do
					for k1, v1 in pairs(v) do
						for k2, v2 in pairs(v1) do
							if v2[2] == "textbox" then
								if v2[5] then
									v2[5] = false
									v2[4].Color = RGB(255, 255, 255)
									menu.textboxopen = false
									v2[4].Text = v2[1]
								end
							end
						end
					end
				end
			end
		end

		if menu.open and not menu.fading then
			for k, v in pairs(menu.options) do
				for k1, v1 in pairs(v) do
					for k2, v2 in pairs(v1) do
						if v2[2] == "toggle" then
							if v2[5] ~= nil then
								if v2[5][2] == "keybind" and v2[5][5] and key.KeyCode.Value ~= 0 then
									v2[5][4][2].Color = RGB(30, 30, 30)
									v2[5][4][1].Text = KeyEnumToName(key.KeyCode)
									if KeyEnumToName(key.KeyCode) == "None" then
										v2[5][1] = nil
									else
										v2[5][1] = key.KeyCode
									end
									v2[5][5] = false
								end
							end
						elseif v2[2] == "textbox" then --ANCHOR TEXTBOXES
							if v2[5] then
								if not INPUT_SERVICE:IsKeyDown(Enum.KeyCode.LeftControl) then
									if string.len(v2[1]) <= 28 then
										if table.find(textBoxLetters, KeyEnumToName(key.KeyCode)) then
											if INPUT_SERVICE:IsKeyDown(Enum.KeyCode.LeftShift) then
												v2[1] ..= string.upper(KeyEnumToName(key.KeyCode))
											else
												v2[1] ..= string.lower(KeyEnumToName(key.KeyCode))
											end
										elseif KeyEnumToName(key.KeyCode) == "Space" then
											v2[1] ..= " "
										elseif keymodifiernames[KeyEnumToName(key.KeyCode)] ~= nil then
											if INPUT_SERVICE:IsKeyDown(Enum.KeyCode.LeftShift) then
												v2[1] ..= KeyModifierToName(KeyEnumToName(key.KeyCode), v2[6])
											else
												v2[1] ..= KeyEnumToName(key.KeyCode)
											end
										elseif KeyEnumToName(key.KeyCode) == "Back" and v2[1] ~= "" then
											v2[1] = string.sub(v2[1], 0, #v2[1] - 1)
										end
									end
									v2[4].Text = v2[1] .. "|"
								end
							end
						end
					end
				end
			end
		end
	end

	function menu:InputBeganKeybinds(key) -- this is super shit because once we add mouse we need to change all this shit to be the contextaction stuff
		if INPUT_SERVICE:GetFocusedTextBox() or menu.textboxopen then
			return
		end
		for i = 1, #self.keybinds do
			local value = self.keybinds[i][1]
			if key.KeyCode == value[5][1] then
				value[5].lastvalue = value[5].relvalue
				if value[5].toggletype == 2 then
					value[5].relvalue = not value[5].relvalue
				elseif value[5].toggletype == 1 then
					value[5].relvalue = true
				elseif value[5].toggletype == 3 then
					value[5].relvalue = false
				end
			elseif value[5].toggletype == 4 then
				value[5].relvalue = true
			end
			if value[5].lastvalue ~= value[5].relvalue then
				value[5].event:fire(value[5].relvalue)
			end
		end
	end

	function menu:InputEndedKeybinds(key)
		for i = 1, #self.keybinds do
			local value = self.keybinds[i][1]
			value[5].lastvalue = value[5].relvalue
			if key.KeyCode == value[5][1] then
				if value[5].toggletype == 1 then
					value[5].relvalue = false
				elseif value[5].toggletype == 3 then
					value[5].relvalue = true
				end
			end
			if value[5].lastvalue ~= value[5].relvalue then
				value[5].event:fire(value[5].relvalue)
			end
		end
	end

	function menu:SetMenuPos(x, y)
		for k, v in pairs(menu.postable) do
			if v[1].Visible then
				v[1].Position = Vector2.new(x + v[2], y + v[3])
			end
		end
	end

	function menu:MouseInArea(x, y, width, height)
		return LOCAL_MOUSE.x > x and LOCAL_MOUSE.x < x + width and LOCAL_MOUSE.y > 36 + y and LOCAL_MOUSE.y < 36 + y + height
	end

	function menu:MouseInMenu(x, y, width, height)
		return LOCAL_MOUSE.x > menu.x + x and LOCAL_MOUSE.x < menu.x + x + width and LOCAL_MOUSE.y > menu.y - 36 + y and LOCAL_MOUSE.y < menu.y - 36 + y + height
	end

	function menu:MouseInColorPicker(x, y, width, height)
		return LOCAL_MOUSE.x > cp.x + x and LOCAL_MOUSE.x < cp.x + x + width and LOCAL_MOUSE.y > cp.y - 36 + y and LOCAL_MOUSE.y < cp.y - 36 + y + height
	end

	local keyz = {}
	for k, v in pairs(Enum.KeyCode:GetEnumItems()) do
		keyz[v.Value] = v
	end

	function menu:GetVal(tab, groupbox, name, ...)
		local args = { ... }

		local option = menu.options[tab][groupbox][name]

		if args[1] == nil then
			if option[2] == "toggle" then
				local lastval = option[7]
				option[7] = option[1]
				return option[1], lastval
			elseif option[2] ~= "combobox" then
				return option[1]
			else
				local temptable = {}
				for k, v in ipairs(option[1]) do
					table.insert(temptable, v[2])
				end
				return temptable
			end
		else
			if args[1] == "keybind" or args[1] == "color" then
				if args[2] then
					return RGB(option[5][1][1], option[5][1][2], option[5][1][3])
				else
					return option[5][1]
				end
			elseif args[1] == "color1" then
				if args[2] then
					return RGB(option[5][1][1][1][1], option[5][1][1][1][2], option[5][1][1][1][3])
				else
					return option[5][1][1][1]
				end
			elseif args[1] == "color2" then
				if args[2] then
					return RGB(option[5][1][2][1][1], option[5][1][2][1][2], option[5][1][2][1][3])
				else
					return option[5][1][2][1]
				end
			end
		end
	end

	function menu:GetKey(tab, groupbox, name)
		local option = self.options[tab][groupbox][name][5]
		if self:GetVal(tab, groupbox, name) then
			if option.toggletype ~= 0 then
				if option.lastvalue == nil then
					option.lastvalue = option.relvalue
				end
				return option.relvalue, option.lastvalue, option.event
			else
				return false
			end
		end
	end

	function menu:SetKey(tab, groupbox, name, val)
		val = val or false
		local option = menu.options[tab][groupbox][name][5]
		if option.toggletype ~= 0 then
			option.lastvalue = option.relvalue
			option.relvalue = val
			if option.lastvalue ~= option.relvalue then
				option.event:fire(option.relvalue)
			end
		end
	end

	local menuElementTypes = { "toggle", "slider", "dropbox", "textbox" }
	local doubleclickDelay = 4
	local buttonsInQue = {}

	local function SaveCurSettings() --ANCHOR figgies
		local figgy = "BitchBot v2\nmade with <3 by nata and bitch\n\n" -- screw zarzel XD (and json and classy)

		for k, v in next, menuElementTypes do
			figgy ..= v .. "s {\n"
			for k1, v1 in pairs(menu.options) do
				for k2, v2 in pairs(v1) do
					for k3, v3 in pairs(v2) do
						if v3[2] == tostring(v) and k3 ~= "Configs" and k3 ~= "Player Status" and k3 ~= "ConfigName"
						then
							figgy ..= k1 .. "|" .. k2 .. "|" .. k3 .. "|" .. tostring(v3[1]) .. "\n"
						end
					end
				end
			end
			figgy = figgy .. "}\n"
		end
		figgy = figgy .. "comboboxes {\n"
		for k, v in pairs(menu.options) do
			for k1, v1 in pairs(v) do
				for k2, v2 in pairs(v1) do
					if v2[2] == "combobox" then
						local boolz = ""
						for k3, v3 in pairs(v2[1]) do
							boolz = boolz .. tostring(v3[2]) .. ", "
						end
						figgy = figgy .. k .. "|" .. k1 .. "|" .. k2 .. "|" .. boolz .. "\n"
					end
				end
			end
		end
		figgy = figgy .. "}\n"
		figgy = figgy .. "keybinds {\n"
		for k, v in pairs(menu.options) do
			for k1, v1 in pairs(v) do
				for k2, v2 in pairs(v1) do
					if v2[2] == "toggle" then
						if v2[5] ~= nil then
							if v2[5][2] == "keybind" then
								local toggletype = "|" .. tostring(v2[5].toggletype)

								if v2[5][1] == nil then
									figgy = figgy
										.. k
										.. "|"
										.. k1
										.. "|"
										.. k2
										.. "|nil"
										.. "|"
										.. tostring(v2[5].toggletype)
										.. "\n"
								else
									figgy = figgy
										.. k
										.. "|"
										.. k1
										.. "|"
										.. k2
										.. "|"
										.. tostring(v2[5][1].Value)
										.. "|"
										.. tostring(v2[5].toggletype)
										.. "\n"
								end
							end
						end
					end
				end
			end
		end
		figgy = figgy .. "}\n"
		figgy = figgy .. "colorpickers {\n"
		for k, v in pairs(menu.options) do
			for k1, v1 in pairs(v) do
				for k2, v2 in pairs(v1) do
					if v2[2] == "toggle" then
						if v2[5] ~= nil then
							if v2[5][2] == "single colorpicker" then
								local clrz = ""
								for k3, v3 in pairs(v2[5][1]) do
									clrz = clrz .. tostring(v3) .. ", "
								end
								figgy = figgy .. k .. "|" .. k1 .. "|" .. k2 .. "|" .. clrz .. "\n"
							end
						end
					end
				end
			end
		end
		figgy = figgy .. "}\n"
		figgy = figgy .. "double colorpickers {\n"
		for k, v in pairs(menu.options) do
			for k1, v1 in pairs(v) do
				for k2, v2 in pairs(v1) do
					if v2[2] == "toggle" then
						if v2[5] ~= nil then
							if v2[5][2] == "double colorpicker" then
								local clrz1 = ""
								for k3, v3 in pairs(v2[5][1][1][1]) do
									clrz1 = clrz1 .. tostring(v3) .. ", "
								end
								local clrz2 = ""
								for k3, v3 in pairs(v2[5][1][2][1]) do
									clrz2 = clrz2 .. tostring(v3) .. ", "
								end
								figgy = figgy .. k .. "|" .. k1 .. "|" .. k2 .. "|" .. clrz1 .. "|" .. clrz2 .. "\n"
							end
						end
					end
				end
			end
		end
		figgy = figgy .. "}\n"

		return figgy
	end

	local function LoadConfig(loadedcfg)
		local lines = {}

		for s in loadedcfg:gmatch("[^\r\n]+") do
			table.insert(lines, s)
		end

		if lines[1] == "BitchBot v2" then
			local start = nil
			for i, v in next, lines do
				if v == "toggles {" then
					start = i
					break
				end
			end
			local end_ = nil
			for i, v in next, lines do
				if i > start and v == "}" then
					end_ = i
					break
				end
			end
			for i = 1, end_ - start - 1 do
				local tt = string.split(lines[i + start], "|")

				if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil
				then
					if tt[4] == "true" then
						menu.options[tt[1]][tt[2]][tt[3]][1] = true
					else
						menu.options[tt[1]][tt[2]][tt[3]][1] = false
					end
				end
			end

			local start = nil
			for i, v in next, lines do
				if v == "sliders {" then
					start = i
					break
				end
			end
			local end_ = nil
			for i, v in next, lines do
				if i > start and v == "}" then
					end_ = i
					break
				end
			end
			for i = 1, end_ - start - 1 do
				local tt = string.split(lines[i + start], "|")
				if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil
				then
					menu.options[tt[1]][tt[2]][tt[3]][1] = tonumber(tt[4])
				end
			end

			local start = nil
			for i, v in next, lines do
				if v == "dropboxs {" then
					start = i
					break
				end
			end
			local end_ = nil
			for i, v in next, lines do
				if i > start and v == "}" then
					end_ = i
					break
				end
			end
			for i = 1, end_ - start - 1 do
				local tt = string.split(lines[i + start], "|")

				if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil
				then
					local num = tonumber(tt[4])
					if num > #menu.options[tt[1]][tt[2]][tt[3]][6] then
						num = #menu.options[tt[1]][tt[2]][tt[3]][6]
					elseif num < 0 then
						num = 1
					end
					menu.options[tt[1]][tt[2]][tt[3]][1] = num
				end
			end

			local start = nil
			for i, v in next, lines do
				if v == "textboxs {" then
					start = i
					break
				end
			end
			if start ~= nil then
				local end_ = nil
				for i, v in next, lines do
					if i > start and v == "}" then
						end_ = i
						break
					end
				end
				for i = 1, end_ - start - 1 do
					local tt = string.split(lines[i + start], "|")
					if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil
					then
						menu.options[tt[1]][tt[2]][tt[3]][1] = tostring(tt[4])
					end
				end
			end

			local start = nil
			for i, v in next, lines do
				if v == "comboboxes {" then
					start = i
					break
				end
			end
			local end_ = nil
			for i, v in next, lines do
				if i > start and v == "}" then
					end_ = i
					break
				end
			end
			for i = 1, end_ - start - 1 do
				local tt = string.split(lines[i + start], "|")
				if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil
				then
					local subs = string.split(tt[4], ",")

					for i, v in ipairs(subs) do
						local opt = string.gsub(v, " ", "")
						if opt == "true" then
							menu.options[tt[1]][tt[2]][tt[3]][1][i][2] = true
						else
							menu.options[tt[1]][tt[2]][tt[3]][1][i][2] = false
						end
						if i == #subs - 1 then
							break
						end
					end
				end
			end

			local start = nil
			for i, v in next, lines do
				if v == "keybinds {" then
					start = i
					break
				end
			end
			local end_ = nil
			for i, v in next, lines do
				if i > start and v == "}" then
					end_ = i
					break
				end
			end
			for i = 1, end_ - start - 1 do
				local tt = string.split(lines[i + start], "|")
				if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]][5] ~= nil
				then
					if tt[5] ~= nil then
						local toggletype = clamp(tonumber(tt[5]), 1, 4)
						if menu.options[tt[1]][tt[2]][tt[3]][5].toggletype ~= 0 then
							menu.options[tt[1]][tt[2]][tt[3]][5].toggletype = toggletype
						end
					end

					if tt[4] == "nil" then
						menu.options[tt[1]][tt[2]][tt[3]][5][1] = nil
					else
						menu.options[tt[1]][tt[2]][tt[3]][5][1] = keyz[tonumber(tt[4])]
					end
				end
			end

			local start = nil
			for i, v in next, lines do
				if v == "colorpickers {" then
					start = i
					break
				end
			end
			local end_ = nil
			for i, v in next, lines do
				if i > start and v == "}" then
					end_ = i
					break
				end
			end
			for i = 1, end_ - start - 1 do
				local tt = string.split(lines[i + start], "|")
				if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil
				then
					local subs = string.split(tt[4], ",")

					for i, v in ipairs(subs) do
						if menu.options[tt[1]][tt[2]][tt[3]][5][1][i] == nil then
							break
						end
						local opt = string.gsub(v, " ", "")
						menu.options[tt[1]][tt[2]][tt[3]][5][1][i] = tonumber(opt)
						if i == #subs - 1 then
							break
						end
					end
				end
			end

			local start = nil
			for i, v in next, lines do
				if v == "double colorpickers {" then
					start = i
					break
				end
			end
			local end_ = nil
			for i, v in next, lines do
				if i > start and v == "}" then
					end_ = i
					break
				end
			end
			for i = 1, end_ - start - 1 do
				local tt = string.split(lines[i + start], "|")
				if menu.options[tt[1]] ~= nil and menu.options[tt[1]][tt[2]] ~= nil and menu.options[tt[1]][tt[2]][tt[3]] ~= nil
				then
					local subs = { string.split(tt[4], ","), string.split(tt[5], ",") }

					for i, v in ipairs(subs) do
						for i1, v1 in ipairs(v) do
							if menu.options[tt[1]][tt[2]][tt[3]][5][1][i][1][i1] == nil then
								break
							end
							local opt = string.gsub(v1, " ", "")
							menu.options[tt[1]][tt[2]][tt[3]][5][1][i][1][i1] = tonumber(opt)
							if i1 == #v - 1 then
								break
							end
						end
					end
				end
			end

			for k, v in pairs(menu.options) do
				for k1, v1 in pairs(v) do
					for k2, v2 in pairs(v1) do
						if v2[2] == "toggle" then
							if not v2[1] then
								for i = 0, 3 do
									v2[4][i + 1].Color = ColorRange(i, {
										[1] = { start = 0, color = RGB(50, 50, 50) },
										[2] = { start = 3, color = RGB(30, 30, 30) },
									})
								end
							else
								for i = 0, 3 do
									v2[4][i + 1].Color = ColorRange(i, {
										[1] = { start = 0, color = RGB(menu.mc[1], menu.mc[2], menu.mc[3]) },
										[2] = {
											start = 3,
											color = RGB(menu.mc[1] - 40, menu.mc[2] - 40, menu.mc[3] - 40),
										},
									})
								end
							end
							if v2[5] ~= nil then
								if v2[5][2] == "keybind" then
									v2[5][4][2].Color = RGB(30, 30, 30)
									v2[5][4][1].Text = KeyEnumToName(v2[5][1])
								elseif v2[5][2] == "single colorpicker" then
									v2[5][4][1].Color = RGB(v2[5][1][1], v2[5][1][2], v2[5][1][3])
									for i = 2, 3 do
										v2[5][4][i].Color = RGB(v2[5][1][1] - 40, v2[5][1][2] - 40, v2[5][1][3] - 40)
									end
								elseif v2[5][2] == "double colorpicker" then
									for i, v3 in ipairs(v2[5][1]) do
										v3[4][1].Color = RGB(v3[1][1], v3[1][2], v3[1][3])
										for i1 = 2, 3 do
											v3[4][i1].Color = RGB(v3[1][1] - 40, v3[1][2] - 40, v3[1][3] - 40)
										end
									end
								end
							end
						elseif v2[2] == "slider" then
							if v2[1] < v2[6][1] then
								v2[1] = v2[6][1]
							elseif v2[1] > v2[6][2] then
								v2[1] = v2[6][2]
							end

							local decplaces = v2.decimal and string.rep("0", math.log(1 / v2.decimal) / math.log(10))
							if decplaces and math.abs(v2[1]) < v2.decimal then
								v2[1] = 0
							end
							v2[4][5].Text = v2.custom[v2[1]] or (v2[1] == math.floor(v2[1]) and v2.decimal) and tostring(v2[1]) .. "." .. decplaces .. v2[4][6] or tostring(v2[1]) .. v2[4][6]
							-- v2[4][5].Text = tostring(v2[1]).. v2[4][6]

							for i = 1, 4 do
								v2[4][i].Size = Vector2.new((v2[3][3] - 4) * ((v2[1] - v2[6][1]) / (v2[6][2] - v2[6][1])), 2)
							end
						elseif v2[2] == "dropbox" then
							if v2[6][v2[1]] == nil then
								v2[1] = 1
							end
							v2[4][1].Text = v2[6][v2[1]]
						elseif v2[2] == "combobox" then
							local textthing = ""
							for k3, v3 in pairs(v2[1]) do
								if v3[2] then
									if textthing == "" then
										textthing = v3[1]
									else
										textthing = textthing .. ", " .. v3[1]
									end
								end
							end
							textthing = textthing ~= "" and textthing or "None"
							if string.len(textthing) > 25 then
								textthing = string_cut(textthing, 25)
							end
							v2[4][1].Text = textthing
						elseif v2[2] == "textbox" then
							v2[4].Text = v2[1]
						end
					end
				end
			end
		end
	end

	function menu.saveconfig()
		local figgy = SaveCurSettings()
		writefile(
			"bitchbot/"
				.. menu.game
				.. "/"
				.. menu.options["Settings"]["Configuration"]["ConfigName"][1]
				.. ".bb",
			figgy
		)
		CreateNotification('Saved "' .. menu.options["Settings"]["Configuration"]["ConfigName"][1] .. '.bb"!')
		UpdateConfigs()
	end
	
	function menu.loadconfig()
		local configname = "bitchbot/"
			.. menu.game
			.. "/"
			.. menu.options["Settings"]["Configuration"]["ConfigName"][1]
			.. ".bb"
		if not isfile(configname) then
			CreateNotification(
				'"'
					.. menu.options["Settings"]["Configuration"]["ConfigName"][1]
					.. '.bb" is not a valid config.'
			)
			return
		end
	
		local curcfg = SaveCurSettings()
		local loadedcfg = readfile(configname)
	
		if pcall(LoadConfig, loadedcfg) then
			CreateNotification('Loaded "' .. menu.options["Settings"]["Configuration"]["ConfigName"][1] .. '.bb"!')
		else
			LoadConfig(curcfg)
			CreateNotification(
				'There was an issue loading "'
					.. menu.options["Settings"]["Configuration"]["ConfigName"][1]
					.. '.bb"'
			)
		end
	end

	local function buttonpressed(bp)
		if bp.doubleclick then
			if buttonsInQue[bp] and tick() - buttonsInQue[bp] < doubleclickDelay then
				buttonsInQue[bp] = 0
			else
				for button, time in next, buttonsInQue do
					buttonsInQue[button] = 0
				end
				buttonsInQue[bp] = tick()
				return
			end
		end
		FireEvent("bb_buttonpressed", bp.tab, bp.groupbox, bp.name)
		--ButtonPressed:Fire(bp.tab, bp.groupbox, bp.name)
		if bp == menu.options["Settings"]["Cheat Settings"]["Unload Cheat"] then
			menu.fading = true
			wait()
			menu:unload()
		elseif bp == menu.options["Settings"]["Cheat Settings"]["Set Clipboard Game ID"] then
			setclipboard(game.JobId)
		elseif bp == menu.options["Settings"]["Configuration"]["Save Config"] then
			menu.saveconfig()
		elseif bp == menu.options["Settings"]["Configuration"]["Delete Config"] then
			delfile(
				"bitchbot/"
					.. menu.game
					.. "/"
					.. menu.options["Settings"]["Configuration"]["ConfigName"][1]
					.. ".bb"
			)
			CreateNotification('Deleted "' .. menu.options["Settings"]["Configuration"]["ConfigName"][1] .. '.bb"!')
			UpdateConfigs()
		elseif bp == menu.options["Settings"]["Configuration"]["Load Config"] then
			menu.loadconfig()
		elseif bp == menu.options["Visuals"]["Highlight Chams"]["Print Values"] then
			local hl = menu:GetVal("Visuals", "Highlight Chams", "Enable")
			local hlcf = Color3.fromRGB(unpack(menu:GetVal("Visuals", "Highlight Chams", "Enable", "color1")))
			local hlco = Color3.fromRGB(unpack(menu:GetVal("Visuals", "Highlight Chams", "Enable", "color2")))
			local hltype = menu:GetVal("Visuals", "Highlight Chams", "Highlight Type")
			print(hl)
			print(hltype - 1)
			print(menu.options["Visuals"]["Highlight Chams"]["Enable"][5][1][1][6])
			print(hlcf)
			print(menu.options["Visuals"]["Highlight Chams"]["Enable"][5][1][2][6])
			print(hlco)
		end
	end

	local function mousebutton2downfunc()
		if menu.colorpicker_open or menu.dropbox_open then
			return
		end

		for k, v in pairs(menu.options) do
			if menu.tabnames[menu.activetab] == k then
				for k1, v1 in pairs(v) do
					local pass = true
					for k3, v3 in pairs(menu.multigroups) do
						if k == k3 then
							for k4, v4 in pairs(v3) do
								for k5, v5 in pairs(v4.vals) do
									if k1 == k5 then
										pass = v5
									end
								end
							end
						end
					end

					if pass then
						for k2, v2 in pairs(v1) do --ANCHOR more menu bs
							if v2[2] == "toggle" then
								if v2[5] ~= nil then
									if v2[5][2] == "keybind" then
										if menu:MouseInMenu(v2[5][3][1], v2[5][3][2], 44, 16) then
											if menu.keybind_open ~= v2 and v2[5].toggletype ~= 0 then
												menu.keybind_open = v2
												set_modeselect(
													true,
													v2[5][3][1] + menu.x,
													v2[5][3][2] + 16 + menu.y,
													v2[5].toggletype
												)
											else
												menu.keybind_open = nil
												set_modeselect(false, 20, 20, 1)
											end
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end

	local function mousebutton1downfunc() --ANCHOR menu mouse down func
		menu.dropbox_open = nil
		menu.textboxopen = false

		set_modeselect(false, 20, 20, 1)
		if menu.keybind_open then
			local key = menu.keybind_open
			local foundkey = false
			for i = 1, 4 do
				if menu:MouseInMenu(key[5][3][1], key[5][3][2] + 16 + ((i - 1) * 21), 70, 21) then
					foundkey = true
					menu.keybind_open[5].toggletype = i
					menu.keybind_open[5].relvalue = false
				end
			end
			menu.keybind_open = nil
			if foundkey then
				return
			end
		end

		for k, v in pairs(menu.options) do
			for k1, v1 in pairs(v) do
				for k2, v2 in pairs(v1) do
					if v2[2] == "dropbox" and v2[5] then
						if not menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 24 * (#v2[6] + 1) + 3) then
							set_dropboxthingy(false, 400, 200, 160, 1, { "HI q", "HI q", "HI q" })
							v2[5] = false
						else
							menu.dropbox_open = v2
						end
					end
					if v2[2] == "combobox" and v2[5] then
						if not menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 24 * (#v2[1] + 1) + 3) then
							set_dropboxthingy(false, 400, 200, 160, 1, { "HI q", "HI q", "HI q" })
							v2[5] = false
						else
							menu.dropbox_open = v2
						end
					end
					if v2[2] == "toggle" then
						if v2[5] ~= nil then
							if v2[5][2] == "keybind" then
								if v2[5][5] == true then
									v2[5][4][2].Color = RGB(30, 30, 30)
									v2[5][5] = false
								end
							elseif v2[5][2] == "single colorpicker" then
								if v2[5][5] == true then
									if not menu:MouseInColorPicker(0, 0, cp.w, cp.h) then
										set_colorpicker(false, { 255, 0, 0 }, nil, false, "hahaha", 400, 200)
										v2[5][5] = false
										menu.colorpicker_open = nil
										menu.colorpicker_open = nil
									end
								end
							elseif v2[5][2] == "double colorpicker" then
								for k3, v3 in pairs(v2[5][1]) do
									if v3[5] == true then
										if not menu:MouseInColorPicker(0, 0, cp.w, cp.h) then
											set_colorpicker(false, { 255, 0, 0 }, nil, false, "hahaha", 400, 200)
											v3[5] = false
											menu.colorpicker_open = nil
											menu.colorpicker_open = nil
										end
									end
								end
							end
						end
					end
					if v2[2] == "textbox" and v2[5] then
						v2[4].Color = RGB(255, 255, 255)
						v2[5] = false
						v2[4].Text = v2[1]
					end
				end
			end
		end
		for i = 1, #menutable do
			if menu:MouseInMenu(
					10 + ((i - 1) * math.floor((menu.w - 20) / #menutable)),
					27,
					math.floor((menu.w - 20) / #menutable),
					32
				)
			then
				menu.activetab = i
				setActiveTab(menu.activetab)
				menu:SetMenuPos(menu.x, menu.y)
				set_tooltip(nil, nil, nil, false)
			end
		end
		if menu.colorpicker_open then
			if menu:MouseInColorPicker(197, cp.h - 25, 75, 20) then
				local tempclr = Color3.fromHSV(cp.hsv.h, cp.hsv.s, cp.hsv.v)
				menu.colorpicker_open[4][1].Color = tempclr
				for i = 2, 3 do
					menu.colorpicker_open[4][i].Color = RGB(
						math.floor(tempclr.R * 255) - 40,
						math.floor(tempclr.G * 255) - 40,
						math.floor(tempclr.B * 255) - 40
					)
				end
				if cp.alpha then
					menu.colorpicker_open[1] = {
						math.floor(tempclr.R * 255),
						math.floor(tempclr.G * 255),
						math.floor(tempclr.B * 255),
						cp.hsv.a,
					}
				else
					menu.colorpicker_open[1] = {
						math.floor(tempclr.R * 255),
						math.floor(tempclr.G * 255),
						math.floor(tempclr.B * 255),
					}
				end
				menu.colorpicker_open = nil
				menu.colorpicker_open = nil
				set_colorpicker(false, { 255, 0, 0 }, nil, false, "hahaha", 400, 200)
			end
			if menu:MouseInColorPicker(264, 2, 14, 14) then
				menu.colorpicker_open = nil
				menu.colorpicker_open = nil
				set_colorpicker(false, { 255, 0, 0 }, nil, false, "hahaha", 400, 200)
			end
			if menu:MouseInColorPicker(10, 23, 160, 160) then
				cp.dragging_m = true
			elseif menu:MouseInColorPicker(176, 23, 14, 160) then
				cp.dragging_r = true
			elseif menu:MouseInColorPicker(10, 189, 160, 14) and cp.alpha then
				cp.dragging_b = true
			end

			if menu:MouseInColorPicker(197, 37, 75, 20) then
				menu.copied_clr = newcolor.Color
			elseif menu:MouseInColorPicker(197, 57, 75, 20) then
				if menu.copied_clr ~= nil then
					local cpa = false
					local clrtable = { menu.copied_clr.R * 255, menu.copied_clr.G * 255, menu.copied_clr.B * 255 }
					if menu.colorpicker_open[1][4] ~= nil then
						cpa = true
						table.insert(clrtable, menu.colorpicker_open[1][4])
					end

					set_colorpicker(true, clrtable, menu.colorpicker_open, cpa, menu.colorpicker_open[6], cp.x, cp.y)
					local oldclr = menu.colorpicker_open[4][1].Color
					if menu.colorpicker_open[1][4] ~= nil then
						set_oldcolor(oldclr.R * 255, oldclr.G * 255, oldclr.B * 255, menu.colorpicker_open[1][4])
					else
						set_oldcolor(oldclr.R * 255, oldclr.G * 255, oldclr.B * 255)
					end
				end
			end

			if menu:MouseInColorPicker(197, 91, 75, 40) then
				menu.copied_clr = oldcolor.Color
			end
		else
			for k, v in pairs(menu.multigroups) do
				if menu.tabnames[menu.activetab] == k then
					for k1, v1 in pairs(v) do
						local c_pos = v1.drawn.click_pos
						--local selected = v1.drawn.bar
						local selected_pos = v1.drawn.barpos

						for k2, v2 in pairs(v1.drawn.click_pos) do
							if menu:MouseInMenu(v2.x, v2.y, v2.width, v2.height) then
								for _k, _v in pairs(v1.vals) do
									if _k == v2.name then
										v1.vals[_k] = true
									else
										v1.vals[_k] = false
									end
								end

								local settab = v2.num
								for _k, _v in pairs(v1.drawn.bar) do
									menu.postable[_v.postable][2] = selected_pos[settab].pos
									_v.drawn.Size = Vector2.new(selected_pos[settab].length, 2)
								end

								for i, v in pairs(v1.drawn.nametext) do
									if i == v2.num then
										v.Color = RGB(255, 255, 255)
									else
										v.Color = RGB(170, 170, 170)
									end
								end

								menu:set_menu_visibility(true)
								setActiveTab(menu.activetab)
								menu:SetMenuPos(menu.x, menu.y)
							end
						end
					end
				end
			end
			local newdropbox_open
			for k, v in pairs(menu.options) do
				if menu.tabnames[menu.activetab] == k then
					for k1, v1 in pairs(v) do
						local pass = true
						for k3, v3 in pairs(menu.multigroups) do
							if k == k3 then
								for k4, v4 in pairs(v3) do
									for k5, v5 in pairs(v4.vals) do
										if k1 == k5 then
											pass = v5
										end
									end
								end
							end
						end

						if pass then
							for k2, v2 in pairs(v1) do
								if v2[2] == "toggle" and not menu.dropbox_open then
									if menu:MouseInMenu(v2[3][1], v2[3][2], 30 + v2[4][5].TextBounds.x, 16) then
										if v2[6] then
											if menu:GetVal(
													"Settings",
													"Cheat Settings",
													"Allow Unsafe Features"
												) and v2[1] == false
											then
												v2[1] = true
											else
												v2[1] = false
											end
										else
											v2[1] = not v2[1]
										end
										if not v2[1] then
											for i = 0, 3 do
												v2[4][i + 1].Color = ColorRange(i, {
													[1] = { start = 0, color = RGB(50, 50, 50) },
													[2] = { start = 3, color = RGB(30, 30, 30) },
												})
											end
										else
											for i = 0, 3 do
												v2[4][i + 1].Color = ColorRange(i, {
													[1] = {
														start = 0,
														color = RGB(menu.mc[1], menu.mc[2], menu.mc[3]),
													},
													[2] = {
														start = 3,
														color = RGB(
															menu.mc[1] - 40,
															menu.mc[2] - 40,
															menu.mc[3] - 40
														),
													},
												})
											end
										end
										--TogglePressed:Fire(k1, k2, v2)
										FireEvent("bb_togglepressed", k1, k2, v2)
									end
									if v2[5] ~= nil then
										if v2[5][2] == "keybind" then
											if menu:MouseInMenu(v2[5][3][1], v2[5][3][2], 44, 16) then
												v2[5][4][2].Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
												v2[5][5] = true
											end
										elseif v2[5][2] == "single colorpicker" then
											if menu:MouseInMenu(v2[5][3][1], v2[5][3][2], 28, 14) then
												v2[5][5] = true
												menu.colorpicker_open = v2[5]
												menu.colorpicker_open = v2[5]
												if v2[5][1][4] ~= nil then
													set_colorpicker(
														true,
														v2[5][1],
														v2[5],
														true,
														v2[5][6],
														LOCAL_MOUSE.x,
														LOCAL_MOUSE.y + 36
													)
												else
													set_colorpicker(
														true,
														v2[5][1],
														v2[5],
														false,
														v2[5][6],
														LOCAL_MOUSE.x,
														LOCAL_MOUSE.y + 36
													)
												end
											end
										elseif v2[5][2] == "double colorpicker" then
											for k3, v3 in pairs(v2[5][1]) do
												if menu:MouseInMenu(v3[3][1], v3[3][2], 28, 14) then
													v3[5] = true
													menu.colorpicker_open = v3
													menu.colorpicker_open = v3
													if v3[1][4] ~= nil then
														set_colorpicker(
															true,
															v3[1],
															v3,
															true,
															v3[6],
															LOCAL_MOUSE.x,
															LOCAL_MOUSE.y + 36
														)
													else
														set_colorpicker(
															true,
															v3[1],
															v3,
															false,
															v3[6],
															LOCAL_MOUSE.x,
															LOCAL_MOUSE.y + 36
														)
													end
												end
											end
										end
									end
								elseif v2[2] == "slider" and not menu.dropbox_open then
									if menu:MouseInMenu(v2[7][1], v2[7][2], 22, 13) then
										local stepval = 1
										if v2.stepsize then
											stepval = v2.stepsize
										end
										if menu:modkeydown("shift", "left") then
											stepval = 0.1
										end
										if menu:MouseInMenu(v2[7][1], v2[7][2], 11, 13) then
											v2[1] -= stepval
										elseif menu:MouseInMenu(v2[7][1] + 11, v2[7][2], 11, 13) then
											v2[1] += stepval
										end

										if v2[1] < v2[6][1] then
											v2[1] = v2[6][1]
										elseif v2[1] > v2[6][2] then
											v2[1] = v2[6][2]
										end
										local decplaces = v2.decimal and string.rep("0", math.log(1 / v2.decimal) / math.log(10))
										if decplaces and math.abs(v2[1]) < v2.decimal then
											v2[1] = 0
										end
										v2[4][5].Text = v2.custom[v2[1]] or (v2[1] == math.floor(v2[1]) and v2.decimal) and tostring(v2[1]) .. "." .. decplaces .. v2[4][6] or tostring(v2[1]) .. v2[4][6]

										for i = 1, 4 do
											v2[4][i].Size = Vector2.new(
												(v2[3][3] - 4) * ((v2[1] - v2[6][1]) / (v2[6][2] - v2[6][1])),
												2
											)
										end
									elseif menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 28) then
										v2[5] = true
									end
								elseif v2[2] == "dropbox" then
									if menu.dropbox_open then
										if v2 ~= menu.dropbox_open then
											continue
										end
									end
									if menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 36) then
										if not v2[5] then
											set_dropboxthingy(
												true,
												v2[3][1] + menu.x + 1,
												v2[3][2] + menu.y + 13,
												v2[3][3],
												v2[1],
												v2[6]
											)
											v2[5] = true
											newdropbox_open = v2
										else
											set_dropboxthingy(false, 400, 200, 160, 1, { "HI q", "HI q", "HI q" })
											v2[5] = false
											newdropbox_open = nil
										end
									elseif menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 24 * (#v2[6] + 1) + 3) and v2[5]
									then
										for i = 1, #v2[6] do
											if menu:MouseInMenu(
													v2[3][1],
													v2[3][2] + 36 + ((i - 1) * 21),
													v2[3][3],
													21
												)
											then
												v2[4][1].Text = v2[6][i]
												v2[1] = i
												set_dropboxthingy(false, 400, 200, 160, 1, { "HI q", "HI q", "HI q" })
												v2[5] = false
												newdropbox_open = nil
											end
										end

										if v2 == menu.options["Settings"]["Configuration"]["Configs"] then
											local textbox = menu.options["Settings"]["Configuration"]["ConfigName"]
											local relconfigs = GetConfigs()
											textbox[1] = relconfigs[menu.options["Settings"]["Configuration"]["Configs"][1]]
											textbox[4].Text = textbox[1]
										end
									end
								elseif v2[2] == "combobox" then
									if menu.dropbox_open then
										if v2 ~= menu.dropbox_open then
											continue
										end
									end
									if menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 36) then
										if not v2[5] then
											set_comboboxthingy(
												true,
												v2[3][1] + menu.x + 1,
												v2[3][2] + menu.y + 13,
												v2[3][3],
												v2[1],
												v2[6]
											)
											v2[5] = true
											newdropbox_open = v2
										else
											set_dropboxthingy(false, 400, 200, 160, 1, { "HI q", "HI q", "HI q" })
											v2[5] = false
											newdropbox_open = nil
										end
									elseif menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 24 * (#v2[1] + 1) + 3) and v2[5]
									then
										for i = 1, #v2[1] do
											if menu:MouseInMenu(
													v2[3][1],
													v2[3][2] + 36 + ((i - 1) * 22),
													v2[3][3],
													23
												)
											then
												v2[1][i][2] = not v2[1][i][2]
												local textthing = ""
												for k, v in pairs(v2[1]) do
													if v[2] then
														if textthing == "" then
															textthing = v[1]
														else
															textthing = textthing .. ", " .. v[1]
														end
													end
												end
												textthing = textthing ~= "" and textthing or "None"
												if string.len(textthing) > 25 then
													textthing = string_cut(textthing, 25)
												end
												v2[4][1].Text = textthing
												set_comboboxthingy(
													true,
													v2[3][1] + menu.x + 1,
													v2[3][2] + menu.y + 13,
													v2[3][3],
													v2[1],
													v2[6]
												)
											end
										end
									end
								elseif v2[2] == "button" and not menu.dropbox_open then
									if menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 22) then
										if not v2[1] then
											buttonpressed(v2)
											if k2 == "Unload Cheat" then
												return
											end
											for i = 0, 8 do
												v2[4][i + 1].Color = ColorRange(i, {
													[1] = { start = 0, color = RGB(35, 35, 35) },
													[2] = { start = 8, color = RGB(50, 50, 50) },
												})
											end
											v2[1] = true
										end
									end
								elseif v2[2] == "textbox" and not menu.dropbox_open then
									if menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 22) then
										if not v2[5] then
											menu.textboxopen = v2

											v2[4].Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
											v2[5] = true
										end
									end
								elseif v2[2] == "list" then
									--[[
									menu.options[v.name][v1.name][v2.name] = {}
									menu.options[v.name][v1.name][v2.name][4] = Draw:List(v2.name, v1.x + 8, v1.y + y_pos, v1.width - 16, v2.size, v2.columns, tabz[k])
									menu.options[v.name][v1.name][v2.name][1] = nil
									menu.options[v.name][v1.name][v2.name][2] = v2.type
									menu.options[v.name][v1.name][v2.name][3] = 1
									menu.options[v.name][v1.name][v2.name][5] = {}
									menu.options[v.name][v1.name][v2.name][6] = v2.size
									menu.options[v.name][v1.name][v2.name][7] = v2.columns
									menu.options[v.name][v1.name][v2.name][8] = {v1.x + 8, v1.y + y_pos, v1.width - 16}
									]]
									--
									if #v2[5] > v2[6] then
										for i = 1, v2[6] do
											if menu:MouseInMenu(v2[8][1], v2[8][2] + (i * 22) - 5, v2[8][3], 22)
											then
												if v2[1] == tostring(v2[5][i + v2[3] - 1][1][1]) then
													v2[1] = nil
												else
													v2[1] = tostring(v2[5][i + v2[3] - 1][1][1])
												end
											end
										end
									else
										for i = 1, #v2[5] do
											if menu:MouseInMenu(v2[8][1], v2[8][2] + (i * 22) - 5, v2[8][3], 22)
											then
												if v2[1] == tostring(v2[5][i + v2[3] - 1][1][1]) then
													v2[1] = nil
												else
													v2[1] = tostring(v2[5][i + v2[3] - 1][1][1])
												end
											end
										end
									end
								end
							end
						end
					end
				end
			end
			menu.dropbox_open = newdropbox_open
		end
		for k, v in pairs(menu.options) do
			for k1, v1 in pairs(v) do
				for k2, v2 in pairs(v1) do
					if v2[2] == "toggle" then
						if v2[6] then
							if not menu:GetVal("Settings", "Cheat Settings", "Allow Unsafe Features") then
								v2[1] = false
								for i = 0, 3 do
									v2[4][i + 1].Color = ColorRange(i, {
										[1] = { start = 0, color = RGB(50, 50, 50) },
										[2] = { start = 3, color = RGB(30, 30, 30) },
									})
								end
							end
						end
					end
				end
			end
		end
		if menu.open then
			if menu.options["Settings"]["Cheat Settings"]["Menu Accent"][1] then
				local clr = menu.options["Settings"]["Cheat Settings"]["Menu Accent"][5][1]
				menu.mc = { clr[1], clr[2], clr[3] }
			else
				menu.mc = { 127, 72, 163 }
			end
			menu:set_menu_clr(menu.mc[1], menu.mc[2], menu.mc[3])

			local wme = menu:GetVal("Settings", "Cheat Settings", "Watermark")
			for k, v in pairs(menu.watermark.rect) do
				v.Visible = wme
			end
			menu.watermark.text[1].Visible = wme
		end
	end

	local function mousebutton1upfunc()
		cp.dragging_m = false
		cp.dragging_r = false
		cp.dragging_b = false
		for k, v in pairs(menu.options) do
			if menu.tabnames[menu.activetab] == k then
				for k1, v1 in pairs(v) do
					for k2, v2 in pairs(v1) do
						if v2[2] == "slider" and v2[5] then
							v2[5] = false
						end
						if v2[2] == "button" and v2[1] then
							for i = 0, 8 do
								v2[4][i + 1].Color = ColorRange(i, {
									[1] = { start = 0, color = RGB(50, 50, 50) },
									[2] = { start = 8, color = RGB(35, 35, 35) },
								})
							end
							v2[1] = false
						end
					end
				end
			end
		end
	end

	local clickspot_x, clickspot_y, original_menu_x, original_menu_y = 0, 0, 0, 0

	menu.connections.mwf = LOCAL_MOUSE.WheelForward:Connect(function()
		if menu.open then
			for k, v in pairs(menu.options) do
				if menu.tabnames[menu.activetab] == k then
					for k1, v1 in pairs(v) do
						for k2, v2 in pairs(v1) do
							if v2[2] == "list" then
								if v2[3] > 1 then
									v2[3] -= 1
								end
							end
						end
					end
				end
			end
		end
	end)

	menu.connections.mwb = LOCAL_MOUSE.WheelBackward:Connect(function()
		if menu.open then
			for k, v in pairs(menu.options) do
				if menu.tabnames[menu.activetab] == k then
					for k1, v1 in pairs(v) do
						for k2, v2 in pairs(v1) do
							if v2[2] == "list" then
								if v2[5][v2[3] + v2[6]] ~= nil then
									v2[3] += 1
								end
							end
						end
					end
				end
			end
		end
	end)

	function menu:set_menu_alphaparency(transparency)
		for k, v in pairs(bbmouse) do
			v.Transparency = transparency / 255
		end
		for k, v in pairs(bbmenu) do
			v.Transparency = transparency / 255
		end
		for k, v in pairs(tabz[menu.activetab]) do
			v.Transparency = transparency / 255
		end
	end

	function menu:set_menu_visibility(visible)
		for k, v in pairs(bbmouse) do
			v.Visible = visible
		end
		for k, v in pairs(bbmenu) do
			v.Visible = visible
		end
		for k, v in pairs(tabz[menu.activetab]) do
			v.Visible = visible
		end

		if visible then
			for k, v in pairs(menu.multigroups) do
				if menu.tabnames[menu.activetab] == k then
					for k1, v1 in pairs(v) do
						for k2, v2 in pairs(v1.vals) do
							for k3, v3 in pairs(menu.mgrouptabz[k][k2]) do
								v3.Visible = v2
							end
						end
					end
				end
			end
		end
	end

	menu:set_menu_alphaparency(0)
	menu:set_menu_visibility(false)
	menu.lastActive = true
	menu.open = false
	menu.windowactive = true
	menu.connections.mousemoved = MouseMoved:connect(function(b)
		menu.windowactive = iswindowactive() or b
	end)

	local function renderSteppedMenu(fdt)
		menu.dt = fdt
		if menu.unloaded then
			return
		end
		SCREEN_SIZE = Camera.ViewportSize
		-- i pasted the old menu working ingame shit from the old source nate pls fix ty
		-- this is the really shitty alive check that we've been using since day one
		-- removed it :DDD
		-- im keepin all of our comments they're fun to look at
		-- i wish it showed comment dates that would be cool
		-- nah that would suck fk u (comment made on 3/4/2021 3:35 pm est by bitch)

		if menu.lastActive ~= menu.windowactive then
			setfpscap(menu.windowactive and (maxfps or 144) or 15)
		end

		menu.lastActive = menu.windowactive
		for button, time in next, buttonsInQue do
			if time and tick() - time < doubleclickDelay then
				button[4].text.Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
				button[4].text.Text = "Confirm?"
			else
				button[4].text.Color = Color3.new(1, 1, 1)
				button[4].text.Text = button.name
			end
		end
        INPUT_SERVICE.MouseBehavior = menu.open and Enum.MouseBehavior.Default or Enum.MouseBehavior.LockCenter
        --[[ if menu.open then
			if client.char.alive then
				INPUT_SERVICE.MouseBehavior = Enum.MouseBehavior.Default
			else
				INPUT_SERVICE.MouseIconEnabled = false
			end
		else
			if client.char.alive then
				INPUT_SERVICE.MouseBehavior = Enum.MouseBehavior.LockCenter
				INPUT_SERVICE.MouseIconEnabled = false
			else
				INPUT_SERVICE.MouseBehavior = Enum.MouseBehavior.Default
				INPUT_SERVICE.MouseIconEnabled = true
			end
		end ]]
		if menu.open then
			if menu.backspaceheld then
				local dt = tick() - menu.backspacetime
				if dt > 0.4 then
					menu.backspaceflags += 1
					if menu.backspaceflags % 5 == 0 then
						local textbox = menu.textboxopen
						textbox[1] = string.sub(textbox[1], 0, #textbox[1] - 1)
						textbox[4].Text = textbox[1] .. "|"
					end
				end
			end
		end
		if menu.fading then
			if menu.open then
				local timesincefade = tick() - menu.fadestart
				local fade_amount = 255 - math.floor((timesincefade * 10) * 255)
				set_plusminus(0, 20, 20)
				menu:set_menu_alphaparency(fade_amount)
				if fade_amount <= 0 then
					menu.open = false
					menu.fading = false
					menu:set_menu_alphaparency(0)
					menu:set_menu_visibility(false)
				else
					menu:set_menu_alphaparency(fade_amount)
				end
			else
				menu:set_menu_visibility(true)
				setActiveTab(menu.activetab)
				local timesincefade = tick() - menu.fadestart
				local fade_amount = math.floor((timesincefade * 10) * 255)
				menu.fadeamount = fade_amount
				menu:set_menu_alphaparency(fade_amount)
				if fade_amount >= 255 then
					menu.open = true
					menu.fading = false
					menu:set_menu_alphaparency(255)
				else
					menu:set_menu_alphaparency(fade_amount)
				end
			end
		end
		menu:set_mouse_pos(LOCAL_MOUSE.x, LOCAL_MOUSE.y)
		set_tooltip(nil, nil, nil, false, fdt)
		if menu.open or menu.fading then
			set_plusminus(0, 20, 20)
			for k, v in pairs(menu.options) do
				if menu.tabnames[menu.activetab] == k then
					for k1, v1 in pairs(v) do
						local pass = true
						for k3, v3 in pairs(menu.multigroups) do
							if k == k3 then
								for k4, v4 in pairs(v3) do
									for k5, v5 in pairs(v4.vals) do
										if k1 == k5 then
											pass = v5
										end
									end
								end
							end
						end

						if pass then
							for k2, v2 in pairs(v1) do
								if v2[2] == "toggle" then
									if not menu.dropbox_open and not menu.colorpicker_open then
										if menu.open and menu:MouseInMenu(v2[3][1], v2[3][2], 30 + v2[4][5].TextBounds.x, 16)
										then
											if v2.tooltip then
												set_tooltip(
													menu.x + v2[3][1],
													menu.y + v2[3][2] + 18,
													v2.tooltip,
													true,
													fdt * 2--[[this is really fucking stupid]]
												)
											end
										end
									end
								elseif v2[2] == "slider" then
									if v2[5] then
										local new_val = (v2[6][2] - v2[6][1])  * (
												(
													LOCAL_MOUSE.x
													- menu.x
													- v2[3][1]
												) / v2[3][3]
											)
										v2[1] = (
												not v2.decimal and math.floor(new_val) or math.floor(new_val / v2.decimal) * v2.decimal
											) + v2[6][1]
										if v2[1] < v2[6][1] then
											v2[1] = v2[6][1]
										elseif v2[1] > v2[6][2] then
											v2[1] = v2[6][2]
										end
										local decplaces = v2.decimal and string.rep("0", math.log(1 / v2.decimal) / math.log(10))
										if decplaces and math.abs(v2[1]) < v2.decimal then
											v2[1] = 0
										end

										v2[4][5].Text = v2.custom[v2[1]] or (v2[1] == math.floor(v2[1]) and v2.decimal) and tostring(v2[1]) .. "." .. decplaces .. v2[4][6] or tostring(v2[1]) .. v2[4][6]
										for i = 1, 4 do
											v2[4][i].Size = Vector2.new(
												(v2[3][3] - 4) * ((v2[1] - v2[6][1]) / (v2[6][2] - v2[6][1])),
												2
											)
										end
										set_plusminus(1, v2[7][1], v2[7][2])
									else
										if not menu.dropbox_open then
											if menu:MouseInMenu(v2[3][1], v2[3][2], v2[3][3], 28) then
												if menu:MouseInMenu(v2[7][1], v2[7][2], 22, 13) then
													if menu:MouseInMenu(v2[7][1], v2[7][2], 11, 13) then
														set_plusminus(2, v2[7][1], v2[7][2])
													elseif menu:MouseInMenu(v2[7][1] + 11, v2[7][2], 11, 13) then
														set_plusminus(3, v2[7][1], v2[7][2])
													end
												else
													set_plusminus(1, v2[7][1], v2[7][2])
												end
											end
										end
									end
								elseif v2[2] == "list" then
									for k3, v3 in pairs(v2[4].liststuff) do
										for i, v4 in ipairs(v3) do
											for i1, v5 in ipairs(v4) do
												v5.Visible = false
											end
										end
									end
									for i = 1, v2[6] do
										if v2[5][i + v2[3] - 1] ~= nil then
											for i1 = 1, v2[7] do
												v2[4].liststuff.words[i][i1].Text = v2[5][i + v2[3] - 1][i1][1]
												v2[4].liststuff.words[i][i1].Visible = true

												if v2[5][i + v2[3] - 1][i1][1] == v2[1] and i1 == 1 then
													if menu.options["Settings"]["Cheat Settings"]["Menu Accent"][1]
													then
														local clr = menu.options["Settings"]["Cheat Settings"]["Menu Accent"][5][1]
														v2[4].liststuff.words[i][i1].Color = RGB(clr[1], clr[2], clr[3])
													else
														v2[4].liststuff.words[i][i1].Color = RGB(menu.mc[1], menu.mc[2], menu.mc[3])
													end
												else
													v2[4].liststuff.words[i][i1].Color = v2[5][i + v2[3] - 1][i1][2]
												end
											end
											for k3, v3 in pairs(v2[4].liststuff.rows[i]) do
												v3.Visible = true
											end
										elseif v2[3] > 1 then
											v2[3] -= 1
										end
									end
									if v2[3] == 1 then
										for k3, v3 in pairs(v2[4].uparrow) do
											if v3.Visible then
												v3.Visible = false
											end
										end
									else
										for k3, v3 in pairs(v2[4].uparrow) do
											if not v3.Visible then
												v3.Visible = true
												menu:SetMenuPos(menu.x, menu.y)
											end
										end
									end
									if v2[5][v2[3] + v2[6]] == nil then
										for k3, v3 in pairs(v2[4].downarrow) do
											if v3.Visible then
												v3.Visible = false
											end
										end
									else
										for k3, v3 in pairs(v2[4].downarrow) do
											if not v3.Visible then
												v3.Visible = true
												menu:SetMenuPos(menu.x, menu.y)
											end
										end
									end
								end
							end
						end
					end
				end
			end
			menu.inmenu = LOCAL_MOUSE.x > menu.x and LOCAL_MOUSE.x < menu.x + menu.w and LOCAL_MOUSE.y > menu.y - 32 and LOCAL_MOUSE.y < menu.y + menu.h
			menu.inmiddlemenu = LOCAL_MOUSE.x > menu.x + 9 and LOCAL_MOUSE.x < menu.x + menu.w - 9 and LOCAL_MOUSE.y > menu.y - 9 and LOCAL_MOUSE.y < menu.y + menu.h - 47
			if (
					--[[(
						LOCAL_MOUSE.x > menu.x and LOCAL_MOUSE.x < menu.x + menu.w and LOCAL_MOUSE.y > menu.y - 32 and LOCAL_MOUSE.y < menu.y - 11
					)]]
					(
						menu.inmenu and 
						not menu.inmiddlemenu
					) or menu.dragging
				) and not menu.dontdrag
			then
				if menu.mousedown then
					if not menu.dragging then
						clickspot_x = LOCAL_MOUSE.x
						clickspot_y = LOCAL_MOUSE.y - 36 original_menu_X = menu.x original_menu_y = menu.y
						menu.dragging = true
					end
					menu.x = (original_menu_X - clickspot_x) + LOCAL_MOUSE.x
					menu.y = (original_menu_y - clickspot_y) + LOCAL_MOUSE.y - 36
					if menu.y < 0 then
						menu.y = 0
					end
					if menu.x < -menu.w / 4 * 3 then
						menu.x = -menu.w / 4 * 3
					end
					if menu.x + menu.w / 4 > SCREEN_SIZE.x then
						menu.x = SCREEN_SIZE.x - menu.w / 4
					end
					if menu.y > SCREEN_SIZE.y - 20 then
						menu.y = SCREEN_SIZE.y - 20
					end
					menu:SetMenuPos(menu.x, menu.y)
				else
					menu.dragging = false
				end
			elseif menu.mousedown then
				menu.dontdrag = true
			elseif not menu.mousedown then
				menu.dontdrag = false
			end
			if menu.colorpicker_open then
				if cp.dragging_m then
					set_dragbar_m(
						clamp(LOCAL_MOUSE.x, cp.x + 12, cp.x + 167) - 2,
						clamp(LOCAL_MOUSE.y + 36, cp.y + 25, cp.y + 180) - 2
					)

					cp.hsv.s = (clamp(LOCAL_MOUSE.x, cp.x + 12, cp.x + 167) - cp.x - 12) / 155
					cp.hsv.v = 1 - ((clamp(LOCAL_MOUSE.y + 36, cp.y + 23, cp.y + 178) - cp.y - 23) / 155)
					newcolor.Color = Color3.fromHSV(cp.hsv.h, cp.hsv.s, cp.hsv.v)
				elseif cp.dragging_r then
					set_dragbar_r(cp.x + 175, clamp(LOCAL_MOUSE.y + 36, cp.y + 23, cp.y + 178))

					maincolor.Color = Color3.fromHSV(
							1 - ((clamp(LOCAL_MOUSE.y + 36, cp.y + 23, cp.y + 178) - cp.y - 23) / 155),
							1,
							1
						)

					cp.hsv.h = 1 - ((clamp(LOCAL_MOUSE.y + 36, cp.y + 23, cp.y + 178) - cp.y - 23) / 155)
					newcolor.Color = Color3.fromHSV(cp.hsv.h, cp.hsv.s, cp.hsv.v)
				elseif cp.dragging_b then
					set_dragbar_b(clamp(LOCAL_MOUSE.x, cp.x + 10, cp.x + 168), cp.y + 188)
					newcolor.Transparency = (clamp(LOCAL_MOUSE.x, cp.x + 10, cp.x + 168) - cp.x - 10) / 158
					cp.hsv.a = math.floor(((clamp(LOCAL_MOUSE.x, cp.x + 10, cp.x + 168) - cp.x - 10) / 158) * 255)
				else
					local setvisnew = menu:MouseInColorPicker(197, 37, 75, 40)
					for i, v in ipairs(newcopy) do
						v.Visible = setvisnew
					end

					local setvisold = menu:MouseInColorPicker(197, 91, 75, 40)
					for i, v in ipairs(oldcopy) do
						v.Visible = setvisold
					end
				end
			end
		else
			menu.dragging = false
		end
	end

	menu.connections.inputstart = INPUT_SERVICE.InputBegan:Connect(function(input)
		if menu then
			if input.UserInputType == Enum.UserInputType.MouseButton1 then
				menu.mousedown = true
				if menu.open and not menu.fading then
					mousebutton1downfunc()
				end
			elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
				if menu.open and not menu.fading then
					mousebutton2downfunc()
				end
			end

			if input.UserInputType == Enum.UserInputType.Keyboard then
				if input.KeyCode.Name:match("Shift") then
					local kcn = input.KeyCode.Name
					local direction = kcn:split("Shift")[1]
					menu.modkeys.shift.direction = direction:lower()
				end
				if input.KeyCode.Name:match("Alt") then
					local kcn = input.KeyCode.Name
					local direction = kcn:split("Alt")[1]
					menu.modkeys.alt.direction = direction:lower()
				end
			end
			if not menu then
				return
			end -- this fixed shit with unload
			menu:InputBeganMenu(input)
			menu:InputBeganKeybinds(input)
			if menu.open then
				if menu.tabnames[menu.activetab] == "Settings" then
					bbmenu[27].Text = menu:GetVal("Settings", "Cheat Settings", "Custom Menu Name") and menu:GetVal("Settings", "Cheat Settings", "MenuName") or "Bitch Bot"

					menu.watermark.text[1].Text = menu.options["Settings"]["Cheat Settings"]["MenuName"][1]
						.. menu.watermark.textString

					for i, v in ipairs(menu.watermark.rect) do
						local len = #menu.watermark.text[1].Text * 7 + 10
						if i == #menu.watermark.rect then
							len += 2
						end
						v.Size = Vector2.new(len, v.Size.y)
					end
				end
			end
			if input.KeyCode == Enum.KeyCode.Home then
				menu.stat_menu = not menu.stat_menu

				for k, v in pairs(graphs) do
					if k ~= "other" then
						for k1, v1 in pairs(v) do
							if k1 ~= "pos" then
								for k2, v2 in pairs(v1) do
									v2.Visible = menu.stat_menu
								end
							end
						end
					end
				end

				for k, v in pairs(graphs.other) do
					v.Visible = menu.stat_menu
				end
			end
		end
	end)

	menu.connections.inputended = INPUT_SERVICE.InputEnded:Connect(function(input)
		menu:InputEndedKeybinds(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			menu.mousedown = false
			if menu.open and not menu.fading then
				mousebutton1upfunc()
			end
		end
		if input.UserInputType == Enum.UserInputType.Keyboard then
			if input.KeyCode.Name:match("Shift") then
				menu.modkeys.shift.direction = nil
			end
			if input.KeyCode.Name:match("Alt") then
				menu.modkeys.alt.direction = nil
			end
		end
	end)

	menu.connections.renderstepped = game.RunService.RenderStepped:Connect(renderSteppedMenu) -- fucking asshole 🖕🖕🖕

	function menu:unload()
		getgenv().v2 = nil
		self.unloaded = true

		for k, conn in next, self.connections do
			if not getrawmetatable(conn) then
				conn()
			else
				conn:Disconnect()
			end
			self.connections[k] = nil
		end

		game:service("ContextActionService"):UnbindAction("BB Keycheck")
		--[[ if self.game == "pf" then
			game:service("ContextActionService"):UnbindAction("BB PF check")
		elseif self.game == "uni" then
			game:service("ContextActionService"):UnbindAction("BB UNI check")
		end ]]

		local mt = getrawmetatable(game)

		setreadonly(mt, false)

		local oldmt = menu.oldmt

		if oldmt then
			for k, v in next, mt do
				if oldmt[k] then
					mt[k] = oldmt[k]
				end
			end
		else
			--TODO nate do this please
			-- remember to store any "game" metatable hooks PLEASE PLEASE because this will ensure it replaces the meta so that it UNLOADS properly
			--rconsoleerr("fatal error: no old game meta found! (UNLOAD PROBABLY WON'T WORK AS EXPECTED)")
		end

		setreadonly(mt, true)

		if menu.game == "pf" or menu.pfunload then
			menu:pfunload()
		end

		Draw:UnRender()
		CreateNotification = nil
		allrender = nil
		menu = nil
		Draw = nil
		self.unloaded = true
	end
end

local StatMenuRendered = event.new("StatMenuRendered")
menu.connections.heartbeatmenu = game.RunService.Heartbeat:Connect(function() --ANCHOR MENU HEARTBEAT
	if menu.y < 0 then
		menu.y = 0
		menu:SetMenuPos(menu.x, 0)
	end
	if menu.x < -menu.w / 4 * 3 then
		menu.x = -menu.w / 4 * 3
		menu:SetMenuPos(-menu.w / 4 * 3, menu.y)
	end
	if menu.x + menu.w / 4 > SCREEN_SIZE.x then
		menu.x = SCREEN_SIZE.x - menu.w / 4
		menu:SetMenuPos(SCREEN_SIZE.x - menu.w / 4, menu.y)
	end
	if menu.y > SCREEN_SIZE.y - 20 then
		menu.y = SCREEN_SIZE.y - 20
		menu:SetMenuPos(menu.x, SCREEN_SIZE.y - 20)
	end
	if menu.stat_menu == false then
		return
	end
end)

local function keycheck(actionName, inputState, inputObject)
	if actionName == "BB Keycheck" then
		if menu.open then
			if menu.textboxopen then
				if inputObject.KeyCode == Enum.KeyCode.Backspace then
					if menu.selectall then
						menu.textboxopen[1] = ""
						menu.textboxopen[4].Text = "|"
						menu.textboxopen[4].Color = RGB(unpack(menu.mc))
						menu.selectall = false
					end
					local on = inputState == Enum.UserInputState.Begin
					menu.backspaceheld = on
					menu.backspacetime = on and tick() or -1
					if not on then
						menu.backspaceflags = 0
					end
				end

				if inputObject.KeyCode ~= Enum.KeyCode.A and (not inputObject.KeyCode.Name:match("^Left") and not inputObject.KeyCode.Name:match("^Right")) and inputObject.KeyCode ~= Enum.KeyCode.RightShift
				then
					if menu.selectall then
						menu.textboxopen[4].Color = RGB(unpack(menu.mc))
						menu.selectall = false
					end
				end

				if inputObject.KeyCode == Enum.KeyCode.A then
					if inputState == Enum.UserInputState.Begin and INPUT_SERVICE:IsKeyDown(Enum.KeyCode.LeftControl)
					then
						menu.selectall = true
						local textbox = menu.textboxopen
						textbox[4].Color = RGB(menu.mc[3], menu.mc[2], menu.mc[1])
					end
				end

				return Enum.ContextActionResult.Sink
			end
		end

		return Enum.ContextActionResult.Pass
	end
end

game:service("ContextActionService"):BindAction("BB Keycheck", keycheck, false, Enum.UserInputType.Keyboard)

menu.Initialize({
	{ --ANCHOR stuffs
		name = "Legit",
		content = {
			{
				name = "Aim Assist",
				autopos = "left",
				content = {
					{
						type = "toggle",
						name = "Enabled",
						value = false,
						callback = function(bool)
					print(bool)	    
					end},
					{
						type = "slider",
						name = "Aimbot FOV",
						value = 20,
						minvalue = 0,
						maxvalue = 180,
						stradd = "°",
					},
					{
						type = "slider",
						name = "Smoothing",
						value = 20,
						minvalue = 0,
						maxvalue = 100,
						stradd = "%",
					},
					{
						type = "dropbox",
						name = "Smoothing Type",
						value = 2,
						values = { "Exponential", "Linear" },
					},
					{
						type = "slider",
						name = "Randomization",
						value = 5,
						minvalue = 0,
						maxvalue = 20,
						custom = { [0] = "Off" },
					},
					{
						type = "slider",
						name = "Deadzone FOV",
						value = 1,
						minvalue = 0,
						maxvalue = 50,
						stradd = "°",
						decimal = 0.1,
						custom = { [0] = "Off" },
					},
					{
						type = "dropbox",
						name = "Aimbot Key",
						value = 1,
						values = { "Mouse 1", "Mouse 2", "Always" },
					},
					{
						type = "dropbox",
						name = "Hitscan Priority",
						value = 1,
						values = { "Head", "Body", "Closest" },
					},
					{
						type = "combobox",
						name = "Hitscan Points",
						values = { { "Head", true }, { "Body", true }, { "Arms", false }, { "Legs", false } },
					},
					{
						type = "toggle",
						name = "Adjust for Bullet Drop",
						value = false,
					},
					{
						type = "toggle",
						name = "Target Prediction",
						value = false,
					},
					{
						type = "slider",
						name = "Enlarge Enemy Hitboxes",
						value = 0,
						minvalue = 0,
						maxvalue = 100,
						stradd = "%",
					},
				},
			},
			{
				name = "Trigger Bot",
				autopos = "right",
				content = {
					{
						type = "toggle",
						name = "Enabled",
						value = false,
						extra = {
							type = "keybind",
							key = Enum.KeyCode.M,
						},
					},
					{
						type = "combobox",
						name = "Trigger Bot Hitboxes",
						values = { { "Head", true }, { "Body", true }, { "Arms", false }, { "Legs", false } },
					},
					{
						type = "toggle",
						name = "Trigger When Aiming",
						value = false,
					},
					{
						type = "slider",
						name = "Aim Percentage",
						minvalue = 0,
						maxvalue = 100,
						value = 90,
						stradd = "%",
					},
					--[[
			{
				type = "toggle",
				name = "Magnet Triggerbot",
				value = false
			},
			{
				type = "slider",
				name = "Magnet FOV",
				value = 80,
				minvalue = 0,
				maxvalue = 180,
				stradd = "°"
			},
			{
				type = "slider",
				name = "Magnet Smoothing Factor",
				value = 20,
				minvalue = 0,
				maxvalue = 50,
				stradd = "%"
			},
			{
				type = "dropbox",
				name = "Magnet Priority",
				value = 1,
				values = {"Head", "Body"}
			},]]
				},
			},
			{
				name = "Bullet Redirection",
				autopos = "right",
				autofill = true,
				content = {
					{
						type = "toggle",
						name = "Silent Aim",
						value = false,
					},
					{
						type = "slider",
						name = "Silent Aim FOV",
						value = 5,
						minvalue = 0.1,
						maxvalue = 180,
						stradd = "°",
						decimal = 0.1,
					},
					{
						type = "slider",
						name = "Hit Chance",
						value = 30,
						minvalue = 0,
						maxvalue = 100,
						stradd = "%",
					},
					{
						type = "slider",
						name = "Accuracy",
						value = 90,
						minvalue = 0,
						maxvalue = 100,
						stradd = "%",
					},
					{
						type = "dropbox",
						name = "Hitscan Priority",
						value = 1,
						values = { "Head", "Body", "Closest" },
					},
					{
						type = "combobox",
						name = "Hitscan Points",
						values = { { "Head", true }, { "Body", true }, { "Arms", false }, { "Legs", false } },
					},
				},
			},
			{
				name = "Recoil Control",
				autopos = "left",
				autofill = true,
				content = {
					{
						type = "toggle",
						name = "Weapon RCS",
						value = false,
					},
					{
						type = "slider",
						name = "Recoil Control X",
						value = 10,
						minvalue = 0,
						maxvalue = 100,
						stradd = "%",
					},
					{
						type = "slider",
						name = "Recoil Control Y",
						value = 10,
						minvalue = 0,
						maxvalue = 100,
						stradd = "%",
					},
				},
			},
		},
	},
	{
		name = "Rage",
		content = {
			{
				name = "Aimbot",
				autopos = "left",
				content = {
					{
						type = "toggle",
						name = "Enabled",
						value = false,
						extra = {
							type = "keybind",
							toggletype = 4,
						},
						unsafe = true,
					},
					{
						type = "toggle",
						name = "Silent Aim",
						value = false,
					},
					{
						type = "toggle",
						name = "Rotate Viewmodel",
						value = false,
					},
					{
						type = "slider",
						name = "Aimbot FOV",
						value = 180,
						minvalue = 0,
						maxvalue = 181,
						stradd = "°",
						custom = { [181] = "Ignored" },
					},
					{
						type = "dropbox",
						name = "Auto Wall",
						value = 1,
						values = { "Off", "Standard", "Legacy" },
					},
					{
						type = "slider",
						name = "Autowall FPS (Standard)",
						value = 30,
						minvalue = 10,
						maxvalue = 30,
						stradd = "fps",
					},
					{
						type = "toggle",
						name = "Auto Shoot",
						value = false,
					},
					{
						type = "toggle",
						name = "Double Tap",
						value = false,
					},
					{
						type = "dropbox",
						name = "Hitscan Priority",
						value = 1,
						values = { "Head", "Body" },
					},
				},
			},
			{
				name = "Hack vs. Hack",
				autopos = "right",
				content = {
					--[[{
				type = "toggle",
				name = "Extend Penetration",
				value = false
			},]]
					-- {
					-- 	type = "slider",
					-- 	name = "Extra Penetration",
					-- 	value = 11,
					-- 	minvalue = 1,
					-- 	maxvalue = 20,
					-- 	stradd = " studs",
					-- 	tooltip = "does nothing",
					-- }, -- fuck u json
					{
						type = "toggle",
						name = "Autowall Hitscan",
						value = false,
						unsafe = true,
					},
					{
						type = "combobox",
						name = "Hitscan Points",
						values = {
							{ "Up", true },
							{ "Down", true },
							{ "Left", false },
							{ "Right", false },
							{ "Forward", true },
							{ "Backward", true },
							{ "Origin", true },
							{ "Towards", true },
						},
					},
					{
						type = "toggle",
						name = "Hitbox Shifting",
						value = false,
						tooltip = "Increases possible penetration with Autowall. The higher\nthe Hitbox Shift Distance the more likely it is to miss shots.\nWhen it misses it will try disable this.",
					},
					{
						type = "slider",
						name = "Hitbox Shift Distance",
						value = 16,
						minvalue = 1,
						maxvalue = 30,
						stradd = " studs",
					},
					{
						type = "toggle",
						name = "Force Player Stances",
						value = false,
					},
					{
						type = "dropbox",
						name = "Stance Choice",
						value = 1,
						values = { "Stand", "Crouch", "Prone" },
					},
					{
						type = "toggle", 
						name = "Backtracking",
						value = false,
					},
					{
						type = "slider",
						name = "Backtracking Time",
						value = 4000,
						minvalue = 0,
						maxvalue = 5000,
						stradd = " ms",
					},
					{
						type = "toggle",
						name = "Freestanding",
						value = false,
						extra = {
							type = "keybind",
						},
					},
				},
			},
			{
				name = { "Extra", "Settings" },
				autopos = "left",
				autofill = true,
				[1] = {
					content = {
						{
							type = "toggle",
							name = "Knife Bot",
							value = false,
							extra = {
								type = "keybind",
							},
							unsafe = true,
						},
						{
							type = "dropbox",
							name = "Knife Bot Type",
							value = 2,
							values = { "Assist", "Multi Aura", "Flight Aura" },
						},
						{
							type = "toggle",
							name = "Auto Peek",
							value = false,
							extra = {
								type = "keybind",
								toggletype = 1,
							},
							tooltip = "Hitscans from in front of your camera,\nif a target is found it will move you towards the point automatically",
						},
					},
				},
				[2] = {
					content = {
						{
							type = "toggle",
							name = "Aimbot Performance Mode",
							value = true,
							tooltip = "Lowers polling rate for targetting in Rage Aimbot.",
						},
						{
							type = "toggle",
							name = "Aimbot Damage Prediction",
							value = true,
							tooltip = "Predicts damage done to enemies as to prevent wasting ammo and time on certain players.\nHelps for users, and against players with high latency.",
						},
						{
							type = "slider",
							name = "Damage Prediction Limit",
							value = 100,
							minvalue = 0,
							maxvalue = 300,
							stradd = "hp",
						},
						{
							type = "slider",
							name = "Damage Prediction Time",
							value = 200,
							minvalue = 100,
							maxvalue = 500,
							stradd = "%",
						},
						{
							type = "slider",
							name = "Max Hitscan Points",
							value = 30,
							minvalue = 0,
							maxvalue = 300,
							stradd = " points",
						},
					},
				},
			},
			{
				name = { "Anti Aim", "Fake Lag" },
				autopos = "right",
				autofill = true,
				[1] = {
					content = {
						{
							type = "toggle",
							name = "Enabled",
							value = false,
							tooltip = "When this is enabled, your server-side yaw, pitch and stance are set to the values in this tab.",
						},
						{
							type = "dropbox",
							name = "Pitch",
							value = 4,
							values = {
								"Off",
								"Up",
								"Zero",
								"Down",
								"Upside Down",
								"Roll Forward",
								"Roll Backward",
								"Random",
								"Bob",
								"Glitch",
							},
						},
						{
							type = "dropbox",
							name = "Yaw",
							value = 2,
							values = { "Forward", "Backward", "Spin", "Random", "Glitch Spin", "Stutter Spin" },
						},
						{
							type = "slider",
							name = "Spin Rate",
							value = 10,
							minvalue = -100,
							maxvalue = 100,
							stradd = "°/s",
						},
						{
							type = "dropbox",
							name = "Force Stance",
							value = 4,
							values = { "Off", "Stand", "Crouch", "Prone" },
						},
						{
							type = "toggle",
							name = "Hide in Floor",
							value = true,
							tooltip = "Shifts your body slightly under the ground\nso as to hide it when Force Stance is set to Prone.",
						},
						{
							type = "toggle",
							name = "Lower Arms",
							value = false,
							tooltip = "Lowers your arms on the server.",
						},
						{
							type = "toggle",
							name = "Tilt Neck",
							value = false,
							tooltip = "Forces the replicated aiming state so that it appears as though your head is tilted.",
						},
					},
				},
				[2] = {
					content = {
						{
							type = "toggle",
							name = "Enabled",
							value = false,
						},
						{
							type = "slider",
							name = "Fake Lag Amount",
							value = 1,
							minvalue = 1,
							maxvalue = 1000,
							stradd = " kbps",
						},
						{
							type = "slider",
							name = "Fake Lag Distance",
							value = 1,
							minvalue = 1,
							maxvalue = 40,
							stradd = " studs",
						},
						{
							type = "toggle",
							name = "Manual Choke",
							extra = {
								type = "keybind",
							},
						},
						{
							type = "toggle",
							name = "Release Packets on Shoot",
							value = false,
						},
					},
				},
			},
		},
	},
	{
		name = "Visuals",
		content = {
			{
				name = { "Enemy ESP", "Team ESP", "Local" },
				autopos = "left",
				size = 330,
				[1] = {
					content = {
						{
							type = "toggle",
							name = "Enabled",
							value = true,
						},
						{
							type = "toggle",
							name = "Name",
							value = true,
							extra = {
								type = "single colorpicker",
								name = "Enemy Name",
								color = { 255, 255, 255, 200 },
							},
						},
						{
							type = "toggle",
							name = "Rank",
							value = false,
						},
						{
							type = "toggle",
							name = "Box",
							value = true,
							extra = {
								type = "single colorpicker",
								name = "Enemy Box",
								color = { 255, 0, 0, 150 },
							},
						},
						{
							type = "toggle",
							name = "Filled Box",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Enemy Filled Box",
								color = { 255, 0, 0, 90 },
							},
						},
						{
							type = "toggle",
							name = "Health Bar",
							value = true,
							extra = {
								type = "double colorpicker",
								name = { "Enemy Low Health", "Enemy Max Health" },
								color = { { 255, 0, 0 }, { 0, 255, 0 } },
							},
						},
						{
							type = "toggle",
							name = "Health Number",
							value = true,
							extra = {
								type = "single colorpicker",
								name = "Enemy Health Number",
								color = { 255, 255, 255, 255 },
							},
						},
						{
							type = "toggle",
							name = "Held Weapon",
							value = true,
							extra = {
								type = "single colorpicker",
								name = "Enemy Held Weapon",
								color = { 255, 255, 255, 200 },
							},
						},
						{
							type = "toggle",
							name = "Distance",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Enemy Distance",
								color = { 255, 255, 255, 200 },
							},
						},
						{
							type = "toggle",
							name = "Chams",
							value = true,
							extra = {
								type = "double colorpicker",
								name = { "Visible Enemy Chams", "Invisible Enemy Chams" },
								color = { { 255, 0, 0, 200 }, { 100, 0, 0, 100 } },
							},
						},
						{
							type = "toggle",
							name = "Skeleton",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Enemy skeleton",
								color = { 255, 255, 255, 120 },
							},
						},
						{
							type = "toggle",
							name = "Out of View",
							value = true,
							extra = {
								type = "single colorpicker",
								name = "Arrow Color",
								color = { 255, 255, 255, 255 },
							},
						},
						{
							type = "slider",
							name = "Arrow Distance",
							value = 50,
							minvalue = 10,
							maxvalue = 100,
							stradd = "%",
						},
						{
							type = "toggle",
							name = "Dynamic Arrow Size",
							value = true,
						},
						{
							type = "toggle",
							name = "Show Resolved Position",
							value = false,
						},
						{
							type = "toggle",
							name = "Show Backtracked Position",
							value = false,
						},
					},
				},
				[2] = {
					content = {
						{
							type = "toggle",
							name = "Enabled",
							value = false,
						},
						{
							type = "toggle",
							name = "Name",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Team Name",
								color = { 255, 255, 255, 200 },
							},
						},
						{
							type = "toggle",
							name = "Rank",
							value = false,
						},
						{
							type = "toggle",
							name = "Box",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Team Box",
								color = { 0, 255, 0, 150 },
							},
						},
						{
							type = "toggle",
							name = "Filled Box",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Team Filled Box",
								color = { 0, 255, 0, 90 },
							},
						},
						{
							type = "toggle",
							name = "Health Bar",
							value = false,
							extra = {
								type = "double colorpicker",
								name = { "Team Low Health", "Team Max Health" },
								color = { { 255, 0, 0 }, { 0, 255, 0 } },
							},
						},
						{
							type = "toggle",
							name = "Health Number",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Team Health Number",
								color = { 255, 255, 255, 255 },
							},
						},
						{
							type = "toggle",
							name = "Held Weapon",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Team Held Weapon",
								color = { 255, 255, 255, 200 },
							},
						},
						{
							type = "toggle",
							name = "Distance",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Team Distance",
								color = { 255, 255, 255, 200 },
							},
						},
						{
							type = "toggle",
							name = "Chams",
							value = false,
							extra = {
								type = "double colorpicker",
								name = { "Visible Team Chams", "Invisible Team Chams" },
								color = { { 0, 255, 0, 200 }, { 0, 100, 0, 100 } },
							},
						},
						{
							type = "toggle",
							name = "Skeleton",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Team skeleton",
								color = { 255, 255, 255, 120 },
							},
						},
					},
				},
				[3] = {
					content = {
						{
							type = "toggle",
							name = "Arm Chams",
							value = false,
							extra = {
								type = "double colorpicker",
								name = { "Sleeve Color", "Hand Color" },
								color = { { 106, 136, 213, 255 }, { 181, 179, 253, 255 } },
							},
						},
						{
							type = "dropbox",
							name = "Arm Material",
							value = 1,
							values = { "Plastic", "Ghost", "Neon", "Foil", "Glass" },
						},
						{
							type = "toggle",
							name = "Weapon Chams",
							value = false,
							extra = {
								type = "double colorpicker",
								name = { "Weapon Color", "Laser Color" },
								color = { { 106, 136, 213, 255 }, { 181, 179, 253, 255 } },
							},
						},
						{
							type = "dropbox",
							name = "Weapon Material",
							value = 1,
							values = { "Plastic", "Ghost", "Neon", "Foil", "Glass" },
						},
						{
							type = "toggle",
							name = "Animate Ghost Material",
							value = false,
							tooltip = "Toggles whether or not the 'Ghost' material will be animated or not.",
						},
						{
							type = "toggle",
							name = "Remove Weapon Skin",
							value = false,
							tooltip = "If a loaded weapon has a skin, it will remove it.",
						},
						{
							type = "toggle",
							name = "Third Person",
							value = false,
							extra = {
								type = "keybind",
								key = nil,
								toggletype = 2,
							},
						},
						{
							type = "slider",
							name = "Third Person Distance",
							value = 60,
							minvalue = 1,
							maxvalue = 150,
						},
						{
							type = "toggle",
							name = "Local Player Chams",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Local Player Chams",
								color = { 106, 136, 213, 255 },
							},
							tooltip = "Changes the color and material of the local third person body when it is on.",
						},
						{
							type = "dropbox",
							name = "Local Player Material",
							value = 1,
							values = { "Plastic", "Ghost", "Neon", "Foil", "Glass" },
						},
					},
				},
			},
			{
				name = "ESP Settings",
				autopos = "left",
				autofill = true,
				content = {
					{
						type = "slider",
						name = "Max HP Visibility Cap",
						value = 90,
						minvalue = 50,
						maxvalue = 100,
						stradd = "hp",
					},
					{
						type = "dropbox",
						name = "Text Case",
						value = 2,
						values = { "lowercase", "Normal", "UPPERCASE" },
					},
					{
						type = "slider",
						name = "Max Text Length",
						value = 0,
						minvalue = 0,
						maxvalue = 32,
						custom = { [0] = "Unlimited" },
					},
					{
						type = "toggle",
						name = "Highlight Aimbot Target",
						value = false,
						extra = {
							type = "single colorpicker",
							name = "Aimbot Target",
							color = { 255, 0, 0, 255 },
						},
					},
					{
						type = "toggle",
						name = "Highlight Friends",
						value = true,
						extra = {
							type = "single colorpicker",
							name = "Friended Players",
							color = { 0, 255, 255, 255 },
						},
					},
					{
						type = "toggle",
						name = "Highlight Priority",
						value = true,
						extra = {
							type = "single colorpicker",
							name = "Priority Players",
							color = { 255, 210, 0, 255 },
						},
					},
					-- {
					-- 	type = "slider",
					-- 	name = "Max Player Text",
					-- 	value = 0,
					-- 	minvalue = 0,
					-- 	maxvalue = 32,
					-- 	custom = {[0] = "None"},
					-- }
				},
			},
			{
				name = { "Camera Visuals", "Viewmodel" },
				autopos = "right",
				size = 240,
				[1] = {
					content = {
						{
							type = "slider",
							name = "Camera FOV",
							value = 85,
							minvalue = 60,
							maxvalue = 120,
							stradd = "°",
						},
						{
							type = "toggle",
							name = "No Camera Bob",
							value = false,
						},
						{
							type = "toggle",
							name = "No Scope Sway",
							value = false,
						},
						{
							type = "toggle",
							name = "Disable ADS FOV",
							value = false,
						},
						{
							type = "toggle",
							name = "No Scope Border",
							value = false,
						},
						{
							type = "toggle",
							name = "No Visual Suppression",
							value = false,
							tooltip = "Removes the suppression of enemies' bullets.",
						},
						{
							type = "toggle",
							name = "No Gun Bob or Sway",
							value = false,
							tooltip = "Removes the bob and sway of weapons when walking.\nThis does not remove the swing effect when moving your mouse.",
						},
						{
							type = "toggle",
							name = "Reduce Camera Recoil",
							value = false,
							tooltip = "Reduces camera recoil by X%. Does not affect visible weapon recoil or kick.",
						},
						{
							type = "slider",
							name = "Camera Recoil Reduction",
							value = 10,
							minvalue = 0,
							maxvalue = 100,
							stradd = "%",
						},
					},
				},
				[2] = {
					content = {
						{
							type = "toggle",
							name = "Enabled",
							value = false,
						},
						{
							type = "slider",
							name = "Offset X",
							value = 0,
							minvalue = -3,
							maxvalue = 3,
							decimal = 0.01,
							stradd = " studs",
						},
						{
							type = "slider",
							name = "Offset Y",
							value = 0,
							minvalue = -3,
							maxvalue = 3,
							decimal = 0.01,
							stradd = " studs",
						},
						{
							type = "slider",
							name = "Offset Z",
							value = 0,
							minvalue = -3,
							maxvalue = 3,
							decimal = 0.01,
							stradd = " studs",
						},
						{
							type = "slider",
							name = "Pitch",
							value = 0,
							minvalue = -180,
							maxvalue = 180,
							stradd = "°",
						},
						{
							type = "slider",
							name = "Yaw",
							value = 0,
							minvalue = -180,
							maxvalue = 180,
							stradd = "°",
						},
						{
							type = "slider",
							name = "Roll",
							value = 0,
							minvalue = -180,
							maxvalue = 180,
							stradd = "°",
						},
					},
				},
			},
			{
				name = { "World", "Misc", "Keybinds", "FOV" },

				autopos = "right",
				size = 144,
				[1] = {
					content = {
						{
							type = "toggle",
							name = "Ambience",
							value = false,
							extra = {
								type = "double colorpicker",
								name = { "Inside Ambience", "Outside Ambience" },
								color = { { 117, 76, 236 }, { 117, 76, 236 } },
							},
							tooltip = "Changes the map's ambient colors to the user defined colors.",
						},
						{
							type = "toggle",
							name = "Force Time",
							value = false,
							tooltip = "Forces the time to the time set by the user below.",
						},
						{
							type = "slider",
							name = "Custom Time",
							value = 0,
							minvalue = 0,
							maxvalue = 24,
							decimal = 0.1,
						},
						{
							type = "toggle",
							name = "Custom Saturation",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Saturation Tint",
								color = { 255, 255, 255 },
							},
							tooltip = "Adds custom saturation the image of the game.",
						},
						{
							type = "slider",
							name = "Saturation Density",
							value = 0,
							minvalue = 0,
							maxvalue = 100,
							stradd = "%",
						},
					},
				},
				[2] = {
					content = {
						{
							type = "toggle",
							name = "Crosshair Color",
							value = false,
							extra = {
								type = "double colorpicker",
								name = { "Inline", "Outline" },
								color = { { 127, 72, 163 }, { 25, 25, 25 } },
							},
						},
						{
							type = "toggle",
							name = "Laser Pointer",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Laser Pointer Color",
								color = { 255, 255, 255, 255 },
							},
						},
						{
							type = "toggle",
							name = "Ragdoll Chams",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Ragdoll Chams",
								color = { 106, 136, 213, 255 },
							},
						},
						{
							type = "dropbox",
							name = "Ragdoll Material",
							value = 1,
							values = { "Plastic", "Ghost", "Neon", "Foil", "Glass" },
						},
						{
							type = "toggle",
							name = "Bullet Tracers",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Bullet Tracers",
								color = { 201, 69, 54 },
							},
						},
					},
				},
				[3] = {
					content = {
						{
							type = "toggle",
							name = "Enabled",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Text Color",
								color = { 127, 72, 163, 255 },
							},
						},
						{
							type = "toggle",
							name = "Use List Sizes",
							value = false,
						},
						{
							type = "toggle",
							name = "Log Keybinds",
							value = false
						}
					},
				},
				[4] = {
					content = {
						{
							type = "toggle",
							name = "Enabled",
							value = false,
						},
						{
							type = "toggle",
							name = "Aim Assist",
							value = true,
							extra = {
								type = "single colorpicker",
								name = "Aim Assist FOV",
								color = { 127, 72, 163, 255 },
							},
						},
						{
							type = "toggle",
							name = "Aim Assist Deadzone",
							value = true,
							extra = {
								type = "single colorpicker",
								name = "Deadzone FOV",
								color = { 50, 50, 50, 255 },
							},
						},
						{
							type = "toggle",
							name = "Bullet Redirection",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Bullet Redirection FOV",
								color = { 163, 72, 127, 255 },
							},
						},
						{
							type = "toggle",
							name = "Ragebot",
							value = false,
							extra = {
								type = "single colorpicker",
								name = "Ragebot FOV",
								color = { 255, 210, 0, 255 },
							},
						},
					},
				},
			},
			{
				name = "Dropped ESP",
				autopos = "right",
				autofill = true,
				content = {
					{
						type = "toggle",
						name = "Weapon Names",
						value = false,
						extra = {
							type = "double colorpicker",
							name = { "Highlighted Weapons", "Weapon Names" },
							color = { { 255, 125, 255, 255 }, { 255, 255, 255, 255 } },
						},
						tooltip = "Displays dropped weapons as you get closer to them,\nHighlights the weapon you are holding in the second color.",
					},
					{
						type = "toggle",
						name = "Weapon Ammo",
						value = false,
						extra = {
							type = "single colorpicker",
							name = "Weapon Ammo",
							color = { 61, 168, 235, 150 },
						},
					},
					{
						type = "toggle",
						name = "Dropped Weapon Chams",
						value = false,
						extra = {
							type = "single colorpicker",
							name = "Dropped Weapon Color",
							color = { 3, 252, 161, 150 },
						},
					},
					{
						type = "toggle",
						name = "Grenade Warning",
						value = true,
						extra = {
							type = "single colorpicker",
							name = "Slider Color",
							color = { 68, 92, 227 },
						},
						tooltip = "Displays where grenades that will deal\ndamage to you will land and the damage they will deal.",
					},
					{
						type = "toggle",
						name = "Grenade ESP",
						value = false,
						extra = {
							type = "double colorpicker",
							name = { "Inner Color", "Outer Color" },
							color = { { 195, 163, 255 }, { 123, 69, 224 } },
						},
						tooltip = "Displays the full path of any grenade that will deal damage to you is thrown.",
					},
				},
			},
		},
	},
	{
		name = "Misc",
		content = {
			{
				name = { "Movement", "Tweaks" },
				autopos = "left",
				size = 250,
				[1] = {
					content = {
						{
							type = "toggle",
							name = "Fly",
							value = false,
							unsafe = true,
							tooltip = "Manipulates your velocity to make you fly.\nUse 60 speed or below to never get flagged.",
							extra = {
								type = "keybind",
								key = Enum.KeyCode.B,
								toggletype = 2,
							},
						},
						{
							type = "slider",
							name = "Fly Speed",
							value = 60,
							minvalue = 1,
							maxvalue = 400,
							stradd = " stud/s",
						},
						{
							type = "toggle",
							name = "Auto Jump",
							value = false,
							tooltip = "When you hold the spacebar, it will automatically jump repeatedly, ignoring jump delay.",
						},
						{
							type = "toggle",
							name = "Speed",
							value = false,
							unsafe = true,
							tooltip = "Manipulates your velocity to make you move faster, unlike fly it doesn't make you fly.\nUse 60 speed or below to never get flagged.",
							extra = {
								type = "keybind",
								toggletype = 4,
							},
						},
						{
							type = "dropbox",
							name = "Speed Type",
							value = 1,
							values = { "Always", "In Air", "On Hop" },
						},
						{
							type = "slider",
							name = "Speed Factor",
							value = 40,
							minvalue = 1,
							maxvalue = 400,
							stradd = " stud/s",
						},
						{
							type = "toggle",
							name = "Circle Strafe",
							value = false,
							extra = {
								type = "keybind",
							},
							tooltip = "When you hold this keybind, it will strafe in a perfect circle.\nSpeed of strafing is borrowed from Speed Factor.",
						},
						{
							type = "toggle",
							name = "Bypass Speed Checks",
							value = false,
							unsafe = true,
							tooltip = "Attempts to bypass maximum speed limit on the server.",
						},
					},
				},
				[2] = {
					content = {
						{
							type = "toggle",
							name = "Gravity Shift",
							value = false,
							tooltip = "Shifts movement gravity by X%. (Does not affect bullet acceleration.)",
						},
						{
							type = "slider",
							name = "Gravity Shift Percentage",
							value = -50,
							minvalue = -500,
							maxvalue = 500,
							stradd = "%",
						},
						{
							type = "toggle",
							name = "Jump Power",
							value = false,
							tooltip = "Shifts movement jump power by X%.",
						},
						{
							type = "slider",
							name = "Jump Power Percentage",
							value = 150,
							minvalue = 0,
							maxvalue = 1000,
							stradd = "%",
						},
						{
							type = "toggle",
							name = "Prevent Fall Damage",
							value = false,
						},
					},
				},
			},
			{
				name = "Weapon Modifications",
				autopos = "left",
				autofill = true,
				content = {
					{
						type = "toggle",
						name = "Enabled",
						value = false,
						tooltip = "Allows Bitch Bot to modify weapons.",
					},
					{
						type = "slider",
						name = "Fire Rate Scale",
						value = 150,
						minvalue = 50,
						maxvalue = 500,
						stradd = "%",
						tooltip = "Scales all weapons' firerate by X%.\n100% = Normal firerate",
					},
					{
						type = "slider",
						name = "Recoil Scale",
						value = 10,
						minvalue = 0,
						maxvalue = 100,
						stradd = "%",
						tooltip = "Scales all weapons' recoil by X%.\n0% = No recoil | 50% = Halved recoil",
					},
					{
						type = "toggle",
						name = "Remove Animations",
						value = true,
						tooltip = "Removes all animations from any gun.\nThis will also completely remove the equipping animations.",
					},
					{
						type = "toggle",
						name = "Instant Equip",
						value = true,
					},
					{
						type = "toggle",
						name = "Fully Automatic",
						value = true,
					},
					{
						type = "toggle",
						name = "Run and Gun",
						value = false,
						tooltip = "Makes it so that your weapon does not\nsway due to mouse movement, or turns over while sprinting.",
					},
				},
			},
			{
				name = { "Extra", "Exploits" },
				autopos = "right",
				autofill = true,
				[1] = {
					content = {
						{
							type = "toggle",
							name = "Ignore Friends",
							value = true,
							tooltip = "When turned on, bullets do not deal damage to friends,\nand Rage modules won't target friends.",
						},
						{
							type = "toggle",
							name = "Target Only Priority Players",
							value = false,
							tooltip = "When turned on, all modules except for Aim Assist that target players\nwill ignore anybody that isn't on the Priority list.",
						},
						{
							type = "toggle",
							name = "Suppress Only",
							value = false,
							tooltip = "When turned on, bullets do not deal damage.",
						},
						{
							type = "toggle",
							name = "Auto Respawn",
							value = false,
							tooltip = "Automatically respawns after deaths.",
						},
						{
							type = "toggle",
							name = "Auto Vote",
							value = false,
							tooltip = "When votekicks are started, Bitch Bot will automatically choose\nwhat choice to make depending on the options below.",
						},
						{
							type = "dropbox",
							name = "Vote Friends",
							value = 1,
							values = { "Off", "Yes", "No" },
						},
						{
							type = "dropbox",
							name = "Vote Priority",
							value = 1,
							values = { "Off", "Yes", "No" },
						},
						{
							type = "dropbox",
							name = "Default Vote",
							value = 1,
							values = { "Off", "Yes", "No" },
						},
						{
							type = "toggle",
							name = "Kill Sound",
							value = false,
						},
						{
							type = "textbox",
							name = "killsoundid",
							text = "6229978482",
							tooltip = "The Roblox sound ID or file inside of synapse\n workspace to play when Kill Sound is on.",
						},
						{
							type = "slider",
							name = "Kill Sound Volume",
							value = 20,
							minvalue = 0,
							maxvalue = 100,
							stradd = "%",
						},
						{
							type = "toggle",
							name = "Kill Say",
							value = false,
							tooltip = "Kill say messages, located in bitchbot/killsay.txt \n[name] is the target's name\n[weapon] is the weapon used\n[hitbox] says head or body depending on where you shot the player",
						},
						{
							type = "dropbox",
							name = "Chat Spam",
							value = 1,
							values = {
								"Off",
								"Original",
								"t0nymode",
								"Chinese Propaganda",
								"Emojis",
								"Deluxe",
								"Youtube Title",
								"Custom",
								"Custom Combination",
							},
							tooltip = "Spams chat, Custom options are located in the bitchbot/chatspam.txt",
						},
						{
							type = "toggle",
							name = "Chat Spam Repeat",
							value = false,
							tooltip = "Repeats the same Chat Spam message in chat.",
						},
						{
							type = "slider",
							name = "Chat Spam Delay",
							minvalue = 1,
							maxvalue = 10,
							value = 5,
							stradd = " seconds",
						},
						{
							type = "toggle",
							name = "Auto Martyrdom",
							value = false,
							tooltip = "Whenever you die to an enemy, this will drop a grenade\nat your death position. If Grenade Teleport is on, it will place the grenade at the enemy.",
						},
						{
							type = "toggle",
							name = "Break Windows",
							value = false,
							tooltip = "Breaks all windows in the map when you spawn."
						},
						{
							type = "button",
							name = "Join New Game",
							value = false,
							unsafe = false,
							doubleclick = true,
						},

					},
				},
				[2] = {
					content = {

						--[[{
					type = "toggle",
					name = "Super Invisibility",
					value = false,
					extra = {
						type = "keybind"
					}
				},]]
						{
							type = "button",
							name = "Crash Server",
							doubleclick = true,
							tooltip = "Attempts to overwhelm the server so that users are kicked for internet connection problems.\nRoblox may detect strange activity and automatically\nkick you for it before the server can crash.",
						},
						{
							type = "toggle",
							name = "Invisibility",
							extra = {
								type = "keybind",
								toggletype = 0,
							},
						},
						{
							type = "toggle",
							name = "Rapid Kill",
							value = false,
							extra = {
								type = "keybind",
								toggletype = 0,
							},
							tooltip = "Throws 3 grenades instantly on random enemies.",
						},
						{
							type = "toggle",
							name = "Auto Rapid Kill",
							value = false,
							tooltip = "Throws 3 grenades instantly on random enemies,\nthen respawns to do it again.\nWorks only when Rapid Kill is enabled.",
						},
						{
							type = "toggle",
							name = "Grenade Teleport",
							value = false,
							tooltip = "Sets any spawned grenade's position to the nearest enemy to your cursor and instantly explodes.",
						},
						{
							type = "toggle",
							name = "Crimwalk",
							value = false,
							extra = {
								type = "keybind",
							},
						},
						{
							type = "toggle",
							name = "Teleport",
							value = false,
							extra = {
								type = "keybind",
								toggletype = 0,
							},
							tooltip = "When key pressed you will teleport to the mouse position",
						},
						{
							type = "toggle",
							name = "Disable Crimwalk on Shot",
							value = true,
						},
						{
							type = "toggle",
							name = "Vertical Floor Clip",
							value = false,
							extra = {
								type = "keybind",
								toggletype = 0,
							},
							tooltip = "Teleports you 19 studs under the ground. Must be over glass or non-collidable parts to work. \nHold Alt to go up, and Shift to go forwards.",
						},
						{
							type = "toggle",
							name = "Fake Equip",
							value = false,
							unsafe = true,
						},
						{
							type = "dropbox",
							name = "Fake Slot",
							values = { "Primary", "Secondary", "Melee" },
							value = 1,
						},

						-- {
						-- 	type = "toggle",
						-- 	name = "Noclip",
						-- 	value = false,
						-- 	extra = {
						-- 		type = "keybind",
						-- 		key = nil
						-- 	},
						-- 	unsafe = true,
						-- 	tooltip = "Allows you to noclip through most parts of the map. Must be over glass or non-collidable parts to work."
						-- },
						-- {
						-- 	type = "toggle",
						-- 	name = "Fake Position",
						-- 	value = false,
						-- 	extra = {
						-- 		type = "keybind"
						-- 	},
						-- 	unsafe = true,
						-- 	tooltip = "Fakes your server-side position. Works best when stationary, and allows you to be unhittable."
						-- },
						{
							type = "toggle",
							name = "Lock Player Positions",
							value = false,
							extra = {
								type = "keybind",
							},
							tooltip = "Locks all other players' positions.",
						},
						{
							type = "toggle",
							name = "Skin Changer",
							value = false,
							tooltip = "While this is enabled, all custom skins will apply with the custom settings below.",
							extra = {
								type = "single colorpicker",
								name = "Weapon Skin Color",
								color = { 127, 72, 163, 255 },
							},
						},
						{
							type = "textbox",
							name = "skinchangerTexture",
							text = "6156783684",
						},
						{
							type = "slider",
							name = "Scale X",
							value = 10,
							minvalue = 1,
							maxvalue = 500,
							stradd = "%",
						},
						{
							type = "slider",
							name = "Scale Y",
							value = 10,
							minvalue = 1,
							maxvalue = 500,
							stradd = "%",
						},
						{
							type = "dropbox",
							name = "Skin Material",
							value = 1,
							values = { "Plastic", "Ghost", "Neon", "Foil", "Glass" },
						},
					},
				},
			},
		},
	},
	{
		name = "Settings",
		content = {
			
			{
				name = "Cheat Settings",
				x = menu.columns.left,
				y = menu.columns.right - 185,
				width = menu.columns.width,
				height = 182,
				content = {
					{
						type = "toggle",
						name = "Menu Accent",
						value = false,
						extra = {
							type = "single colorpicker",
							name = "Accent Color",
							color = { 127, 72, 163 },
						},
					},
					{
						type = "toggle",
						name = "Watermark",
						value = true,
					},
					{
						type = "toggle",
						name = "Custom Menu Name",
						value = MenuName and true or false,
					},
					{
						type = "textbox",
						name = "MenuName",
						text = MenuName or "Bitch Bot",
					},
					{
						type = "button",
						name = "Set Clipboard Game ID",
					},
					{
						type = "button",
						name = "Unload Cheat",
						doubleclick = true,
					},
					{
						type = "toggle",
						name = "Allow Unsafe Features",
						value = false,
					},
				},
			},
			{
				name = "Configuration",
				x = menu.columns.right,
				y = menu.columns.left + 50,
				width = menu.columns.width,
				height = 182,
				content = {
					{
						type = "textbox",
						name = "ConfigName",
						file = true,
						text = "",
					},
					{
						type = "dropbox",
						name = "Configs",
						value = 1,
						values = GetConfigs(),
					},
					{
						type = "button",
						name = "Load Config",
						doubleclick = true,
					},
					{
						type = "button",
						name = "Save Config",
						doubleclick = true,
					},
					{
						type = "button",
						name = "Delete Config",
						doubleclick = true,
					},
				},
			},
		},
	},
})



do
	local wm = menu.watermark
	wm.textString = " | " .. "user" .. " | " .. os.date("%b. %d, %Y")
	wm.pos = Vector2.new(50, 9)
	wm.text = {}
	local fulltext = menu.options["Settings"]["Cheat Settings"]["MenuName"][1] .. wm.textString
	wm.width = #fulltext * 7 + 10
	wm.height = 19
	wm.rect = {}

	Draw:FilledRect(
		false,
		wm.pos.x,
		wm.pos.y + 1,
		wm.width,
		2,
		{ menu.mc[1] - 40, menu.mc[2] - 40, menu.mc[3] - 40, 255 },
		wm.rect
	)
	Draw:FilledRect(false, wm.pos.x, wm.pos.y, wm.width, 2, { menu.mc[1], menu.mc[2], menu.mc[3], 255 }, wm.rect)
	Draw:FilledRect(false, wm.pos.x, wm.pos.y + 3, wm.width, wm.height - 5, { 50, 50, 50, 255 }, wm.rect)
	for i = 0, wm.height - 4 do
		Draw:FilledRect(
			false,
			wm.pos.x,
			wm.pos.y + 3 + i,
			wm.width,
			1,
			{ 50 - i * 1.7, 50 - i * 1.7, 50 - i * 1.7, 255 },
			wm.rect
		)
	end
	Draw:OutlinedRect(false, wm.pos.x, wm.pos.y, wm.width, wm.height, { 0, 0, 0, 255 }, wm.rect)
	Draw:OutlinedRect(false, wm.pos.x - 1, wm.pos.y - 1, wm.width + 2, wm.height + 2, { 0, 0, 0, 255 * 0.4 }, wm.rect)
	Draw:OutlinedText(
		fulltext,
		2,
		false,
		wm.pos.x + 5,
		wm.pos.y + 3,
		13,
		false,
		{ 255, 255, 255, 255 },
		{ 0, 0, 0, 255 },
		wm.text
	)
end

--ANCHOR watermak
for k, v in pairs(menu.watermark.rect) do
	v.Visible = true
end

menu.watermark.text[1].Visible = true

local textbox = menu.options["Settings"]["Configuration"]["ConfigName"]
local relconfigs = GetConfigs()
textbox[1] = relconfigs[menu.options["Settings"]["Configuration"]["Configs"][1]]
textbox[4].Text = textbox[1]

menu.load_time = math.floor((tick() - loadstart) * 1000)
CreateNotification(string.format("Done loading the " .. menu.game .. " cheat. (%d ms)", menu.load_time))
CreateNotification("Press DELETE to open and close the menu!")

loadingthing.Visible = false -- i do it this way because otherwise it would fuck up the Draw:UnRender function, it doesnt cause any lag sooooo
if not menu.open then
	menu.fading = true
	menu.fadestart = tick()
end

menu.Initialize = true -- let me freeeeee
-- not lettin u free asshole bitch
-- i meant the program memory, alan...............  fuckyouAlan_iHateYOU from v1
-- im changing all the var names that had typos by me back to what they were now because of this.... enjoy hieght....
-- wutw 

Available Games

096-SCP-Scripts 1-Damage-Every-Second-Scripts 1-Every-Second-Scripts 1-Jump-Every-Second-Scripts 1-Money-Every-Click-Scripts 1-Win-Obby-Scripts 1%-FINISH-Scripts 2-Player-Millionaire-Tycoon-Scripts 2P-Wizzard-Tycoon-Scripts 3-2-1-Blast-Off-Simulator-Scripts 3008-Scripts 50-50-Pick-A-Door-Obby-Scripts 98%-Fail-Impossible-Glass-Bridge-Scripts A-0ne-Piece-Game-Scripts A-Dumb-Day-Scripts A-Dusty-Trip-Scripts A-Hero's-Destiny-Scripts A-One-Piece-Devil-Fruit-Scripts A-One-Piece-Game-Scripts A-Universal-Time-Scripts ABA-Scripts Ability-Wars-Scripts Abyssal-Scripts Admin-Guns-Scripts Admin-House-Scripts Admin-RNG-Scripts Admin-Simulator-Scripts Adopt-And-Raise-A-Baby-Scripts Adopt-And-Raise-A-Cute-Baby-Scripts Adopt-Me-Scripts Aeronautica-Scripts Afk-for-UGC-Scripts Aftons-Family-Diner-Scripts Age-Of-Hero-Scripts Age-Of-Hero's-Scripts Aggressive-Multiplayer-Scripts Aim-Trainer-1-Scripts Aim-Trainer-Scripts Airplane-Simulator-Scripts Airport-Tycoon-Scripts Airsoft-FE-Scripts All-Of-Us-Are-Dead-Scripts All-Star-Tower-Defense-Scripts Allblox-Battles-Scripts Allusions-Scripts Alo-Sanctuary-Scripts Alphabet-Lore-Race-Scripts Alternate-Battlegrounds-Scripts Altitorture-Scripts An-Infinite-Adventure-Scripts an-ocean-trip-Scripts Anarchy-Arena-Scripts Animal-Evolution-Simulator-Scripts Animal-Race-Scripts Animal-Sim-Underwater-Scripts Animal-Simulator-Scripts Anime-Adventure-Scripts Anime-Adventures-Scripts Anime-Artifacts-Simulator-2-Scripts Anime-Battle-Arena-Scripts Anime-Battle-Simulator-Scripts Anime-Battlegrounds-Y-Scripts Anime-Battles-Simulator-Scripts Anime-Card-Battle-Scripts Anime-Catching-Simulator-Scripts Anime-Champions-Scripts Anime-Clash-Scripts Anime-Clicker-Fight-Scripts Anime-Clicker-Simulator-Scripts Anime-Combat-Simulator-Scripts Anime-Crossover-Defense-Scripts Anime-Defenders-Scripts Anime-Defense-Simulator-Scripts Anime-Destiny-Simulator-Scripts Anime-Dimension-Simulator-Scripts Anime-Dungeon-Fighters-Scripts Anime-Enemies-Simulator-Scripts Anime-Energy-Clash-Simulator-Scripts Anime-Evolution-Simulator-Scripts Anime-Fantasy-Scripts Anime-Fight-Next-Generation-Scripts Anime-Fighters-Scripts Anime-Fighters-Simulator-Scripts Anime-Fighting-Simulator-Scripts Anime-Fighting-Simulator-X-Scripts Anime-Fly-Race-Scripts Anime-Force-Simulator-Scripts Anime-Fruit-Simulator-Scripts Anime-Fusion-Tycoon-Scripts Anime-Heroes-Simulator-Scripts Anime-Hunters-Simulator-Scripts Anime-Idle-Simulator-Scripts Anime-Infinity-Simulator-Scripts Anime-Islands-Scripts Anime-Last-Stand-Scripts Anime-League-Scripts Anime-Legends-Scripts Anime-Lost-Simulator-Scripts Anime-Plush-Simulator-Scripts Anime-Power-Evolution-Scripts Anime-Power-Simulator-Scripts Anime-Punch-Simulator-Scripts Anime-Punching-Simulator-Scripts Anime-Racing-Clicker-Scripts Anime-Realms-Scripts Anime-Revolution-Scripts Anime-Revolution-X-Scripts Anime-Rising-Fighting-Scripts Anime-RNG-Rarities-Scripts Anime-RNG-Scripts Anime-Shadow-Scripts Anime-Simulator-Scripts Anime-Slashing-Simulator-Scripts Anime-Smash-Simulator-Scripts Anime-Souls-Simulator-Scripts Anime-Speed-Race-Scripts Anime-Speed-Simulator-Scripts Anime-Spirits-Scripts Anime-Star-Simulator-Scripts Anime-Story-Scripts Anime-Street-Simulator-Scripts Anime-Strike-Simulator-Scripts Anime-Switch-Scripts Anime-Sword-X-Scripts Anime-Swords-Simulator-Scripts Anime-Tales-RELEASE-Scripts Anime-Tales-Simulator-Scripts Anime-Training-RNG-Scripts Anime-Universe-Simulator-Scripts Anime-Vanguards-Scripts Anime-Warriors-Simulator-2-Scripts Anime-Weapon-Simulator-Scripts Anime-Word-Tower-Defense-Scripts AniPhobia-Scripts Aniverse-Scripts Anomic-Scripts Answer-Or-Die-Scripts Ants-Simulator-Scripts Apeirophobia-Scripts Apocalypes-Rising-2-Scripts Apocalypse-Tycoon-Scripts Aqua-Racer-Scripts Arcane-Lineage-Scripts Arcane-Odyssey-Scripts Arm-Wrestle-Simulator-Scripts Arm-Wrestling-Simulator-Scripts Armored-Patrol-Scripts Arsenal-Scripts Ascend-Scripts Assassin-Scripts Astro-Renaissance-Scripts Attack-On-Titan-Evolution-Scripts Attack-on-Titan-Revolution-Scripts Attack-On-Titan-Vengeance-Scripts Aura-Craft-Scripts Aura-Dice-RNG-Scripts Auto-Rap-Battles-Scripts BABY-BOBBYS-DAYCARE-Scripts Backpacking-Scripts Backrooms-GMod-Map-Scripts Backrooms-Morphs-Scripts Backrooms-Race-Clicker-Scripts Bad-Business-Scripts Baddies-Scripts Ball-And-Axe-Scripts Balloon-Simulator-Scripts Balls-Rarity-Factory-Scripts Banana-Eats-Scripts Banning-Simulator-X-Scripts Barry-Prison-Run-Scripts Barry's-Prison-Run-2-Scripts Barrys-Prison-Run-Scripts Baryon-Scripts Base-Battles-Scripts Base-Raiders-Scripts Basically-FNF-Scripts Basketball-Legends-Scripts Bathroom-Tower-Defense-Scripts Bathroom-Tower-Defense-X-Scripts Battle-Pet-TD-Scripts Be-A-Dad-And-Get-Milk-Sim-Scripts be-a-dad-and-get-milk-simulator-Scripts Be-A-Hero-Scripts Be-A-Parkour-Ninja-Scripts Be-a-Pickaxe-Scripts Be-A-Spider-Tycoon-Scripts Be-a-Tornado-Scripts Be-Crushed-By-A-Speeding-Wall-Scripts Be-Dead-Forever-Simulator-Scripts Be-NPC-or-Die-Scripts Beat-Up-Dummies-Simulator-Scripts Became-a-Plane-and-Fly-Scripts Become-a-hacker-to-prove-dad-wrong-tycoon-Scripts become-a-painter-and-prove-mom-wrong-tycoon-Scripts Become-a-Plane-and-Fly-Scripts BedWars-Scripts Bee-Swarm-Simulator-Scripts Bee-Tycoon-Scripts beg-to-escape-poverty-Scripts Bellu-Piece-Scripts Benders-Battle-Arena-Scripts Bendy-and-the-ink-Machine-Scripts Berry-Avenue-RP-Scripts Better-Meme-Scripts Better-Music-Scripts Beyondland-Scripts BIC-DrawPlanet-Scripts Big-Battles-Scripts Big-Blox-Brazil-Scripts Big-Brain-Simulator-Scripts Big-Lifting-Simulator-X-Scripts Big-Paintball-Classic-Scripts BIG-Paintball-Scripts Bike-Race-Clicker-Scripts Billionaire-Empire-Scripts Billionaire-Simulator-2-Scripts Bitcoin-Miner-Scripts Bizarre-Day-Modded-Rebooted-Scripts Black-Adam-Experience-Scripts Black-Grimoire-Odyssey-Scripts Blackhawk-Rescue-Mission-5-Scripts Blackrooms-Race-Clicker-Scripts Blade-Ball-Scripts Blade-Of-Chance-Scripts Blade-Quest-Scripts Blade-Simulator-Scripts Blade-Slayer-Scripts Blade-Throwing-Simulator-Scripts Blades-RNG-Scripts Bleeding-Blades-Scripts Blending-Simulator-2-Scripts Blob-Simulator-Scripts Block-Eaters-Scripts Block-Eating-Simulator-Scripts Block-Mine-Scripts Block-Miner-Simulator-Scripts Block-Survivor-Scripts Blocks-n-Props-Scripts BlockWars-Scripts Blood-And-Iron-Scripts Blox-Fruits-Scripts Blox-Hunt-Scripts Bloxburg-Scripts Bloxy-Bingo-Scripts Blue-Heater-Scripts Blue-Lock-Rivals-Scripts boat-ride-into-a-better-life-Scripts Bomb-Click-Mine-Scripts Bomb-Tag-Survival-Scripts Booga-Booga-REBORN-Scripts Booga-Booga-Scripts Boss-Fighting-Simulator-Scripts BotClash-Simulator-Scripts Bow-Simulator-Scripts Box-Simulator-Scripts BOXING-BETA-Scripts Boxing-Clicker-Simulator-Scripts Boxing-Fighters-Simulator-Scripts Boxing-Friends-Simulator-Scripts Boxing-League-Scripts Boxing-Simulator-Scripts Braveorder-Scripts brawl-2-Scripts Break-In-2-Scripts Break-In-Scripts Break-Wall-Simulator-Scripts Breaking-Point-Scripts Bro-Rescue-Simulator-Scripts Broken-Bones-4-Scripts Broken-Bones-IV-Scripts Brookhaven-RP-Scripts Bubble-Gum-Clicker-Scripts Bubble-Gum-Clicker-X-Scripts Bubble-Gum-Haven-Scripts Bubble-Gum-Legends-Scripts Bubble-Gum-Simulator-Scripts Build-A-Boat-For-Treasure-Scripts Build-a-Boat-with-Blocks-Scripts Build-a-Bridge-Simulator-Scripts Build-and-Battle-Scripts Build-And-Survive-Scripts Build-To-Survive-Scripts Build-to-Survive-the-Booms-Scripts Build-To-Survive-The-Robots-Scripts Bulked-Up-Scripts Bullying-Scripts Burgeria-Tycoon-Scripts Burn-Stuff-And-Get-Rich-Scripts Business-Tycoon-Scripts Busy-Business-Scripts Butterfly-Race-Scripts Button-Infinity-Scripts Button-Simulator-2023-Scripts buy-your-friend-back-tycoon-Scripts Cabin-Crew-Simulator-Scripts Cacophony-Scripts Camping-Scripts Candy-Clicker-Simulator-Scripts Candy-Collecting-Simulator-Scripts Car-Crash-System-Scripts Car-Crash-Test-Scripts Car-Crushers-2-Scripts Car-Dealership-Tycoon-Scripts Car-Factory-Tycoon-Scripts Car-Mechanic-Tycoon-Scripts Car-Repair-Simulator-Scripts Carry-Me-Scripts Carry-People-Simulator-3-Scripts Cars-Car-Driving-Ultimate-Scripts Cart-Car-Ride-Into-GigaNoob-Scripts Cart-Ride-Around-Nothing-Scripts Cart-Ride-Delivery-Service-Scripts Cart-Ride-Into-Rdite-Scripts Cart-Ride-Race-Scripts Cart-Ride-Tycoon-2-Scripts Cart-Ride-Tycoon-Scripts Cartoon-Network-Game-On-Scripts Case-Clicker-Scripts Casual-Stock-Scripts Cat-Piece-Scripts Chain-Scripts Chainsaw-Man-Scripts Chainsaw-Man-X-Scripts Champions-TD-Scripts ChangiVerse-Scripts CHAOS-Scripts Chechnya-1994-Scripts Cheese-Escape-Scripts Cheese-Factory-Tycoon-Scripts Cheese-TD-Scripts Chest-Hero-Simulator-Scripts Chest-Simulator-Scripts ChicBlocko-Scripts Chill-Obby-Scripts Circle-Clash-Scripts Cirque-Du-Soleil-Tycoon-Scripts City-Defense-Tycoon-Scripts City-Life-Scripts Classroom-Simulator-Scripts Claw-Machine-Master-Scripts Click-To-Build-Simulator-Scripts Clicker-Fighting-Simulator-Scripts Clicker-League-Scripts Clicker-Madness-Scripts Clicker-Mining-Simulator Clicker-Mining-Simulator-Scripts Clicker-Party-Simulator-Scripts Clicker-Run-Scripts Clicker-Simulator-Scripts Clicker-Wars-Simulator-Scripts Clicking-Simulator-Scripts Climb-1000-Stairs-Scripts Climb-2000-Stairs-to-VIP-Obby-Scripts Climb-Race-Simulator-Scripts Climb-Rocks-to-VIP-Obby-Scripts Climb-Wall-For-VIP-Obby-Scripts Clip-It-Scripts Clone-Game-Scripts Clone-Kingdom-Tycoon Clone-Kingdom-Tycoon-Scripts Clone-Run-Scripts Clone-Tycoon-2-Scripts Close-your-Eyes-Scripts Closest-Build-Wins-Scripts Clover-City-Scripts Coal-Miner-Tycoon-2-Scripts Cobra-Kai-Karate-Scripts Coffee-Tsunami-Scripts Coins-Hero-Simulator-Scripts Collect-All-Pets-Scripts Collect-Stars-for-UGC-Scripts Colony-Survival-Scripts Color-Block-Scripts Color-Chairs-Scripts Color-Or-Die-Scripts Color-Race-Scripts Color-Run-Scripts Combat-Warriors-Scripts Contact-A-888-Scripts Control-Army-Scripts Cook-Burgers-but-with-100-players-Scripts Cook-Burgers-Scripts Cornerstone-Arcade-Scripts Corsair-Land-Scripts Coruscant-RP-Scripts Counter-Blox-Reimagined-Scripts Counter-Blox-Scripts Country-Collectors-Scripts Countryball-World-Scripts Craft-Blox-Scripts Craft-Factory-Scripts Craftwars-Scripts Crate-Opening-Incremental-Scripts Crawl-Scripts CRAZY-Scripts Creatures-Of-Sonaria-Scripts Creeper-Chaos-Scripts Creeper-Survival-Scripts Crewmates-Scripts Criminal-Tycoon-Scripts Criminality-Scripts Crimson-Shadow-Scripts Crocs-World-Minigames-Scripts Crop-Farming-Incremental-Scripts Cross-Glass-Bridge-to-Rich-Scripts CrossRoad-Ragdoll-Scripts Crusaders-Heaven-Scripts Crying-Simulator-Scripts Crypto-Tycoon-Scripts Cube-Combination-Scripts Cursed-Arena-Scripts Cursed-Islands-Scripts Custom-Duels-Scripts Custom-PC-Tycoon-Scripts D-DAY-Scripts Da-Backrooms-Scripts Da-Hood-Aim-Trainer-Scripts Da-Hood-Scripts Da-Strike-Scripts Dam-Tycoon-Scripts Dandys-World-Scripts Dark-Life-Scripts Daybreak-Scripts Daycare-Center-Scripts DBZ-Final-Stand-Scripts Dead-Ball-Scripts Deadlift-Simulator-Scripts Deadline-Scripts Deadly-Sins-Retribution-Scripts Dealership-Tycoon-Cars-Scripts Death-Academy-Online-Scripts Death-Ball-Scripts Decaying-Winter-Scripts Deflect-Scripts Dem's-Upgrade-Tree-Scripts Demon-Fall-Scripts Demon-Piece-Scripts Demon-Slayer-Midnight-Sun-Scripts Demon-Soul-Simulator-Scripts Demon-Warriors-Scripts Demonfall-Scripts Destroy-And-Conquer-Scripts Destroy-The-Neighborhood-Scripts Destroying-Walls-Simulator-Scripts Destruction-Game-Scripts Destruction-Simulator-Scripts Devas-of-Creation-Scripts di-makatulog-Scripts Dig-To-China-Scripts dingus-Scripts Dino-Island-Tycoon-Scripts Dino-Tycoon-Scripts Dinosaur-Simulator-Scripts Domino-Playground-Scripts Dominus-Lifting-Simulator-Scripts DONT-GET-SNIFFED-Scripts Dont-Press-Bary-Prison-Run-Scripts DONT-SNIFF-IT-Scripts Dont-Stop-Obby-Scripts Doodle-Word-Scripts Doomspire-Brickbattle-Scripts DOORS-Race-Clicker-Scripts Doors-Race-Script Doors-Race-Scripts Doors-Scripts Doors-Story-Scripts Double-Down-Scripts Double-Jump-Obby-Scripts Dragon-Adventures-Scripts Dragon-Ball-Final-Remastered-Scripts Dragon-Ball-Rage-Scripts Dragon-Ball-Simulator-Scripts Dragon-Ball-Tycoon-Scripts Dragon-Blox-Scripts Dragon-Race-Scripts Dragon-Soul-Hunter-Scripts Dragon-Soul-Scripts Dragon-Warrior-Simulator-Scripts Dragonball-Ultimate-Clash-2-Scripts Draw-Obby-Scripts Dress-to-Impress-Scripts Drift-Paradise-Scripts Drift-RNG-Scripts Drive-Cars-Down-A-Hill-Scripts Drive-World-Scripts Driving-Empire-Scripts Driving-Simulator-Scripts Duck-Army-Scripts Dungeon-Quest-Scripts Dunking-Race-Scripts Dunking-Simulator-Scripts Easy-Color-Switch-Obby-Scripts Easy-Fun-Obby-Scripts EASY-Glass-Bridge-Scripts Easy-Grow-Obby-Scripts Easy-Jump-Scripts Easy-Obby-Scripts Easy-Pet-Obby-Script Easy-Race-Clicker-Scripts Easy-Stud-Jump-Obby-Scripts Easy-Stud-Jumps-Obby-Scripts Easy-Stud-Walls-Jump-Obby-Scripts Eat-Blobs-Simulator-Scripts Eat-Same-Color-Food-Scripts eat-sand-Scripts Eat-Slime-to-Grow-Huge-Scripts Eat-Slimes-to-Grow-Huge-Scripts Eat-the-World-Scripts Eating-Battle-Simulator-Scripts Eating-Simulator-Scripts Eclipsis-Scripts Edward-The-Man-Eating-Train-Scripts Egg-Empire-Scripts Egg-Tree-Incremental-Scripts EGOIST-Scripts Electric-State-DarkRP-Scripts Elemental-Dungeon-Scripts Elemental-Powers-Tycoon-Scripts Elite-Easy-Obby-Scripts Emergency-Hamburg-Scripts Emergency-Response-Scripts Encounters-Scripts Endless-Parkour-Scripts Energy-Assault-Scripts Enigmatic-Trollverse-Scripts Entry-Point-Scripts Epic-Army-Battles-Scripts Epic-Minigames-Scripts Era-Of-Althea-Scripts ESCAPE-IPAD-KID-Scripts Escape-Papa-Pizza's-Pizzeria-Scripts Escape-Papa-Pizzas-Pizzeria-Scripts Escape-Room-Scripts Escape-Running-Head-Scripts Escape-School-Obby-Scripts Escape-The-Dungeon-Obby-Scripts Escape-The-World-Obby-Scripts Eternal-Craftwars-Scripts Eternal-Piece-Scripts Evade-Scripts Event-RNG-Scripts Everest-Climbing-Roleplay-Scripts Every-Click-Get-1-Jump-Scripts Every-One-Second-Get-1-Size-Scripts Every-Second-1-Ki-In-DBZ-Scripts Every-Second-Get-1-Scripts Every-Second-Stud-Jumps-Obby-Scripts Every-Second-You-Get-1-Health-Scripts Every-Second-You-Get-1-HP-Scripts Every-Second-You-Get-1-Jump-Power-Scripts Every-Second-You-Get-1-Muscle-Scripts Every-Second-You-Get-1-Points-Scripts Every-Second-You-Get-1-Punch-Scripts Every-Second-You-Get-1-Scripts Every-Second-You-Get-1-Speed-But-Youre-On-a-Bike-Scripts Every-Second-You-Get-1-WalkSpeed-Scripts Every-Second-You-Get-Richer-Scripts Every-Second-You-Get-Smarter-Scripts Every-Second-You-Get+1-Muscle-Scripts Everyday-Car-Driving-Scripts Everything-Upgrade-Tree-Scripts Eviction-Notice-Scripts Evolution-Simulator-Scripts Executors Expedition-Antarctica-Scripts Explosive-Wall-Simulator-Scripts Ez-Dev-Scripts Fabled-Legacy-Scripts Facility-Lockdown-Scripts Facility-Of-Redemption-Scripts Faction-Defense-Tycoon-Scripts Factory-RNG-Scripts Fall-Of-Hell-Scripts Fantastic-Frontier Fantastic-Frontier-Scripts Farm-Factory-Tycoon-Scripts Farm-for-Fun-Scripts Fart-In-A-Box-Scripts Fast-Lifting-Simulator-Scripts Fat-Race-Clicker-Scripts Fat-Race-Scripts Fat-Roll-Race-Scripts Fat-Simulator-Scripts feed-the-noob-like-crazy-Scripts Feed-The-Noob-Tycoon-Scripts FEEDING-TRASH-TO-RICH-PEOPLE-TYCOON-Scripts Feet-Simulator-Scripts Fencing-Scripts Festival-Tycoon-Scripts Field-Trip-Z-Scripts FIFA-WORLD-Scripts Find-the-Auras-Scripts Find-the-Blippis-Scripts Find-the-Cars-Scripts Find-The-Family-Guy-Scripts Find-The-Floppa-Morphs-Scripts Find-the-Foods-Scripts Find-the-Footballers-Scripts Find-the-Ghosts-Scripts Find-The-Markers-Scripts Find-The-Pau-Scripts Find-The-Plugs-Scripts Find-The-Simpsons-Scripts Find-The-Sonic-Morphs-Scripts Fire-Force-Online-Scripts Fireball-Punching-Simulator-Scripts Firework-Simulator-Scripts Fisch-Scripts Fish-A-Friend-Scripts Fishing-Frenzy-Simulator-Scripts Fishing-Simulator-Scripts FiveDuels-Scripts Flag-Wars-Scripts Flappy-Bird-Race-Scripts Flappy-Clicker-Scripts Flee-The-Facility-Scripts Flex-Fight-Scripts Flex-Your-Account-Age-Scripts Fling-Champions-Scripts Fling-Things-And-People-Scripts Flood-Escape-2-Scripts Floor-2-but-you-can-Spawn-Entitys-Scripts Fly-Race-Scripts Flying-Boot-Race-Simulator-Scripts Fnaf-Five-Nights-Simulator-Scripts FNAF-Scripts Foblox-Scripts Football-Duels-Scripts Football-Fusion-2-Scripts Football-RNG-Scripts Formula-Apex-Scripts Fortblox-Scripts Framed-Scripts FREE-ADMIN-Scripts Free-Boombox-Scripts Free-Hatchers-Scripts Free-Owner-Admin-Scripts Friday-Night-Bloxxin-Scripts Frog-Simulator-Scripts Froggie-Pond-Tycoon-Scripts FRONTLINES-Scripts Fruit-Battlegrounds-Scripts Fruit-Seas-Scripts Fruit-Warriors-Scripts Fruits-Tower-Defense-Scripts Fundamental-Paper-Education-Scripts Funky-Friday-Scripts Furry-Infection-Scripts Games-Unite-Testing-Place-Scripts GARENA-FREE-FIRE-MAX-Scripts Gaster-Blaster-Battles-Scripts Gem-Simulator-Scripts Genei-Fight-Simulator-Scripts generic-roleplay-gaem-Scripts Get-Fat-And-Roll-Race-Scripts get-hit-by-a-car-simulator-Scripts Get-Huge-Simulator-Scripts Get-Richer-Every-Second-Scripts Get-Roblox-Escape-for-Free-Scripts Get-To-The-Top-Scripts Giant-Simulator-Scripts Giant-Survival-Scripts Giga-Mansion-Tycoon-Scripts Givenchy-Beauty-House-Scripts Glide-Race-Scripts Glitch-Obby-Scripts Glory-Kill-Testing-Scripts Go-Fishing-Scripts Go-Kart-Race-Simulator-Scripts Go-to-Jail-and-make-Friends-Scripts Go-To-Jail-Make-Friends-To-Escape-Scripts Goal-Battles-Scripts Goal-Clicker-Scripts Goal-Kick-Simulator-Scripts GOD-TYCOON-Scripts Gods-of-Glory-Scripts Gods-Will-Scripts Gojo-Vs-Toji-Ability-Scripts Good-Or-Bad-Obby-Scripts Got-Eaten-Scripts Grace-Scripts Grand-Piece-Online-Scripts Grand-Piece-Scripts Grand-School-Escape-Scripts Granny-Retro-Scripts Granny-Scripts GREAT-SCHOOL-BREAKOUT-Scripts Great-Sword-Simulator-Scripts Green-Light-Red-Light-Scripts Greenville-Scripts Grimace-Race-Scripts GRIMACE-Scripts Grimoire-Era-Scripts Grimoires-Era-Scripts Ground-War-Scripts GRUMPY-GRAN-Scripts Guerra-De-Torres-Scripts Guess-the-drawing-Scripts Gumball-Factory-Tycoon-Scripts Gun-Ball-Scripts Gun-Fight-Arena-Scripts Gun-Ground-FFA-Scripts Gun-Simulator-Scripts Gunfight-Arena-Scripts Gym-League-Scripts Gym-Legends-Scripts Gym-Tycoon-Scripts Hacker-Simulator-Scripts Hades-RNG-Scripts Halloween-Bobas-Scripts Happy-Land-Scripts Hard-Time-Scripts Haunted-Town-Scripts Head-Fly-Race-Scripts Head-Punch-Simulator-Scripts Heaven-Stand-Scripts Heist-Tycoon-Scripts Heroes-Battleground-Scripts Heroes-Battlegrounds-Scripts Hide-And-Seek-Extreme-Scripts Hide-And-Seek-Scripts Hide-And-Sneak-Scripts Hide-or-Die-Scripts High-Rollers-Casino-Scripts High-School-Life-Scripts Higher-Jump-Every-Second-Scripts Highway-Rush-Scripts Hold-People-The-Game-Scripts Hole-Fall-Simulator-Scripts Home-Run-Simulator-Scripts Homework-Lifting-Simulator-Scripts Homework-Printing-Simulator-Scripts Homework-Shedding-Simulator-Scripts homework-shredding-simulator-Scripts Hood-Arena-Scripts Hood-Customs-Scripts Hood-Duels-Scripts Hood-Modded-Scripts Hood-Wars-Scripts Hoop-Simulator-Scripts Hoops-Scripts Hoopz-Scripts Horrific-Housing-Scripts Horror-RNG-Scripts Horrors-RNG-Scripts Horse-Race-Simulator-Scripts Horse-Racing-Club-Scripts Hospital-Tycoon-Scripts Hotel-Elephant-Scripts Hotel-Scripts HOURS-Scripts How-Far-Can-You-Backflip-Scripts How-Far-Can-You-Fly-Scripts How-Far-Can-You-Slide-Scripts How-Far-Can-You-Throw-Scripts Human-Canon-Scripts Hungry-Pig-Scripts Hunter-X-Athena-Scripts Hyper-Realistic-CSGO-Guns-Scripts Idle-Heroes-Simulator-Scripts IHeartLand-Music-Tycoon-Scripts IKEA-the-Co-worker-Scripts Im-The-King-Of-School-Scripts Imposible-Ladder-Climb-Obby-Scripts Impossible-Glass-Bridge-Obby-Scripts Impossible-Glass-Bridge-Scripts Impossible-Ladder-Climb-Obby-Scripts Impossible-Obby-Scripts Impossible-Squid-Game-Glass-Bridge-Scripts In-Area-51-Scripts In-Plain-Sight-2-Scripts Inazuma-Rebirth-Scripts Incremental-Adventures-Scripts Infectious-Smile-Scripts Infinite-Item-Simulator-Scripts Infinite-Rarities-Scripts Infinite-Tower-Tycoon-Scripts Insane-Button-Simulator-Scripts Insane-Elevator-Scripts Interminable-Rooms-Scripts Invade-Scripts InVisions-Web-Verse-Scripts Iron-Man-Simulator-2-Scripts Islands-Scripts Isle-Scripts Item-Asylum-Scripts Jailbreak-Scripts Jenga-Scripts Jujutsu-Kaizen-RP-Scripts Jujutsu-Legacy-Scripts Jujutsu-Scripts Jujutsu-Shenanigans-Scripts Jukes-Tower-of-Hell-Scripts Jules-RNG-Scripts Jump-Clicker-Scripts Jump-Higher-Per-Second-Scripts Jump-Race-Scripts Jumping-Simulator-Scripts Kaiju-Paradise-Experimental-Scripts Kaiju-Paradise-Scripts Kaizen-Battlegrounds-Scripts Kaizen-Scripts Kamehameha-Simulator-Scripts Karate-Scripts Karen-Simulator-Scripts Kengun-OnlineScripts Keys-Scripts Kick-a-Friend-Scripts Kick-Off-Scripts Kickball-Scripts Kill-Monster-Simulator-Scripts Kill-Monsters-to-Save-Princess-Scripts Kill-To-Save-Anime-Girl-Scripts Kill-To-Save-Anime-Girl-Simulator-Scripts Killstreak-Chaos-Scripts King-Legacy-Scripts King-of-Hill-Scripts King-of-the-Cannon-Scripts King-of-The-Hill-Scripts Kingdom-Life-Scripts Kitty-Scripts KJ-Arena-Scripts Knife-Ability-Test-Scripts Knife-Simulator-Scripts Knife-Strife-Scripts Knockout-Party-Scripts Knockout-Simulator-Scripts Kohaú-Hibachi-Restaurant-Scripts Korrupt-Zombies-Scripts Kram-Life-Scripts Krush-PvP-Scripts Last-to-Leave-Scripts Last-to-Score-Loses-Scripts Launch-Into-Space-Simulator-Scripts Legend-Of-Heroes-Simulator-Scripts Legend-of-Speed-Scripts Legend-Piece-Scripts Legendary-Tapping-Scripts Legends-Battlegrounds-Scripts Legends-Of-Speed-Scripts Legends-Re-Written-Scripts Lethal-Tower-Defense-Scripts Lets-Party-Gear-Testing-Edition-Scripts Liberty-Island-Tycoon-Scripts Life-In-Prison-Scripts Life-Sentence-Scripts Lift-Legends-Simulator-Scripts Lifting-Legends-Simulator-Scripts Lifting-Simulator-Scripts Lifting-Titans-Scripts Lightsaber-Arena-Scripts Like-or-Pass-Scripts Limited-Jumps-Scripts Limited-Time-Scripts Limitless-Purple-Scripts Little-World-Scripts live-in-a-back-alley-Simulator-Scripts Livetopia-Scripts Lobotomy-Clicker-Scripts Longest-Answer-Win-Scripts Lookout-Battle-Scripts Loomain-Legacy-Scripts Loooptopia-Scripts Lost-Kingdom-Tycoon-Scripts Lost-Rooms-Scripts Lost-Souls-Scripts Lucky-Battlegrounds-Scripts Lucky-Blocks-Battlegrounds-Scripts Lumber-Legends-Simulator-Scripts Lumber-Tycoon-2-Scripts Lumberjack-Simulator-Scripts Mad-City-Chapter-2-Scripts Mad-City-Scripts Mage-Tycoon-Scripts Magic-Champions-Scripts Magic-Clicker-Scripts Magic-RNG-Scripts Magic-Tappers-Scripts Magnet-Simulator-2-Scripts Magnet-Simulator-Scripts Magnetic-Simulator-Scripts Make-A-Cake-Scripts Make-and-Sell-Cars-Scripts Make-It-Louder-Scripts Make-Roblox-Games-Scripts make-tixtoks-to-escape-school-tycoon-Scripts making-memes-in-your-basement-at-3-AM-tycoon-Scripts making-scam-calls-to-save-your-bf-Scripts Mall-Tycoon-Scripts Mansion-Scripts Maple-Hospital-Scripts Marble-Rail-Scripts Mars-Base-Tycoon-Scripts Marvellous-Playground-Scripts Masters-Difficulty-Chart-Obby-Scripts Math-Answer-or-Die-Scripts Math-Boxing-Scripts Math-Obby-Scripts Math-Race-for-Robox-Scripts Math-Wall-Simulator-Scripts Max-Mara-Coats-Adventure-Scripts Max-Speed-Scripts Mechanical-Ascension-X-Scripts Meepcity-Scripts Mega-Easy-Obby-Scripts Mega-Fun-Obby-Scripts Mega-Hide-and-Seek-Scripts Mega-Mansion-Tycoon-Scripts Mega-Marble-Run-Pit-Scripts Mega-Parkour-Obby-Scripts Meme-Merger-Scripts Meme-Race-Scripts Meme-Sea-Scripts Merge-Droppers-Scripts Merge-for-Diamonds-Scripts Merge-Simulator-Scripts Merge-Toy-Scripts Mic-Up-Scripts Michael's-Zombies-Scripts Michaels-Zombies-Scripts Military-Facility-Tycoon-2-Scripts Military-Simulator-Scripts Military-Tycoon-Scripts Military-War-Tycoon-Scripts Milk-Tycoon-Scripts Millionaire-Empire-Tycoon-Scripts Mine-Blocks-Simulator-Scripts Mine-Racer-Scripts Miner-Merge-Tycoon-Scripts Minercave-Scripts MinerCrafts-Scripts Miners-Haven-Scripts MinerShaft-Scripts Mining-Clicker-Simulator-Scripts Mining-Factory-Tycoon-Scripts Mining-Simulator-2-Scripts Minion-Simulator-Scripts Mission-Mars-Scripts MM2-Scripts Mo's-Academy-Scripts Mob-Punch-Simulator-Scripts Mobile-Executors Mobile-Scripts Mobile-Sword-Fight-Scripts Money-Clicker-Inc-Scripts Money-Clicker-Incremental-Scripts Money-Clicker-Simulator-Scripts Money-Grab-Simulator-Scripts Money-Roll-Simulator-Scripts Money-Simulator-X-Scripts Money-Simulator-Z-Scripts Money-Tycoon-Scripts Monkey-Tycoon-Scripts Monster-Battle-Simulator-Scripts Monster-Hunt-Simulator-Scripts Monster-Wall-Simulator-Scripts Motel-Simulator-Scripts Motorcycle-Mayhem-Scripts Motorcycle-Race-Scripts Mount-Of-The-Gods-Scripts Mount-RNG-Scripts Mow-My-Lawn-2-Scripts Mow-The-Lawn-Scripts Mow-The-Lown-Scripts Mowing-Simulator-Scripts Murder-Mystery-2-Scripts Murder-Party-Scripts Murder-Vs-Baby-Scripts Murderers-VS-Sheriffs-Duels-Scripts Murderers-Vs-Sheriffs-scripts Murim-Cultivation-Scripts Muscle-Legends-Scripts Muscle-Race-Clicker-Scripts Mushroom-Race-Scripts My-Avatar-Shop-Scripts My-Hello-Kitty-Cafe-Scripts My-Hero-Mania-Scripts My-Hood-Scripts My-Prison-Scripts My-Restaurant-Scripts My-School-Tycoon-Scripts Mystery-Clickers-Scripts Naruto-But-Every-Second-1-Chakra-Scripts Nation-Roleplay-2-Scripts Natural-Disaster-Survival-Scripts Natural-Disaster-Survival-with-Free-Items-Scripts Naval-Warfare-Scripts Ncrafts-Hangout-Scripts NCT-127-World-Scripts Nen-Fighting-Simulator-Scripts Neo-Soccer-League-Scripts Neo-Warfare-X-Scripts Never-Ending-Cart-Ride-Scripts Next-Doors-Scripts NGU CLICKER SIMULATOR-Scripts Night-Light-Scripts Nightlight-Scripts Ninja-Legends-2-Scripts Ninja-Legends-Scripts Ninja-Storm-Simulator-Scripts Ninja-Tycoon-Scripts No-Jumping-Difficulty-Chart-Obby-Scripts No-Jumping-Obby-for-Admin-Scripts NO-SCOPE-ARCADE-Scripts No-Scope-Sniping-Scripts NO-STOP-Obby-Scripts Noob-Army-Tycoon-1-Scripts Northside-Chicago-Scripts Notoriety-Scripts Nuclear-Blast-Testing-Facility-Scripts Nuclear-Bomb-Testing-Facility-RP-Scripts Nuke-Race-Simulator-Scripts Nuke-Simulator-Scripts Nuke-Site-Scripts Oaklands-Scripts Obby-But-You-Are-Color-Blind-Scripts Obby-But-You-Can't-Jump-Scripts Obby-But-You-Cant-Jump-Scripts Obby-but-you-have-a-long-Nose-Scripts Obby-But-You're-A-Ball-Scripts Obby-But-You're-A-CUBE-Scripts Obby-but-you're-a-Pop-Scripts Obby-But-Your-On-A-Bike-Scripts Obby-but-youre-a-bird-Scripts obby-but-youre-a-poop-Scripts Obby-But-Youre-A-Potato-Scripts Obby-But-Youre-On-A-Bike-Scripts Obby-But-Youre-on-a-Jetpack-Scripts OFF-Tycoon-Scripts Official-Russian-Alphabet-Lore-RP-Scripts Ohio-Scripts Oil-Warfare-Tycoon-Scripts Old-A-Bizarre-Day-Scripts oMega-Obby-675-Stages-Scripts oMega-Obby-700-Obby-Scripts Omega-Obby-Scripts Omini-X-Scripts One-Blocks-Every-Second-Scripts One-Fruit-Scripts One-Fruit-Simulator-Scripts One-Piece-Battles-Scripts One-Piece-Legendary-Scripts One-Punch-Fighters-Simulator-Scripts One-Punch-Hero-Scripts One-Punch-Ultimate-Scripts Online-Business-Simulator-2-Scripts Only-Up-Blox-Scripts Onslaught-Public-Dev-Server-Scripts OOF-Tycoon-Scripts OP-Battleground-Scripts OP-Battlegrounds-Scripts OP-NINJA-SIMULATOR-Scripts Operations-Siege-Scripts Ore-Miners-Scripts Outlaster-Scripts Overhead-Press-Simulator-Scripts Paintball-Wars-Scripts Palm-Slap-Friends-Simulator-Scripts Pancakes-Wall-Hop-Difficulty-Scripts Panik-2-Scripts Parkour-Scripts Pass-The-Bomb-Scripts Pastriez-Bakery-Cafe-Scripts Paths-To-Immortality-Scripts Periastron-Stars-Scripts Peroxide-Scripts Pet-Catchers-Scripts Pet-Clicker-Simulator-Reborn-Scripts Pet-Clicking-Simulator-Scripts Pet-Crafting-Simulator-Scripts Pet-Legends-2-Scripts Pet-Merge-Scripts Pet-Mining-Simulator-Scripts Pet-Quest-Scripts Pet-Rift-Scripts Pet-Simulator-2-Scripts Pet-Simulator-99-Scripts Pet-Simulator-X-Scripts Pet-Trading-Card-Simulator-Scripts Pet-Zoo-Tycoon-Scripts Pets-Go-Scripts Pets-Story-Scripts Phantom-Ball-Scripts Phantom-Forces-Scripts Phenom-Scripts Piano-Keyboard-Scripts Pick-A-Side-Scripts Pick-One-Scripts Pickaxe-Mining-Simulator-Scripts Pickaxe-Simulator-Scripts Piece-Adventures-Simulator-Scripts Piece-X-Tycoon-Scripts Pig-64-Scripts Piggy-Scripts Pilfering-Pirates-Scripts Pilgrammed-Scripts Pillow-Fight-Simulator-Scripts Pinewood-Computer-Core-Scripts Pirate-Legacy-Scripts Pirate's-Dream-Scripts Pistol-1V1-Scripts Pixel-Incremental-Scripts Pixel-Piece-Scripts Pixel-Prisons-Scripts Pixel-Tower-Defense-Scripts Pizzeria-Tycoon-2-Scripts Pizzeria-Tycoon-Scripts Placer-Scripts Plane-Crash-Physics-2-Scripts Plane-Crazy-Scripts Plane-Simulator-Scripts Planet-Crash-Physics-Scripts Planet-Destroyers-Scripts Planet-Oof-Scripts Plank-it-Scripts Plates-Of-Fate-Remastered-Scripts Players-RNG-Scripts PLAYPRINTS-World-Scripts PLEASE-DONATE-Scripts Plinko-RNG-Scripts Pls-Donate-Scripts PLS-STEAL-Scripts Plus-1-Blocks-Every-Second-Scripts Plus-1-Damage-Every-Second-Scripts Plus-1-Fat-Every-Second-Scripts Plus-1-Jump-Race-Scripts Plus-1-Per-Second-Scripts Plus1-Blocks-Every-Second-Scripts Pogo-Simulator-Scripts Pooping-Simulator-Scripts Pop-Bubbles-For-UGC-Scripts Pop-Bubbles-Script Pop-It-Trading-Scripts Popping-Simulator-Scripts Power-Punch-Simulator-Scripts Power-Slap-Simulator-Scripts Power-Wash-Tycoon-Scripts Pressure-Scripts Pressure-Wash-Simulator-Scripts Prildas-Track-And-Field-Scripts Prison-Adventure-Scripts Prison-Life-Scripts Prison-Race-Clicker-Scripts Pro-Piece-PRO-MAX-Scripts Project-Baki-2-Scripts Project-JoJo-Scripts Project-Lazarus-Scripts Project-Menacing-Scripts Project-Mugetsu-Scripts Project-New-World-Scripts Project-Palaro-Scripts Project-Playtime-Multiplayer-Scripts Project-Slayers-Scripts Project-Smash-Scripts Project-XL-Scripts Project-XXL-Scripts ProTube-Race-Clicker-Scripts Public-Bathroom-Simulator-Scripts Pull-A-Sword-Scripts Punch-A-Brick-Wall-Simulator-Scripts Punch-Anime-Simulator-Scripts Punch-Dragon-Simulator-Scripts Punch-Hole-Simulator-Scripts Punch-Monster-Simulator-Scripts Punch-Monsters-Scripts Punch-Simulator-Scripts Punch-tha-Santa-Scripts Punch-Wall-Simulator-Scripts Puppy-Tycoon-Scripts Push-a-Car-Scripts Push-Dummies-Down-The-Sparta-Hole-Scripts Push-people-of-a-train-Scripts Push-People-Off-a-Train-Scripts Push-Simulator-Scripts Push-Up-Battles-Scripts Push-Up-Simulator-Scripts Push-Up-Training-Simulator-Scripts Race-A-Friend-Scripts Race-Car-Clicker-Scripts Race-Clicker-Scripts Race-Simulator-Scripts Racing-Rocket-Scripts Ragdoll-Clicker-Scripts Ragdoll-Engine-Scripts Ragdoll-on-skates-Obby-Scripts Rainbow-Friends-2-Scripts Rainbow-Friends-Scripts Raise-A-Floppa-2-Scripts Raise-A-Monke-Scripts Raise-A-Peter-Scripts Raise-A-Pochita-Scripts Raise-A-Sonic-Scripts Raise-a-Yipee-Scripts Raise-A-Yippee-Scripts Raise-Kenny-Scripts Ramen-Simulator-Scripts Ramp-Jumping-On-Sports-Cars-Scripts Ramp-Jumping-Scripts Randomizer-Scripts Rank-Simulator-Scripts Rank-Simulator-X-Scripts Rarity-Factory-Tycoon-Scripts Rat-Washing-Tycoon-Scripts Rate-My-Avatar-Scripts Rays-Mod-Scripts RB-Battles-Scripts RB-World-4-Scripts RE-XL-Scripts Realistic-Gun-Shooter-Scripts REALISTIC-HOOD-Scripts Realistic-Mansion-Tycoon-Scripts Realistic-War-Scripts Realm-Rampage-Scripts Realms-Simulator-Scripts Reaper-2-Scripts Reaper-Clicker-Scripts Rebirth-Champions-X-Scripts Rebirths-Master-X-Scripts Reborn-as-Swordman-Scripts Red-Light-Green-Light-Scripts Red-VS-Blue-Plane-Wars-Scripts RedBox-Scripts Redcliff-City-RP-Scripts Redwood-Prison-Scripts Refinery-Caves-Scripts reroll.gg-Scripts Residence-Massacre-Scripts Resort-Tycoon-Scripts Restaurant-Tycoon-2-Scripts Retail-Tycoon-2-Scripts Rich-Clicker-Simulator-Scripts Ride-a-Box-Down-a-Slide-Scripts Ride-a-Cart-Simulator-Scripts Ride-Friend-Race-Scripts Ridgeway Concepts-Scripts Rise-Of-Nations-Scripts Rise-to-Royalty-Scripts Risky-Haul-Scripts Rivals-Scripts RNG-Fights-Scripts RNG-Odyssey-Scripts RNG-Rollers-Scripts Ro-Fruit-Scripts Ro-Ghoul-Scripts RO-Wizard-Scripts Roach-Scripts Road-To-Gramby's-Scripts Rob-a-Convenience-Store-Simulator-Scripts Rob-A-Jewellery-Store-Scripts Rob-the-Place-Scripts Robbing-Tycoon-Scripts Robending-Online-Scripts Roblox-But-You-Get-Jump-Scripts Roblox-But-You-Get-Smarter-Scripts Roblox-Cookie-Clicker-Scripts Roblox-Is-Unbreakable-Scripts Roblox-Titanic-Scripts RoBowling-Scripts RoCitizens-Scripts Rock-Fruit-Scripts Rocket-Wings-Simulator-Scripts Rocks-Scripts Rogue-Demon-Scripts Rogue-Nightmare-Scripts Rogue-Ninja-Scripts Ronald-Scripts Rooms-Scripts RoStreets-Scripts RoTube-Life-Scripts RoVille-Scripts Royal-High-Scripts Royalloween-Scripts Running-From-The-Internet-Scripts Running-Head-Scripts Running-Simulator-Scripts RunStar-Simulator-Scripts Rush-Point-Scripts Saber-Simulator-Scripts Sail-The-World-Simulator-Scripts Saitama-Battleground-Scripts Sakura Piece-Scripts Sakura-Piece-Scripts Sakura-Stand-Scripts Sandhurts-Military-Academy-Scripts Sans-Multiversal-Battles-Scripts Sans-Simulator-X-Scripts Save-Your-Princess-Scripts Scary-Hide-and-Seek-Scripts School-Quest-Scripts School-Simulator-Scripts SCP-3008-Scripts SCP-Games-and-SCP-Monster-Scripts SCP-Roleplay-Scripts SCP-Stranded-Scripts SCP-Warfare-Tycoon-Scripts Script Scripts Scythe-Simulator-Scripts Sea-Piece-2-Scripts Second-Piece-Scripts Sell-Poop-Tycoon-Scripts send-memes-to-your-enemies-to-destroy-them-tycoon-Scripts Server-Simulator-Scripts SHADOVIS-RPG-Scripts Shadow-Boxing-Battles-Scripts SharkBite-1-Scripts SharkBite-2-Scripts Sheep-Farm-Scripts Sheep-Tycoon-Scripts SHEIN-x-Klarna-Wonderland-Scripts ShimmerVille-Scripts Shindo-Life-Scripts Shinobi-Life-2-Scripts Shipping-Lanes-Scripts Shockwave-Racing-Scripts Shoot-a-Friend-Scripts Shoot-Out-Scripts Shoot-Skibi-Toilet-Simulator-Scripts Shoot-Wall-Simulator-Scripts Shopping-Wars-Scripts Shortest-Answer-Wins-Scripts Shovelwares-Brain-Game-Scripts Shrek-In-The-Backrooms-Scripts Shuriken-Throwing-Simulator-Scripts Sigma-Simulator-Scripts Simple-Incremental-Scripts SimToLife-Scripts Sinking-Ship-Roblox-Britannic-Scripts SIREN-COPS-PRISON-Scripts Siren-Head-Rebirth-Scripts Sisyphus-Simulator-Scripts Site-Roleplay-Scripts Skateboard-Obby-Scripts Ski-Race-Scripts Skibi-Battle-Simulator-Scripts Skibi-Defense-Scripts Skibi-Fight-Simulator-Scripts Skibi-Toilet-Game-Scripts skibi-toilet-Scripts Skibi-Toilet-War-Scripts Skibi-Toilets-Race-Scripts Skibi-Toilets-Scripts Skibid-Toilet-Siege-Defense-Scripts Skibid-Toilets-VS-Cameramen-Scripts Skibidi-Aura-Simulator-Scripts Skibidi-Fight-Simulator-Scripts Skibidi-Race-Simulator-Scripts Skibidi-Toilet-Tycoon-Scripts Skibidi-Tower-Defense-Scripts Sky-Ball-Scripts SKYDIVE-Off-A-TOWER-Scripts Skydive-Race-Clicker-Scripts SKYWARS-Scripts SL-PRISON-Scripts Slap-Battle-Simulator-Scripts slap-battles-but-bad-Scripts Slap-Battles-Scripts Slasher-Blade-Scripts Slayer-Corps-Simulator-Scripts Slayer-Tycoon-Scripts Slayers-Unleashed-Scripts Slide-Down-A-Hill-Scripts Slide-House-Tumble-Scripts Slide-to-Rdite-Scripts Slime-Mine-Scripts Slime-Slaying-Simulator-Scripts Slime-Survival-Scripts Slime-Tower-Tycoon-Scripts Sling-Race-Scripts Sling-Scripts Slots-RNG-Scripts Smash-And-Grab-Scripts Smash-Things-Scripts Smooth-Slicing-Scripts Snake-Simulator-Scripts Snipers-Scripts Snow-Plow-Simulator-Scripts Snow-Shoveling-Simulator-Scripts Snowball-io-Scripts Snowballer-Scripts Snowboard-Obby-Scripts Soccer-League-Scripts Soccer-Legends-Scripts Solera-Hotel-And-Resort-Scripts Solo-Challenging-Simulator-Scripts Sols-RNG-Scripts Son-Goku-The-Finale-Scripts Sonic-Speed-Simulator-Scripts Sorcerer-Battleground-Scripts Soul-Cultivation-Scripts Soul-Eater-Resonance-Scripts Soul-Land-Blox-Scripts Soul-Scripts Soul-War-Scripts Southwest-Florida-Beta-Scripts Space-Simulator-Reborn-Scripts Space-Tycoon-Scripts Specter-2-Scripts Speed-City-Scripts Speed-Race-Clicker-Scripts Speed-Run-12-Scripts Speed-Run-4-Scripts Speed-Run-Race-Scripts Speed-Run-Simulator-Scripts Speed-Runner-Scripts Speed-Simulator-Scripts SpeedLands-V2-Scripts Spider-Scripts SpongeBob-Simulator-Scripts Spray-Paint-Scripts SPTS-Endless-Scripts SPTS-Origin-Scripts Squid-Game-Scripts Stack-Ball-Scripts Stair-Tappers-Scripts Stairs-Of-RAGE-Scripts Stand Upright Rebooted-Scripts Stand-Proud-Scripts Stand-Upright-Rebooted-Scripts StandBlox-Remade-Standoff-2-Scripts Stands-Awakening-Scripts Stands-Unleashed-Scripts Star-Rail-Simulator-Scripts Star-Simulator-Scripts Stardust-Reborn-Scripts Starscape-Scripts start-an-emo-band-from-your-garage-tycoon-Scripts Starving-Artist-Scripts Starving-Artists-Scripts State-Of-Anarchy-Scripts Stay-in-the-Circle-Scripts Steal-Roblox-Games-Scripts Steel-Titans-Scripts STEEP-STEPS-Scripts Stone-Farm-Simulator-Scripts Stone-Haven-County-Asylum-Scripts Stone-Miner-Simulator-2-Scripts Stop-It-Slender-Scripts Stranded-Scripts Stranger-Things-Scripts Streetz-War-2-Scripts Strength-Simulator-Scripts Striker-Odyssey-Scripts Strong-Clickers-Scripts Strong-Fighters-Simulator-Scripts Strong-Katana-Simulator-Scripts Strong-Muscle-Simulator-Scripts Strong-Muscle-Simulator-X-Scripts Strong-Ninja-Simulator-Scripts Strongest-Anime-Squad-Simulator-Scripts Strongest-Battlegrounds-Scripts Strongest-Punch-Simulator-Scripts Strongman-Simulator-Scripts Strucid-Scripts Stud-Jump-Scripts stupid-idiot-cafe-Scripts Sukuna-Battlegrounds-Scripts Sunsilk-Hair-Care-Lab-Tycoon-Scripts Super-Blox-Soccer-Scripts Super-Bomb-Survival-Scripts Super-Bridge-Runners-Scripts Super-Doomspire-Scripts Super-Dunk-Scripts Super-Fun-Obby-500-Stages-Scripts Super-Hero-Race-Clicker-Scripts Super-Hero-Tycoon-Scripts Super-Jump-Race-Scripts Super-League-Soccer-Scripts Super-Muscle-Simulator-Scripts Super-Power-Evolution-Simulator-Scripts Super-Power-Fighting-Scripts Super-Power-Fighting-Simulator-Scripts Super-Power-Grinding-Simulator-Scripts Super-Punch-Simulator-Scripts Super-Slime-Simulator-Scripts Super-Store-Tycoon-Scripts Super-Striker-League-Scripts Superbox-Siege-Defense-Scripts Superpower-Simulator-Chakra-Scripts Survival-Bruno-The-Encanto-Movie-Killer-Scripts Survival-Odyssey-Scripts Survive-And-Kill-Scripts Survive-And-Kill-The-Killer-In-Area-51-Scripts Survive-and-Kill-the-Killers-in-Area-51-Scripts Survive-The-Killer-Scripts Survive-The-Night-Scripts Survive-The-Slimes-Scripts Sushi-Shop-Simulator-Scripts SWAT-Breaching-Scripts Sweets-obby-Scripts Swim-League-Scripts Swim-Race-Simulator-Scripts Swimming-Race-Clicker-Scripts Swing-City-Scripts Sword-Adventure-Simulator-Scripts Sword-Battles-Scripts Sword-Burst-2-Scripts Sword-Factory-X-Scripts Sword-Fighter-2-Scripts Sword-Fighters-Simulator-Scripts Sword-Haven-Scripts Sword-Race-Scripts Sword-Slasher-Scripts Sword-Warriors-Scripts SwordBurst-3-Scripts T-ang-County-Hebei-Scripts T-Titans-Battlegrounds-Scripts tais-RNG-Scripts Tall-Man-Run-Scripts Tank-Game-Simulator Tap-Legends-Scripts Tap-Simulator-X-Scripts Tapping-Legend-X-Scripts Tapping-Legends-Final-Scripts Tapping-Legends-X-Scripts Tapping-Masters-Scripts Tapping-Simulator-Scripts Tatakai-Scripts Taxi-Boss-Scripts Taxi-Simulator-2-Scripts Team-Coop-Puzzles-Obby-Scripts Teamwork-Morphs-Scripts Teamwork-Puzzles-2-Scripts Teamwork-Puzzles-Scripts Teddy-Escape-Scripts Terraria-Clicker-Scripts Texting-Simulator-Scripts Tha-Bronx-2-Scripts Tha-Hood-Scripts The-Asylum-Scripts The-Backrooms-Scripts The-Chosen-One-Scripts The-Classic-Scripts The-Clown-Killings-Reborn-Scripts The-Dropper-Scripts The-Final-Stand-2-Scripts The-Floor-Is-Lava-Scripts The-Games-Scripts The-Glitch-Obby-Scripts The-Grand-Crossing-Border-Roleplay-Scripts The-Haunt-Scripts The-Heroes-Simulator-Scripts The-Hood-Scripts The-Horror-Mansion-Scripts The-Intruder-Scripts The-Legendary-Swords-2-Scripts The-Long-Drive-Scripts The-Maze-Scripts The-Mimic-Scripts The-Never-Ending-Train-Ride-Scripts The-Normal-Elevator-Scripts The-Obby-Elevator-Scripts The-Rake-REMASTERED-Scripts The-Schoolhouse-Scripts The-Simpsons-Tower-Defense-Scripts The-Skinwalker-Scripts The-Spinner-Scripts The-Strongest-Battlegrounds-Scripts The-Survival-Game-Scripts The-Test-Scripts The-Town-Scripts The-Ultimate-Upgrade-Tree-Scripts The-Underground-War-2-Scripts The-Underground-War-3-Scripts The-Wild-West-Scripts THIEF-LIFE-Simulator-Scripts Thief-Simulator-Scripts Thirsty-Vampire-Scripts Those-Who-Remain-Scripts Throw-Ball-Simulator-Scripts Tien-Tien-Piece-Scripts Timber-2-Scripts Timber-Champions-Scripts TIMMEH-Scripts Titan-Warfare-Scripts TLK-Prison-Scripts TMNT-Battle-Tycoon-Scripts To-Become-Rich-And-Famous-Scripts Toe-Wrestle-Simulator-Scripts Toilet-Attack-Scripts Toilet-Battle-Simulator-Scripts Toilet-Eating-Simulator-Scripts Toilet-Teamwork-Morphs-Scripts Toilet-Tower-Defense-Scripts Tokyo-Saga-Scripts Tongue-Battles-Scripts Too-Many-Weapon-Scripts Tornado-Simulator-Scripts Total-Roblox-Drama-Scripts Touch-Football-Scripts Tower-but-the-Floor-is-Lava-Scripts Tower-Defense-Simulator-Scripts Tower-Defense-X-Scripts Tower-Heroes-Scripts Tower-Merge-Simulator-Scripts Tower-Of-Flood-Escape-2-Scripts Tower-Of-Hell-Scripts Tower-of-Jump-Scripts Tower-Of-Misery-Scripts Tower-Simulator-Scripts town-Scripts Toy-Simulator-Scripts Toy-SoldierZ-Scripts TPS-Street-Soccer-Scripts TPS-Ultimate-Soccer-Scripts Trade-Hangout-Scripts Trade-Tower-Scripts Train-RNG-Scripts Trampoline-Battle-Simulator-Scripts Trampoline-Towers-Scripts Transfur-Outbreak-Scripts Treasure-Hunt-Islands-Scripts Treasure-Quest-Scripts Trench-War-2-Scripts Trench-War-Scripts Trenches-Scripts Triathlon-Star-Simulator-Scripts Trick-Shot-Simulator-Scripts Trident-Survival-Scripts Trident-Survival-V2-Scripts Troll-Cart-Ride-Scripts Troll-Obby-Scripts Troll-People-Obby-Scirpts Trollge-Conventions-Scripts Trollge-Incident-Fights-Reborn-Scripts Troop-Army-Simulator-Scripts Tropical-Resort-Tycoon-Scripts Truck-Factory-Tycoon-Scripts Try-To-Die-Dco-Scripts Try-To-Die-Scripts Try-to-oof-3-Scripts Tsunami-Game-Scripts Tug-Of-War-Simulator-Scripts Twice-Square-Scripts Twilight-Daycare-Scripts Tycoon-RNG-Scripts Type-Or-Die-Scripts Type-Race-Scripts UFO-Tycoon-Scripts UGC-Dont-Move-Scripts UGC-Limited-Codes-Scripts Ultimate-Attack-on-Titan-Scripts Ultimate-Easy-Obby-Scripts Ultimate-Factory-Tycoon-Scripts Ultimate-Random-Night-Scripts Ultimate-Tower-Defense-Scripts Ultra-Clicker-Simulator-Scripts Ultra-Easy-Obby-Scripts Ultra-Power-Tycoon-Scripts Unboxing-Simulator-Scripts Undertale-Crazy-Multiverse-Scripts Undertale-Wave-Rush-Scripts Underworld-Realm-Scripts Unicorn-Tycoon-Scripts Unicycle-Down-A-Hill-Scripts Unit-Classified-Scripts Universal-Brawl-Scripts Universal-Scripts Unnamed-Shooter-Scripts UnOfficial-Uno-Scripts Untitled-Attack-On-Titan-Scripts untitled-boxing-game-Scripts Untitled-Hood-Scripts untitled-tag-game-Scripts Unwavering-Soul-Scripts Vampire Fighters-Scripts Vampire-Hunters-3-Scripts VBet-Scripts Vehicle-Legends-Scripts Vehicle-Simulator-Scripts Vehicle-Tycoon-Scripts Verdant-Moon-Scripts Victory-Race-Scripts Viet-Pirates-X-Scripts Viral-Simulator-Scripts Void-Fishing-Scripts Volcano-Escape-Scripts Volleyball-Scripts Voxlblade-Scripts Wacky-Wizards-Scripts Wall-Punch-Simulator-Scripts Wall-Punching-Simulator-Scripts Wall-Smash-Simulator-Scripts Walmart-Land-Script Walmart-Land-Scripts War-Age-Tycoon-Scripts War-Engines-Scripts War-Machines-Scripts War-Tycoon-Scripts Warrior-Army-Simulator-2-Scripts Warrior-Champions-Scripts Warrior-Simulator-Scripts Wasteland-Tycoon-Scripts Weak-Legacy-2-Scripts Weak-Legacy-Scripts Weapon-Crafting-Simulator-Scripts Weapon-Fighting-Scripts Weapon-Fighting-Simulator-Scripts Weapon-Forge-Simulator-Scripts Weapon-Simulator-2-Scripts Weaponry-Scripts Weird-Strict-Dad-Scripts West-Elm-Home-Design-Scripts Westbound-Scripts Wheat-Farming-Simulator-Scripts Where's-The-Baby-Scripts White-Room-Scripts Who-is-the-Spy-Scripts Who-Wins-1v1-Scripts Wild-Horse-Islands-Scripts Winds-Of-Fortune-Scripts Wings-Of-Glory-Scripts Wisteria-2-[ALPHA]-Scripts Wisteria-2-Scripts Wizard-Tycoon-2-Player-Scripts Wolves-Life-3-Scripts Wonder-Chase-Scripts Wonder-Woman-Scripts Word-Bomb-Scripts Word-Bridge-Scripts Word-Of-Stands-Scripts Wordie-Scripts Work-At-A-Hotel-&-Resort-Scripts Work-At-A-Pizza-Place-Scripts Work-At-A-Pizza-Scripts World-Of-Aincrad-Scripts World-Of-Sorcery-Scripts World-Of-Stands-Scripts World-Of-Trollge-Scripts World-Zero-Scripts Worlds-Hardest-Game-Scripts Wormface-Scripts Write-A-Letter-Scripts Yeet-A-Friend-Scripts Yeet-A-Pet-Scripts Yo-Yo-Simulator-Scripts You-Get-1-Damage-Scripts You-Get-1-Jump-Power-Scripts Your-Bizarre-Adventure-Scripts Your-Local-Mechanic-Scripts Youtube-Legends-Scripts Youtube-Simulator-X-Scripts YouTube-Simulator-Z-Scripts YouTube-Tycoon-Scripts YoYo-Simulator-Scripts ZO-SAMURAI-Scripts Zombie-Arena-Scripts Zombie-Army-Simulator-Scripts Zombie-Attack-Scripts Zombie-Battle-Tycoon-Scripts Zombie-Game-Scripts Zombie-Hunters-Scripts Zombie-Lab-Scripts Zombie-Merge-Tycoon-Scripts Zombie-Rush-Scripts Zombie-Survival-Garrys-Mod-Scripts Zombie-Survivors-Scripts Zombie-Uprising-Scripts Zombie-VS-Friends-Simulator-Scripts