Pastebin

Paste #38901: No description

< previous paste - next paste>

Pasted by DaHoodPremiumScriptLeaked

Download View as text

--[[
		
	██╗░░░░░██╗░░░██╗███╗░░██╗░█████╗░██████╗░░░░██╗░░░██╗██╗██████╗░
	██║░░░░░██║░░░██║████╗░██║██╔══██╗██╔══██╗░░░██║░░░██║██║██╔══██╗
	██║░░░░░██║░░░██║██╔██╗██║███████║██████╔╝░░░╚██╗░██╔╝██║██████╔╝
	██║░░░░░██║░░░██║██║╚████║██╔══██║██╔══██╗░░░░╚████╔╝░██║██╔═══╝░
	███████╗╚██████╔╝██║░╚███║██║░░██║██║░░██║██╗░░╚██╔╝░░██║██║░░░░░
	╚══════╝░╚═════╝░╚═╝░░╚══╝╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░░╚═╝░░░╚═╝╚═╝░░░░░

	Last updated 18/03/24
]]

if isfile("menu_plex.font") then
	delfile("menu_plex.font")
end

writefile("ProggyClean.ttf", game:HttpGet("https://github.com/f1nobe7650/other/raw/main/ProggyClean.ttf"))

-- // Custom Font
do
	getsynasset = getcustomasset or getsynasset
	Font = setreadonly(Font, false);
	function Font:Register(Name, Weight, Style, Asset)
		if not isfile(Name .. ".font") then
			if not isfile(Asset.Id) then
				writefile(Asset.Id, Asset.Font);
			end;
			--
			local Data = {
				name = Name,
				faces = {{
					name = "Regular",
					weight = Weight,
					style = Style,
					assetId = getsynasset(Asset.Id);
				}}
			};
			--
			writefile(Name .. ".font", game:GetService("HttpService"):JSONEncode(Data));
			return getsynasset(Name .. ".font");
		else 
			warn("Font already registered");
		end;
	end;
	--
	function Font:GetRegistry(Name)
		if isfile(Name .. ".font") then
			return getsynasset(Name .. ".font");
		end;
	end;

	Font:Register("menu_plex", 400, "normal", {Id = "ProggyClean.ttf", Font = ""});
end

if not LPH_OBFUSCATED then
    getfenv().LPH_NO_VIRTUALIZE = function(...) return (...) end;
end

local font = Enum.Font.Ubuntu;
local Library = {};
local Library = {
	Open = true;
	Folders = {
		main = "test";
		configs = "test/Configs";
	};
	Accent = Color3.fromRGB(132,108,188);
	Pages = {};
	Sections = {};
	Flags = {};
	UnNamedFlags = 0;
	ThemeObjects = {};
	Instances = {};
	Holder = nil;
	PageHolder = nil;
	Gradient = nil;
	UIGradient = nil;
	CopiedColor = Color3.new(1,1,1);
	CopiedAlpha = 0;
	AllowedCharacters = {
		[1] = ' ',
		[2] = '!',
		[3] = '"',
		[4] = '#',
		[5] = '$',
		[6] = '%',
		[7] = '&',
		[8] = "'",
		[9] = '(',
		[10] = ')',
		[11] = '*',
		[12] = '+',
		[13] = ',',
		[14] = '-',
		[15] = '.',
		[16] = '/',
		[17] = '0',
		[18] = '1',
		[19] = '2',
		[20] = '3',
		[21] = '4',
		[22] = '5',
		[23] = '6',
		[24] = '7',
		[25] = '8',
		[26] = '9',
		[27] = ':',
		[28] = ';',
		[29] = '<',
		[30] = '=',
		[31] = '>',
		[32] = '?',
		[33] = '@',
		[34] = 'A',
		[35] = 'B',
		[36] = 'C',
		[37] = 'D',
		[38] = 'E',
		[39] = 'F',
		[40] = 'G',
		[41] = 'H',
		[42] = 'I',
		[43] = 'J',
		[44] = 'K',
		[45] = 'L',
		[46] = 'M',
		[47] = 'N',
		[48] = 'O',
		[49] = 'P',
		[50] = 'Q',
		[51] = 'R',
		[52] = 'S',
		[53] = 'T',
		[54] = 'U',
		[55] = 'V',
		[56] = 'W',
		[57] = 'X',
		[58] = 'Y',
		[59] = 'Z',
		[60] = '[',
		[61] = "\\",
		[62] = ']',
		[63] = '^',
		[64] = '_',
		[65] = '`',
		[66] = 'a',
		[67] = 'b',
		[68] = 'c',
		[69] = 'd',
		[70] = 'e',
		[71] = 'f',
		[72] = 'g',
		[73] = 'h',
		[74] = 'i',
		[75] = 'j',
		[76] = 'k',
		[77] = 'l',
		[78] = 'm',
		[79] = 'n',
		[80] = 'o',
		[81] = 'p',
		[82] = 'q',
		[83] = 'r',
		[84] = 's',
		[85] = 't',
		[86] = 'u',
		[87] = 'v',
		[88] = 'w',
		[89] = 'x',
		[90] = 'y',
		[91] = 'z',
		[92] = '{',
		[93] = '|',
		[94] = '}',
		[95] = '~'
	};
	ShiftCharacters = {
		["1"] = "!",
		["2"] = "@",
		["3"] = "#",
		["4"] = "$",
		["5"] = "%",
		["6"] = "^",
		["7"] = "&",
		["8"] = "*",
		["9"] = "(",
		["0"] = ")",
		["-"] = "_",
		["="] = "+",
		["["] = "{",
		["\\"] = "|",
		[";"] = ":",
		["'"] = "\"",
		[","] = "<",
		["."] = ">",
		["/"] = "?",
		["`"] = "~"
	};
	Keys = {
		[Enum.KeyCode.LeftShift] = "LShift",
		[Enum.KeyCode.RightShift] = "RShift",
		[Enum.KeyCode.LeftControl] = "LCtrl",
		[Enum.KeyCode.RightControl] = "RCtrl",
		[Enum.KeyCode.LeftAlt] = "LAlt",
		[Enum.KeyCode.RightAlt] = "RAlt",
		[Enum.KeyCode.CapsLock] = "Caps",
		[Enum.KeyCode.One] = "1",
		[Enum.KeyCode.Two] = "2",
		[Enum.KeyCode.Three] = "3",
		[Enum.KeyCode.Four] = "4",
		[Enum.KeyCode.Five] = "5",
		[Enum.KeyCode.Six] = "6",
		[Enum.KeyCode.Seven] = "7",
		[Enum.KeyCode.Eight] = "8",
		[Enum.KeyCode.Nine] = "9",
		[Enum.KeyCode.Zero] = "0",
		[Enum.KeyCode.KeypadOne] = "Num1",
		[Enum.KeyCode.KeypadTwo] = "Num2",
		[Enum.KeyCode.KeypadThree] = "Num3",
		[Enum.KeyCode.KeypadFour] = "Num4",
		[Enum.KeyCode.KeypadFive] = "Num5",
		[Enum.KeyCode.KeypadSix] = "Num6",
		[Enum.KeyCode.KeypadSeven] = "Num7",
		[Enum.KeyCode.KeypadEight] = "Num8",
		[Enum.KeyCode.KeypadNine] = "Num9",
		[Enum.KeyCode.KeypadZero] = "Num0",
		[Enum.KeyCode.Minus] = "-",
		[Enum.KeyCode.Equals] = "=",
		[Enum.KeyCode.Tilde] = "~",
		[Enum.KeyCode.LeftBracket] = "[",
		[Enum.KeyCode.RightBracket] = "]",
		[Enum.KeyCode.RightParenthesis] = ")",
		[Enum.KeyCode.LeftParenthesis] = "(",
		[Enum.KeyCode.Semicolon] = ",",
		[Enum.KeyCode.Quote] = "'",
		[Enum.KeyCode.BackSlash] = "\\",
		[Enum.KeyCode.Comma] = ",",
		[Enum.KeyCode.Period] = ".",
		[Enum.KeyCode.Slash] = "/",
		[Enum.KeyCode.Asterisk] = "*",
		[Enum.KeyCode.Plus] = "+",
		[Enum.KeyCode.Period] = ".",
		[Enum.KeyCode.Backquote] = "`",
		[Enum.UserInputType.MouseButton1] = "MB1",
		[Enum.UserInputType.MouseButton2] = "MB2",
		[Enum.UserInputType.MouseButton3] = "MB3"
	};
	Connections = {};
	Font = Enum.Font.Ubuntu;
	FontSize = 12;
	Notifs = {};
	KeyList = nil;
	UIKey = Enum.KeyCode.End;
	ScreenGUI = nil;
}

local InputService = game:GetService("UserInputService");
local TeleportService = game:GetService("TeleportService");
local RunService = game:GetService("RunService");
local Workspace = game:GetService("Workspace");
local Lighting = game:GetService("Lighting");
local Players = game:GetService("Players");
local HttpService = game:GetService("HttpService");
local StarterGui = game:GetService("StarterGui");
local ReplicatedStorage = game:GetService("ReplicatedStorage");
local TweenService = game:GetService("TweenService");
local VirtualUser = game:GetService("VirtualUser");
local PathFindingService = game:GetService("PathfindingService");

local utility = {
	Circle = nil, 
	bodyParts = {}, 
	target = nil, 
	angle = 0, 
	drawings = {}, 
	folders = {}
};
local framework = {connections = {}};
local Flags = {}; 
local flags = Library.Flags;
local ESP = {};
local IgnoreList = {};
local HitReg = {};
local loadingTime = tick() 
local Visuals = {   
    ["Drawings"] = {},
	["Bases"] = {},
	["Base"] = {},
	["Settings"] = { 
		["Line"] = {
		    Thickness = 1,
		    Color = Color3.fromRGB(0, 255, 0)
	    },
		["Text"] = {
			Size = 13,
			Center = true,
			Outline = true,
			Font = Drawing.Fonts.Plex,
			Color = Color3.fromRGB(255, 255, 255)
		},
		["Square"] = {
			Thickness = 1,
			Color = Color3.fromRGB(255, 255, 255),
			Filled = false,
		},
		["Triangle"] = {
			Color = Color3.fromRGB(255, 255, 255),
			Filled = true,
			Visible = false,
			Thickness = 1,
		},
		["Image"] = {
			Transparency = 1,
			Data = game:HttpGet("https://raw.githubusercontent.com/portallol/luna/main/Gradient.png")
		}
	},
}
local NovaPart = game:GetObjects("rbxassetid://14745759584")[1]; NovaPart.Parent = ReplicatedStorage;
local Nova = NovaPart.Attachment;
local Sparkles = game:GetObjects("rbxassetid://16883621036")[1]; Sparkles.Parent = ReplicatedStorage;
local SparklesEffect = Sparkles.LevelParticle;
local sfx = {["Bameware"] = "16910460773",["Skeet"] = "4753603610",["Bonk"] = "3765689841",["Lazer Beam"] = "130791043",["Windows XP Error"] = "160715357",["TF2 Hitsound"] = "3455144981",["TF2 Critical"] = "296102734",["TF2 Bat"] = "3333907347",['Bow Hit'] = "1053296915",['Bow'] = "3442683707",['OSU'] = "7147454322",['Minecraft Hit'] = "4018616850",['Steve'] = "5869422451",['1nn'] = "7349055654",['Rust'] = "3744371091",["TF2 Pan"] = "3431749479",["Neverlose"] = "8679627751",["Mario"] = "5709456554",};
local sfx_names = {"Bameware", "Skeet", "Bonk", "Lazer Beam", "Windows XP Error", "TF2 Hitsound", "TF2 Critical", "TF2 Bat", "Bow Hit", "Bow", "OSU", "Minecraft Hit", "Steve", "1nn", "Rust", "TF2 Pan", "Neverlose", "Mario"};
local LocalPlayer = Players.LocalPlayer; 
local Mouse = LocalPlayer:GetMouse();
local Camera = Workspace.Camera;
local viewportSize = game.Workspace.Camera.ViewportSize;
local hitmodule = game:GetObjects("rbxassetid://7255773215")[1]; hitmodule.Parent = ReplicatedStorage;
local Offset = game:GetService("GuiService"):GetGuiInset().Y;
local Math = loadstring(game:HttpGet("https://raw.githubusercontent.com/f1nobe7650/Lynx/main/Math.lua"))(); 
local NotifiactionSGui = Instance.new("ScreenGui", game.CoreGui); NotifiactionSGui.Enabled = true
local Remote = ReplicatedStorage.MainEvent
local NewVector2 = Vector2.new;
local NewVector3 = Vector3.new;
local NewCFrame = CFrame.new; 
local Angle = CFrame.Angles; 
local NewHex = Color3.fromHex;
local Floor = math.floor;
local Random = math.random; 
local Find = table.find;
local Round = math.round;
local Cos = math.cos;
local Sin = math.sin;
local Rad = math.rad; 
local Clamp = math.clamp; 
local Ceil = math.ceil; 
local Pi = math.pi;
local Sqrt = math.sqrt;
local Lighting_Save = {["ColorShift_Bottom"] = Lighting.ColorShift_Bottom, ["Ambient"]=Lighting.Ambient, ["OutdoorAmbient"]=Lighting.OutdoorAmbient, ["ColorShift_Top"]=Lighting.ColorShift_Top, ["FogColor"]=Lighting.FogColor, ["FogEnd"]=Lighting.FogEnd, ["FogStart"]=Lighting.FogStart, ["ClockTime"]=Lighting.ClockTime, ["Brightness"]=Lighting.Brightness}
local bodyClone = game:GetObjects("rbxassetid://8246626421")[1]; bodyClone.Humanoid:Destroy(); bodyClone.Head.Face:Destroy(); bodyClone.Parent = game.Workspace; bodyClone.HumanoidRootPart.Velocity = Vector3.new(); bodyClone.HumanoidRootPart.CFrame = NewCFrame(9999,9999,9999); bodyClone.HumanoidRootPart.Transparency = 1; bodyClone.HumanoidRootPart.CanCollide = false 
local visualizeChams = Instance.new("Highlight"); visualizeChams.Enabled = true; visualizeChams.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop; visualizeChams.FillColor = Color3.fromRGB(102, 60, 153); visualizeChams.OutlineColor =  Color3.fromRGB(0, 0, 0); visualizeChams.Adornee = bodyClone; visualizeChams.OutlineTransparency = 0.2; visualizeChams.FillTransparency = 0.5; visualizeChams.Parent = game.CoreGui
local targetHighlight = Instance.new("Highlight", game.CoreGui); targetHighlight.Enabled = true; targetHighlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop; targetHighlight.FillColor = Color3.fromRGB(0,0,0); targetHighlight.OutlineColor = Color3.fromRGB(255,255,255); targetHighlight.OutlineTransparency = 0.5; targetHighlight.FillTransparency = 0;
local IgnoreList = {};
local Tween = {};
local crosshair_Lines = {}; 
local crosshair_Outlines = {}; 
local C_Desync = {Enabled = false, OldPosition = nil, PredictedPosition = nil};
local connections = {};
local highlights = {};
local Dropdowns = {}; 
local Pickers = {}; 
local VisValues = {}; 
local Typing = false; 
local aimAssistTarget; 
local checks; 
local prediction; 
local partClosest; 
local antiCheattick = 0; 
local CursorSize = 0; 
local statsTick = 0;
local crosshair_LineAmount = 4;
local crosshair_SpinAngle = 0; 
local crosshair_tick = 0;
local buying = false; 
local PlaceHolderUI = Instance.new("ScreenGui", game.CoreGui);
PlaceHolderUI.Enabled = false
local Path = 
	"https://raw.githubusercontent.com/fortniteisveryepic/assets/main/"
local images = {
	["[AK47]"] = game:HttpGet(Path.. "ak.png"),
	["[AR]"] = game:HttpGet(Path.. "ar.png"),
	["[AUG]"] = game:HttpGet(Path.. "aug.png"),
	["[Double-Barrel SG]"] = game:HttpGet(Path.. "db.png"),
	["[DrumGun]"] = game:HttpGet(Path.. "drumgun.png"),
	["[Flamethrower]"] = game:HttpGet(Path.. "flame.png"),
	["[Glock]"] = game:HttpGet(Path.. "glock.png"),
	["[LMG]"] = game:HttpGet(Path.. "lmg.png"),
	["[P90]"]= game:HttpGet(Path.. "p90.png"),
	["[Revolver]"] = game:HttpGet(Path.. "rev.png"),
	["[SMG]"] = game:HttpGet(Path.. "smg.png"),
	["[Shotgun]"] = game:HttpGet(Path.. "shotgun.png"),
	["[SilencerAR]"] = game:HttpGet(Path.. "ar.png"),
	["[TacticalShotgun]"] = game:HttpGet(Path.. "tac.png"),
	["[Knife]"] = game:HttpGet(Path.. "knife.png"),
	["[Rifle]"] = game:HttpGet(Path.. "rifle.png")
} 
local Languages = {
    A = {English = "A", Arabic = "أ", Albanian = "A", Japanese = "あ", Spanish = "A", Russian = "А", Chinese = "阿", Urdu = "ا", French = "A", Portuguese = "A", Hindi = "अ"},
    B = {English = "B", Arabic = "ب", Albanian = "B", Japanese = "い", Spanish = "B", Russian = "Б", Chinese = "波", Urdu = "ب", French = "B", Portuguese = "B", Hindi = "ब"},
    C = {English = "C", Arabic = "ت", Albanian = "C", Japanese = "う", Spanish = "C", Russian = "Ц", Chinese = "西", Urdu = "س", French = "C", Portuguese = "C", Hindi = "स"},
    D = {English = "D", Arabic = "د", Albanian = "D", Japanese = "え", Spanish = "D", Russian = "Д", Chinese = "德", Urdu = "ڈ", French = "D", Portuguese = "D", Hindi = "ड"},
    E = {English = "E", Arabic = "إ", Albanian = "E", Japanese = "お", Spanish = "E", Russian = "Е", Chinese = "俄", Urdu = "اے", French = "E", Portuguese = "E", Hindi = "ए"},
    F = {English = "F", Arabic = "ف", Albanian = "F", Japanese = "か", Spanish = "F", Russian = "Ф", Chinese = "夫", Urdu = "ف", French = "F", Portuguese = "F", Hindi = "फ"},
    G = {English = "G", Arabic = "ج", Albanian = "G", Japanese = "き", Spanish = "G", Russian = "Г", Chinese = "吉", Urdu = "ج", French = "G", Portuguese = "G", Hindi = "ग"},
    H = {English = "H", Arabic = "ح", Albanian = "H", Japanese = "く", Spanish = "H", Russian = "Х", Chinese = "艾尺", Urdu = "ح", French = "H", Portuguese = "H", Hindi = "ह"},
    I = {English = "I", Arabic = "ي", Albanian = "I", Japanese = "け", Spanish = "I", Russian = "И", Chinese = "伊", Urdu = "آئی", French = "I", Portuguese = "I", Hindi = "इ"},
    J = {English = "J", Arabic = "ج", Albanian = "J", Japanese = "こ", Spanish = "J", Russian = "Й", Chinese = "杰", Urdu = "جے", French = "J", Portuguese = "J", Hindi = "ज"},
    K = {English = "K", Arabic = "ك", Albanian = "K", Japanese = "さ", Spanish = "K", Russian = "К", Chinese = "开", Urdu = "کے", French = "K", Portuguese = "K", Hindi = "क"},
    L = {English = "L", Arabic = "ل", Albanian = "L", Japanese = "し", Spanish = "L", Russian = "Л", Chinese = "艾勒", Urdu = "ل", French = "L", Portuguese = "L", Hindi = "ल"},
    M = {English = "M", Arabic = "م", Albanian = "M", Japanese = "す", Spanish = "M", Russian = "М", Chinese = "艾马", Urdu = "م", French = "M", Portuguese = "M", Hindi = "म"},
    N = {English = "N", Arabic = "ن", Albanian = "N", Japanese = "せ", Spanish = "N", Russian = "Н", Chinese = "艾娜", Urdu = "ن", French = "N", Portuguese = "N", Hindi = "न"},
    O = {English = "O", Arabic = "أو", Albanian = "O", Japanese = "そ", Spanish = "O", Russian = "О", Chinese = "哦", Urdu = "او", French = "O", Portuguese = "O", Hindi = "ओ"},
    P = {English = "P", Arabic = "ب", Albanian = "P", Japanese = "た", Spanish = "P", Russian = "П", Chinese = "屁", Urdu = "پ", French = "P", Portuguese = "P", Hindi = "प"},
    Q = {English = "Q", Arabic = "ق", Albanian = "Q", Japanese = "ち", Spanish = "Q", Russian = "К", Chinese = "丘", Urdu = "ق", French = "Q", Portuguese = "Q", Hindi = "क्यू"},
    R = {English = "R", Arabic = "ر", Albanian = "R", Japanese = "つ", Spanish = "R", Russian = "Р", Chinese = "艾儿", Urdu = "ر", French = "R", Portuguese = "R", Hindi = "र"},
    S = {English = "S", Arabic = "س", Albanian = "S", Japanese = "て", Spanish = "S", Russian = "С", Chinese = "艾丝", Urdu = "س", French = "S", Portuguese = "S", Hindi = "एस"},
    T = {English = "T", Arabic = "ت", Albanian = "T", Japanese = "と", Spanish = "T", Russian = "Т", Chinese = "提", Urdu = "ٹ", French = "T", Portuguese = "T", Hindi = "ट"},
    U = {English = "U", Arabic = "أو", Albanian = "U", Japanese = "な", Spanish = "U", Russian = "У", Chinese = "优", Urdu = "یو", French = "U", Portuguese = "U", Hindi = "यू"},
    V = {English = "V", Arabic = "ف", Albanian = "V", Japanese = "に", Spanish = "V", Russian = "В", Chinese = "维", Urdu = "وی", French = "V", Portuguese = "V", Hindi = "व"},
    W = {English = "W", Arabic = "و", Albanian = "W", Japanese = "ぬ", Spanish = "W", Russian = "В", Chinese = "豆贝尔维", Urdu = "ڈبلیو", French = "W", Portuguese = "W", Hindi = "डब्ल्यू"},
    X = {English = "X", Arabic = "إكس", Albanian = "X", Japanese = "ね", Spanish = "X", Russian = "Х", Chinese = "艾克斯", Urdu = "اکس", French = "X", Portuguese = "X", Hindi = "एक्स"},
    Y = {English = "Y", Arabic = "ي", Albanian = "Y", Japanese = "の", Spanish = "Y", Russian = "У", Chinese = "伊儿", Urdu = "وائی", French = "Y", Portuguese = "Y", Hindi = "वाई"},
    Z = {English = "Z", Arabic = "ز", Albanian = "Z", Japanese = "は", Spanish = "Z", Russian = "З", Chinese = "贼德", Urdu = "زیڈ", French = "Z", Portuguese = "Z", Hindi = "जेड"}
}
local utx = {} 
local Messages = {}
local drawingCache = {} 

utility.folders["Part Chams"] = Instance.new("Folder", Workspace);
utility.folders["Hit Chams"] = Instance.new("Folder", Workspace);
Library.__index = Library;
Library.Pages.__index = Library.Pages;
Library.Sections.__index = Library.Sections;

-- // Functions
do 
	-- // Library Functions
	do
		function Library:Connection(Signal, Callback)
			local Con = Signal:Connect(Callback)
			return Con
		end
		--  
		function Library:updateNotifsPositions(position)
			for i, v in pairs(Library.Notifs) do 
				local Position = position == "Middle" and NewVector2(viewportSize.X/2 - (v["Objects"][3].TextBounds.X + 4)/2,600) or NewVector2(20, 20)
				game:GetService("TweenService"):Create(v.Container, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0,Position.X,0,Position.Y + (i * 25))}):Play()
			end 
		end
		-- 
		function Library:Notification(message, duration, color, position)
			local notification = {Container = nil, Objects = {}}
			-- 
			local NotifContainer = Instance.new('Frame', NotifiactionSGui)
			local Background = Instance.new('Frame', NotifContainer)
			local Outline = Instance.new('Frame', Background)
			local UIStroke = Instance.new('UIStroke', Outline)
			local TextLabel = Instance.new('TextLabel', Background)
			local Accemt = Instance.new('Frame', Background)
			local Progress = Instance.new('Frame', Background)
			--
			local Position = position == "Middle" and NewVector2(viewportSize.X/2 - (TextLabel.TextBounds.X + 4)/2, 600) or NewVector2(20, 20)
			--
			NotifContainer.Name = "NotifContainer"
			NotifContainer.Position = UDim2.new(0,Position.X, 0, Position.Y)
			NotifContainer.Size = UDim2.new(0,TextLabel.TextBounds.X + 4,0,20)
			NotifContainer.BackgroundColor3 = Color3.new(1,1,1)
			NotifContainer.BackgroundTransparency = 1
			NotifContainer.BorderSizePixel = 0
			NotifContainer.BorderColor3 = Color3.new(0,0,0)
			NotifContainer.ZIndex = 99999999
			notification.Container = NotifContainer
			--
			Background.Name = "Background"
			Background.Size = UDim2.new(1,0,1,0)
			Background.BackgroundColor3 = Color3.new(0.0588,0.0588,0.0784)
			Background.BorderColor3 = Color3.new(0.1373,0.1373,0.1569)
			table.insert(notification.Objects, Background)
			--
			Outline.Name = "Outline"
			Outline.Position = UDim2.new(0,-1,0,-1)
			Outline.Size = UDim2.new(1,2,1,2)
			Outline.BackgroundColor3 = Color3.new(1,1,1)
			Outline.BackgroundTransparency = 1
			Outline.BorderSizePixel = 0
			Outline.BorderColor3 = Color3.new(0,0,0)
			table.insert(notification.Objects, Outline)
			--
			TextLabel.Name = "TextLabel"
			TextLabel.Position = UDim2.new(0,1,0,0)
			TextLabel.Size = UDim2.new(1,0,1,0)
			TextLabel.BackgroundColor3 = Color3.new(1,1,1)
			TextLabel.BackgroundTransparency = 1
			TextLabel.BorderSizePixel = 0
			TextLabel.BorderColor3 = Color3.new(0,0,0)
			TextLabel.Text = message
			TextLabel.TextColor3 = Color3.new(0.9216,0.9216,0.9216)
			TextLabel.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			TextLabel.TextSize = Library.FontSize
			TextLabel.AutomaticSize = Enum.AutomaticSize.X
			TextLabel.TextXAlignment = Enum.TextXAlignment.Left
			table.insert(notification.Objects, TextLabel)
			--
			Accemt.Name = "Accemt"
			Accemt.Size = UDim2.new(1,0,0,1)
			Accemt.BackgroundColor3 = Library.Accent
			Accemt.BorderSizePixel = 0
			Accemt.BorderColor3 = Color3.new(0,0,0)
			table.insert(notification.Objects, Accemt)
			--
			Progress.Name = "Progress"
			Progress.Position = UDim2.new(0,0,1,-1)
			Progress.Size = UDim2.new(0,0,0,1)
			Progress.BackgroundColor3 = Color3.new(1,0,0)
			Progress.BorderSizePixel = 0
			Progress.BorderColor3 = Color3.new(0,0,0)
			table.insert(notification.Objects, Progress)
		
			if color ~= nil then
				Progress.BackgroundColor3 = color
				Accemt.BackgroundColor3 = color
			end
		
			function notification:remove()
				table.remove(Library.Notifs, table.find(Library.Notifs, notification))
				Library:updateNotifsPositions(position)
				notification.Container:Destroy()
			end
		
			task.spawn(function()
				Background.AnchorPoint = NewVector2(1,0)
				local Tween1 = game:GetService("TweenService"):Create(Background, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {AnchorPoint = NewVector2(0,0)}):Play()
				local Tween2 = game:GetService("TweenService"):Create(Progress, TweenInfo.new(duration or 5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {Size = UDim2.new(1,0,0,1)}):Play()
				game:GetService("TweenService"):Create(Progress, TweenInfo.new(duration or 5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.new(0,1,0)}):Play()
				task.wait(duration)
				game:GetService("TweenService"):Create(Background, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {AnchorPoint = NewVector2(1,0)}):Play()
				for i,v in next, notification.Objects do
					game:GetService("TweenService"):Create(v, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play()
				end
				game:GetService("TweenService"):Create(TextLabel, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 1}):Play()
				game:GetService("TweenService"):Create(UIStroke, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Transparency = 1}):Play()
			end)
		
			task.delay(0.25 + duration + 0.25, function()
				notification:remove()
			end)
		
			table.insert(Library.Notifs, notification)
			NotifContainer.Position = UDim2.new(0,Position.X,0,Position.Y + (table.find(Library.Notifs, notification) * 25))
			NotifContainer.Size = UDim2.new(0,TextLabel.TextBounds.X + 4,0,18)
			Library:updateNotifsPositions(position)

			return notification
		end
		--
		function Library:Disconnect(Connection)
			Connection:Disconnect()
		end
		--
		function Library:Round(Number, Float)
			return Float * math.floor(Number / Float)
		end
		--
		function Library.NextFlag()
			Library.UnNamedFlags = Library.UnNamedFlags + 1
			return string.format("%.14g", Library.UnNamedFlags)
		end
		--
		function Library:GetConfig()
			local Config = ""
			for Index, Value in pairs(self.Flags) do
				if
					Index ~= "ConfigConfig_List"
					and Index ~= "ConfigConfig_Load"
					and Index ~= "ConfigConfig_Save"
				then
					local Value2 = Value
					local Final = ""
					--
					if typeof(Value2) == "Color3" then
						local hue, sat, val = Value2:ToHSV()
						--
						Final = ("rgb(%s,%s,%s,%s)"):format(hue, sat, val, 1)
					elseif typeof(Value2) == "table" and Value2.Color and Value2.Transparency then
						local hue, sat, val = Value2.Color:ToHSV()
						--
						Final = ("rgb(%s,%s,%s,%s)"):format(hue, sat, val, Value2.Transparency)
					elseif typeof(Value2) == "table" and Value.Mode then
						local Values = Value.current
						--
						Final = ("key(%s,%s,%s)"):format(Values[1] or "nil", Values[2] or "nil", Value.Mode)
					elseif Value2 ~= nil then
						if typeof(Value2) == "boolean" then
							Value2 = ("bool(%s)"):format(tostring(Value2))
						elseif typeof(Value2) == "table" then
							local New = "table("
							--
							for Index2, Value3 in pairs(Value2) do
								New = New .. Value3 .. ","
							end
							--
							if New:sub(#New) == "," then
								New = New:sub(0, #New - 1)
							end
							--
							Value2 = New .. ")"
						elseif typeof(Value2) == "string" then
							Value2 = ("string(%s)"):format(Value2)
						elseif typeof(Value2) == "number" then
							Value2 = ("number(%s)"):format(Value2)
						end
						--
						Final = Value2
					end
					--
					Config = Config .. Index .. ": " .. tostring(Final) .. "\n"
				end
			end
			--
			return Config
		end
		--
		function Library:LoadConfig(Config)
			for i = 1, 10 do 
				local Table = string.split(Config, "\n")
				local Table2 = {}
				for Index, Value in pairs(Table) do
					local Table3 = string.split(Value, ":")
					--
					if Table3[1] ~= "ConfigConfig_List" and #Table3 >= 2 then
						local Value = Table3[2]:sub(2, #Table3[2])
						--
						if Value:sub(1, 3) == "rgb" then
							local Table4 = string.split(Value:sub(5, #Value - 1), ",")
							--
							Value = Table4
						elseif Value:sub(1, 3) == "key" then
							local Table4 = string.split(Value:sub(5, #Value - 1), ",")
							--
							if Table4[1] == "nil" and Table4[2] == "nil" then
								Table4[1] = nil
								Table4[2] = nil
							end
							--
							Value = Table4
						elseif Value:sub(1, 4) == "bool" then
							local Bool = Value:sub(6, #Value - 1)
							--
							Value = Bool == "true"
						elseif Value:sub(1, 5) == "table" then
							local Table4 = string.split(Value:sub(7, #Value - 1), ",")
							--
							Value = Table4
						elseif Value:sub(1, 6) == "string" then
							local String = Value:sub(8, #Value - 1)
							--
							Value = String
						elseif Value:sub(1, 6) == "number" then
							local Number = tonumber(Value:sub(8, #Value - 1))
							--
							Value = Number
						end
						--
						Table2[Table3[1]] = Value
					end
				end 
				--
				for i, v in pairs(Table2) do
					if Flags[i] then
						if typeof(Flags[i]) == "table" then
							Flags[i]:Set(v)
						else
							Flags[i](v)
						end
					end
				end
			end
		end
		--
		function Library:SetOpen(bool)
			if typeof(bool) == 'boolean' then
				Library.Open = bool;
				Library.Holder.Visible = bool;
			end
		end;
		--
		function Library:ChangeAccent(Color)
			Library.Accent = Color

			for obj, theme in next, Library.ThemeObjects do
				if theme:IsA("Frame") or theme:IsA("TextButton") then
					theme.BackgroundColor3 = Color
				elseif theme:IsA("TextLabel") then
					theme.TextColor3 = Color
				elseif theme:IsA("TextButton") and theme.BackgroundTransparency == 1 then
					theme.TextColor3 = Color
				end
			end
		end
		--
		function Library:IsMouseOverFrame(Frame)
			local AbsPos, AbsSize = Frame.AbsolutePosition, Frame.AbsoluteSize;

			if Mouse.X >= AbsPos.X and Mouse.X <= AbsPos.X + AbsSize.X
				and Mouse.Y >= AbsPos.Y and Mouse.Y <= AbsPos.Y + AbsSize.Y then

				return true;
			end;
		end;
		-- 
		function Library:KeybindList()
			local KeyList = {Keybinds = {}};
			Library.KeyList = KeyList
			--
			local KeyOutline = Instance.new('Frame', PlaceHolderUI)
			local KeyInline = Instance.new('Frame', KeyOutline)
			local KeyAccent = Instance.new('Frame', KeyInline)
			local KeyHolder = Instance.new('Frame', KeyInline)
			local UIListLayout = Instance.new('UIListLayout', KeyHolder)
			local KeyTitle = Instance.new('TextLabel', KeyInline)
			local LineThing = Instance.new('Frame', KeyInline)
			--
			KeyOutline.Name = "KeyOutline"
			KeyOutline.Position = UDim2.new(0.01,0,0.5,0)
			KeyOutline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			KeyOutline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			KeyOutline.AnchorPoint = NewVector2(0.009999999776482582,0.5)
			KeyOutline.AutomaticSize = Enum.AutomaticSize.XY
			--
			KeyInline.Name = "KeyInline"
			KeyInline.Position = UDim2.new(0,1,0,1)
			KeyInline.Size = UDim2.new(0,-2,0,-2)
			KeyInline.BackgroundColor3 = Color3.new(0.0745,0.0745,0.0745)
			KeyInline.BorderSizePixel = 0
			KeyInline.BorderColor3 = Color3.new(0,0,0)
			KeyInline.AutomaticSize = Enum.AutomaticSize.XY
			--
			KeyAccent.Name = "KeyAccent"
			KeyAccent.Size = UDim2.new(1,0,0,1)
			KeyAccent.BackgroundColor3 = Library.Accent
			KeyAccent.BorderSizePixel = 0
			KeyAccent.BorderColor3 = Color3.new(0,0,0)
			--
			KeyHolder.Name = "KeyHolder"
			KeyHolder.Position = UDim2.new(0,0,0,22)
			KeyHolder.BackgroundColor3 = Color3.new(1,1,1)
			KeyHolder.BackgroundTransparency = 1
			KeyHolder.BorderSizePixel = 0
			KeyHolder.BorderColor3 = Color3.new(0,0,0)
			KeyHolder.AutomaticSize = Enum.AutomaticSize.XY
			--
			UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			--
			KeyTitle.Name = "KeyTitle"
			KeyTitle.Size = UDim2.new(1,0,0,20)
			KeyTitle.BackgroundColor3 = Color3.new(1,1,1)
			KeyTitle.BackgroundTransparency = 1
			KeyTitle.BorderSizePixel = 0
			KeyTitle.BorderColor3 = Color3.new(0,0,0)
			KeyTitle.Text = "Keybinds"
			KeyTitle.TextColor3 = Color3.new(1,1,1)
			KeyTitle.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			KeyTitle.TextSize = 12
			KeyTitle.TextStrokeTransparency = 0
			--
			LineThing.Name = "LineThing"
			LineThing.Position = UDim2.new(0,0,0,20)
			LineThing.Size = UDim2.new(1,0,0,1)
			LineThing.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			LineThing.BorderSizePixel = 0
			LineThing.BorderColor3 = Color3.new(0,0,0)
			-- Functions
			function KeyList:SetVisible(State)
				KeyOutline.Visible = State;
			end;
			--
			function KeyList:NewKey(Name, Key, Mode)
				local KeyValue = {}
				--
				local NewValue = Instance.new('TextLabel', KeyHolder)
				--
				NewValue.Name = "NewValue"
				NewValue.Size = UDim2.new(0,0,0,15)
				NewValue.BackgroundColor3 = Color3.new(1,1,1)
				NewValue.BackgroundTransparency = 1
				NewValue.BorderSizePixel = 0
				NewValue.BorderColor3 = Color3.new(0,0,0)
				NewValue.Text = tostring(" ["..Key.."] " .. Name .. " (" .. Mode ..") ")
				NewValue.TextColor3 = Color3.new(1,1,1)
				NewValue.FontFace = Font.new(Font:GetRegistry("menu_plex"))
				NewValue.TextSize = 12
				NewValue.AutomaticSize = Enum.AutomaticSize.X
				NewValue.TextXAlignment = Enum.TextXAlignment.Left
				NewValue.Visible = false
				--
				function KeyValue:SetVisible(State)
					NewValue.Visible = State;
				end;
				--
				function KeyValue:Update(NewName, NewKey, NewMode)
					NewValue.Text = tostring(" ["..NewName.."] " .. NewKey .. " (" .. NewMode ..") ")
				end;
				return KeyValue
			end;
			return KeyList
		end
	end
	-- // Color Picker Functions
	do
		function Library:NewPicker(name, default, defaultalpha, parent, count, flag, callback)
			-- // Instances
			local Icon = Instance.new('TextButton', parent)
			local IconInline = Instance.new('Frame', Icon)
			local ColorWindow = Instance.new('Frame', parent)
			local WindowInline = Instance.new('Frame', ColorWindow)
			local Color = Instance.new('TextButton', WindowInline)
			local Sat = Instance.new('ImageLabel', Color)
			local Val = Instance.new('ImageLabel', Color)
			local Pointer = Instance.new('Frame', Color)
			local Container = Instance.new('Frame', Color)
			local ColorOutline = Instance.new('Frame', Color)
			local UIStroke = Instance.new('UIStroke', ColorOutline)
			local Hue = Instance.new('ImageButton', Color)
			local HueOutline = Instance.new('Frame', Hue)
			local UIStroke2 = Instance.new('UIStroke', HueOutline)
			local Alpha = Instance.new('ImageButton', Color)
			local AlphaOutline = Instance.new('Frame', Alpha)
			local UIStroke3 = Instance.new('UIStroke', AlphaOutline)
			local HueSlide = Instance.new('Frame', Hue)
			local AlphaSlide = Instance.new('Frame', Alpha)
			local ModeOutline = Instance.new('Frame', parent)
			local ModeInline = Instance.new('Frame', ModeOutline)
			local UIListLayout = Instance.new('UIListLayout', ModeInline)
			local Hold = Instance.new('TextButton', ModeInline)
			local Toggle = Instance.new('TextButton', ModeInline)
			--
			Icon.Name = "Icon"
			Icon.Position = UDim2.new(1, - (count * 20) - (count * 6),0.5,0)
			Icon.Size = UDim2.new(0,20,0,10)
			Icon.BackgroundColor3 = Color3.fromRGB(45,45,45)
			Icon.BorderColor3 = Color3.fromRGB(10,10,10)
			Icon.AnchorPoint = NewVector2(1,0.5)
			Icon.AutoButtonColor = false
			Icon.Text = ""
			--
			IconInline.Name = "IconInline"
			IconInline.Position = UDim2.new(0,1,0,1)
			IconInline.Size = UDim2.new(1,-2,1,-2)
			IconInline.BackgroundColor3 = default
			IconInline.BorderSizePixel = 0
			--
			ColorWindow.Name = "ColorWindow"
			ColorWindow.Position = UDim2.new(1,-2,1,2)
			ColorWindow.Size = UDim2.new(0,206,0,170)
			ColorWindow.BackgroundColor3 = Color3.fromRGB(45,45,45)
			ColorWindow.BorderColor3 = Color3.fromRGB(10,10,10)
			ColorWindow.AnchorPoint = NewVector2(1,0)
			ColorWindow.ZIndex = 100
			ColorWindow.Visible = false
			--
			WindowInline.Name = "WindowInline"
			WindowInline.Position = UDim2.new(0,1,0,1)
			WindowInline.Size = UDim2.new(1,-2,1,-2)
			WindowInline.BackgroundColor3 = Color3.fromRGB(20,20,20)
			WindowInline.BorderSizePixel = 0;
			WindowInline.ZIndex = 100
			--
			Color.Name = "Color"
			Color.Position = UDim2.new(0,8,0,10)
			Color.Size = UDim2.new(0,150,0,150)
			Color.BackgroundColor3 = default
			Color.BorderColor3 = Color3.new(0,0,0)
			Color.Text = ""
			Color.TextColor3 = Color3.new(0,0,0)
			Color.AutoButtonColor = false
			Color.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Color.TextSize = 14
			Color.ZIndex = 100
			--
			Sat.Name = "Sat"
			Sat.Size = UDim2.new(1,0,1,0)
			Sat.BackgroundColor3 = Color3.new(1,1,1)
			Sat.BackgroundTransparency = 1
			Sat.BorderSizePixel = 0
			Sat.BorderColor3 = Color3.new(0,0,0)
			Sat.Image = "http://www.roblox.com/asset/?id=14684562507"
			Sat.ZIndex = 100
			--
			Val.Name = "Val"
			Val.Size = UDim2.new(1,0,1,0)
			Val.BackgroundColor3 = Color3.new(1,1,1)
			Val.BackgroundTransparency = 1
			Val.BorderSizePixel = 0
			Val.BorderColor3 = Color3.new(0,0,0)
			Val.Image = "http://www.roblox.com/asset/?id=14684563800"
			Val.ZIndex = 100
			--
			Pointer.Name = "Pointer"
			Pointer.Position = UDim2.new(1,0,1,0)
			Pointer.Size = UDim2.new(0,1,0,1)
			Pointer.BackgroundColor3 = Color3.new(1,1,1)
			Pointer.BorderColor3 = Color3.new(0,0,0)
			Pointer.ZIndex = 100
			--
			Container.Name = "Container"
			Container.Position = UDim2.new(0,-2,1,5)
			Container.Size = UDim2.new(0,189,0,55)
			Container.BackgroundColor3 = Color3.new(1,1,1)
			Container.BackgroundTransparency = 1
			Container.BorderColor3 = Color3.new(0,0,0)
			Container.ZIndex = 100
			--
			ColorOutline.Name = "ColorOutline"
			ColorOutline.Position = UDim2.new(0,-1,0,-1)
			ColorOutline.Size = UDim2.new(1,2,1,2)
			ColorOutline.BackgroundColor3 = Color3.new(1,1,1)
			ColorOutline.BackgroundTransparency = 1
			ColorOutline.BorderSizePixel = 0
			ColorOutline.BorderColor3 = Color3.new(0,0,0)
			ColorOutline.ZIndex = 100
			--
			UIStroke.Color = Color3.fromRGB(45,45,45)
			--
			Hue.Name = "Hue"
			Hue.Position = UDim2.new(1,10,0,0)
			Hue.Size = UDim2.new(0,10,1,0)
			Hue.BackgroundColor3 = Color3.new(1,1,1)
			Hue.BorderColor3 = Color3.new(0,0,0)
			Hue.Image = "http://www.roblox.com/asset/?id=14684557999"
			Hue.AutoButtonColor = false
			Hue.ZIndex = 100
			--
			HueOutline.Name = "HueOutline"
			HueOutline.Position = UDim2.new(0,-1,0,-1)
			HueOutline.Size = UDim2.new(1,2,1,2)
			HueOutline.BackgroundColor3 = Color3.new(1,1,1)
			HueOutline.BackgroundTransparency = 1
			HueOutline.BorderSizePixel = 0
			HueOutline.BorderColor3 = Color3.new(0,0,0)
			HueOutline.ZIndex = 100
			--
			UIStroke2.Color = Color3.fromRGB(45,45,45)
			--
			Alpha.Name = "Alpha"
			Alpha.Position = UDim2.new(1,30,0,0)
			Alpha.Size = UDim2.new(0,10,1,0)
			Alpha.BackgroundColor3 = Color3.new(1,1,1)
			Alpha.BorderColor3 = Color3.new(0,0,0)
			Alpha.Image = "http://www.roblox.com/asset/?id=14684560169"
			Alpha.AutoButtonColor = false
			Alpha.ZIndex = 100
			--
			AlphaOutline.Name = "AlphaOutline"
			AlphaOutline.Position = UDim2.new(0,-1,0,-1)
			AlphaOutline.Size = UDim2.new(1,2,1,2)
			AlphaOutline.BackgroundColor3 = Color3.new(1,1,1)
			AlphaOutline.BackgroundTransparency = 1
			AlphaOutline.BorderSizePixel = 0
			AlphaOutline.BorderColor3 = Color3.new(0,0,0)
			AlphaOutline.ZIndex = 100
			--
			UIStroke3.Color = Color3.fromRGB(45,45,45)
			--
			HueSlide.Name = "HueSlide"
			HueSlide.Size = UDim2.new(1,0,0,3)
			HueSlide.BackgroundColor3 = Color3.new(1,1,1)
			HueSlide.BorderColor3 = Color3.new(0,0,0)
			--
			AlphaSlide.Name = "AlphaSlide"
			AlphaSlide.Size = UDim2.new(1,0,0,3)
			AlphaSlide.BackgroundColor3 = Color3.new(1,1,1)
			AlphaSlide.BorderColor3 = Color3.new(0,0,0)
			AlphaSlide.ZIndex = 100
			--
			ModeOutline.Name = "ModeOutline"
			ModeOutline.Position = UDim2.new(1,65,0.5,0)
			ModeOutline.Size = UDim2.new(0,60,0,12)
			ModeOutline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			ModeOutline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			ModeOutline.AnchorPoint = NewVector2(1,0.5)
			ModeOutline.AutomaticSize = Enum.AutomaticSize.Y
			ModeOutline.Visible = false
			ModeOutline.ZIndex = 1020000010
			--
			ModeInline.Name = "ModeInline"
			ModeInline.Position = UDim2.new(0,1,0,1)
			ModeInline.Size = UDim2.new(1,-2,1,-2)
			ModeInline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			ModeInline.BorderSizePixel = 0
			ModeInline.BorderColor3 = Color3.new(0,0,0)
			ModeInline.ZIndex = 100
			--
			UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			--
			Hold.Name = "Hold"
			Hold.Size = UDim2.new(1,0,0,15)
			Hold.BackgroundColor3 = Color3.new(1,1,1)
			Hold.BackgroundTransparency = 1
			Hold.BorderSizePixel = 0
			Hold.BorderColor3 = Color3.new(0,0,0)
			Hold.Text = "Copy"
			Hold.TextColor3 = Color3.fromRGB(145,145,145)
			Hold.AutoButtonColor = false
			Hold.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Hold.TextSize = Library.FontSize
			Hold.TextStrokeTransparency = 0
			Hold.ZIndex = 100
			--
			Toggle.Name = "Toggle"
			Toggle.Size = UDim2.new(1,0,0,15)
			Toggle.BackgroundColor3 = Color3.new(1,1,1)
			Toggle.BackgroundTransparency = 1
			Toggle.BorderSizePixel = 0
			Toggle.BorderColor3 = Color3.new(0,0,0)
			Toggle.Text = "Paste"
			Toggle.TextColor3 = Color3.fromRGB(145,145,145)
			Toggle.AutoButtonColor = false
			Toggle.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Toggle.TextSize = Library.FontSize
			Toggle.TextStrokeTransparency = 0
			Toggle.ZIndex = 100

			Library:Connection(Icon.MouseEnter, function()
				Icon.BorderColor3 = Library.Accent
			end)
			--
			Library:Connection(Icon.MouseLeave, function()
				Icon.BorderColor3 = Color3.fromRGB(10,10,10)
			end)

			-- // Connections
			local mouseover = false
			local hue, sat, val = default:ToHSV()
			local hsv = default:ToHSV()
			local alpha = defaultalpha
			local oldcolor = hsv
			local slidingsaturation = false
			local slidinghue = false
			local slidingalpha = false

			local function update()
				local real_pos = game:GetService("UserInputService"):GetMouseLocation()
				local mouse_position = NewVector2(real_pos.X, real_pos.Y - 40)
				local relative_palette = (mouse_position - Color.AbsolutePosition)
				local relative_hue     = (mouse_position - Hue.AbsolutePosition)
				local relative_opacity = (mouse_position - Alpha.AbsolutePosition)
				--
				if slidingsaturation then
					sat = math.clamp(1 - relative_palette.X / Color.AbsoluteSize.X, 0, 1)
					val = math.clamp(1 - relative_palette.Y / Color.AbsoluteSize.Y, 0, 1)
				end 
				--  
				if slidinghue then
					hue = math.clamp(relative_hue.Y / Hue.AbsoluteSize.Y, 0, 1)
				end  
				-- 
				if slidingalpha then
					alpha = math.clamp(relative_opacity.Y / Alpha.AbsoluteSize.Y, 0, 1)
				end
				-- edited by finobe (yes these fucking alphas crash on roexec? nice executor for $8 a week :[ )
				hsv = Color3.fromHSV(hue, sat, val)
				Pointer.Position = UDim2.new(math.clamp(1 - sat, 0.005, 0.995), 0, math.clamp(1 - val, 0.005, 0.995), 0)
				Color.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)
				Alpha.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)
				IconInline.BackgroundColor3 = hsv

				HueSlide.Position = UDim2.new(0,0,math.clamp(hue, 0.005, 0.995),0)
				AlphaSlide.Position = UDim2.new(0,0,math.clamp(alpha, 0.005, 0.995),0)

				if flag then
					Library.Flags[flag] = {} 
					Library.Flags[flag]["Color"] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
					Library.Flags[flag]["Transparency"] = alpha
				end

				callback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255), alpha)
			end

			local function set(color, a)
				if type(color) == "table" then
					a = color[4]
					color = Color3.fromHSV(color[1], color[2], color[3])
				end
				if type(color) == "string" then
					color = Color3.fromHex(color)
				end

				local oldcolor = hsv
				local oldalpha = alpha

				hue, sat, val = color:ToHSV()
				alpha = a or 1
				hsv = Color3.fromHSV(hue, sat, val)

				if hsv ~= oldcolor then
					IconInline.BackgroundColor3 = hsv
					Color.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)
					Pointer.Position = UDim2.new(math.clamp(1 - sat, 0.005, 0.995), 0, math.clamp(1 - val, 0.005, 0.995), 0)
					Alpha.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)
					HueSlide.Position = UDim2.new(0,0,math.clamp(hue, 0.005, 0.995),0)
					AlphaSlide.Position = UDim2.new(0,0,math.clamp(alpha, 0.005, 0.995),0)

					if flag then
						Library.Flags[flag] = {} 
						Library.Flags[flag]["Color"] = Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255)
						Library.Flags[flag]["Transparency"] = alpha
					end

					callback(Color3.fromRGB(hsv.r * 255, hsv.g * 255, hsv.b * 255), alpha)
				end
			end

			Flags[flag] = set

			set(default, defaultalpha)

			Sat.InputBegan:Connect(function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					slidingsaturation = true
					update()
				end
			end)

			Sat.InputEnded:Connect(function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					slidingsaturation = false
					update()
				end
			end)

			Hue.InputBegan:Connect(function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					slidinghue = true
					update()
				end
			end)

			Hue.InputEnded:Connect(function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					slidinghue = false
					update()
				end
			end)

			Alpha.InputBegan:Connect(function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					slidingalpha = true
					update()
				end
			end)

			Alpha.InputEnded:Connect(function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					slidingalpha = false
					update()
				end
			end)

			Library:Connection(game:GetService("UserInputService").InputChanged, function(input)
				if input.UserInputType == Enum.UserInputType.MouseMovement then
					if slidingalpha then
						update()
					end

					if slidinghue then
						update()
					end

					if slidingsaturation then
						update()
					end
				end
			end)

			Icon.MouseButton1Down:Connect(function()
				ColorWindow.Visible = not ColorWindow.Visible
				parent.ZIndex = ColorWindow.Visible and 5 or 1

				if slidinghue then
					slidinghue = false
				end

				if slidingsaturation then
					slidingsaturation = false
				end

				if slidingalpha then
					slidingalpha = false
				end
			end)
			
			Library:Connection(Icon.MouseButton2Down, function()
				ModeOutline.Visible = not ModeOutline.Visible
			end)
			--
			Library:Connection(Hold.MouseButton1Down, function()
				Library.CopiedColor = hsv
				Library.CopiedAlpha = alpha
			end)
			--
			Library:Connection(Toggle.MouseButton1Down, function()
				set(Library.CopiedColor or Color3.new(1,1,1), Library.CopiedAlpha or 0)
			end)
			--
			Library:Connection(game:GetService("UserInputService").InputBegan, function(Input)
				if ModeOutline.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then
					if not Library:IsMouseOverFrame(Icon) then
						ModeOutline.Visible = false
					end
				end
			end)

			local colorpickertypes = {}

			function colorpickertypes:Set(color, newalpha)
				set(color, newalpha)
			end

			Library:Connection(game:GetService("UserInputService").InputBegan, function(Input)
				if ColorWindow.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then
					if not Library:IsMouseOverFrame(ColorWindow) and not Library:IsMouseOverFrame(Icon) then
						ColorWindow.Visible = false
						parent.ZIndex = 1
					end
				end
			end)

			return colorpickertypes, ColorWindow
		end
	end
	-- // Doc Functions
	do
		local Pages = Library.Pages;
		local Sections = Library.Sections;
		function Library:Window(Options)
			local Window = {
				Pages = {};
				Sections = {};
				Elements = {};
				Dragging = { false, UDim2.new(0, 0, 0, 0) };
				Size = Options.Size or Options.size or UDim2.new(0, 550,0, 600);
			};
			--
			local ScreenGui = Instance.new('ScreenGui', game.CoreGui)
			local Outline = Instance.new('Frame', ScreenGui)
			local Inline = Instance.new('Frame', Outline)
			local Accent = Instance.new('Frame', Inline)
			local HolderOutline = Instance.new('Frame', Inline)
			local HolderInline = Instance.new('Frame', HolderOutline)
			local Tabs = Instance.new('Frame', HolderInline)
			local UIListLayout = Instance.new('UIListLayout', Tabs)
			local DragButton = Instance.new('TextButton', Outline)
			local KeybindList = Library:KeybindList()
			--
			ScreenGui.DisplayOrder = 2
			--
			Outline.Name = "Outline"
			Outline.Position = UDim2.new(0.5,0,0.5,0)
			Outline.Size = Window.Size
			Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			Outline.AnchorPoint = Vector2.new(0.5,0.5)
			Library.Holder = Outline
			--
			Inline.Name = "Inline"
			Inline.Position = UDim2.new(0,1,0,1)
			Inline.Size = UDim2.new(1,-2,1,-2)
			Inline.BackgroundColor3 = Color3.new(0.0784,0.0784,0.0784)
			Inline.BorderSizePixel = 0
			Inline.BorderColor3 = Color3.new(0,0,0)
			--
			Accent.Name = "Accent"
			Accent.Size = UDim2.new(1,0,0,1)
			Accent.BackgroundColor3 = Library.Accent
			Accent.BorderSizePixel = 0
			Accent.BorderColor3 = Color3.new(0,0,0)
			table.insert(Library.ThemeObjects, Accent)
			--
			HolderOutline.Name = "HolderOutline"
			HolderOutline.Position = UDim2.new(0,7,0,11)
			HolderOutline.Size = UDim2.new(1,-14,1,-18)
			HolderOutline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			HolderOutline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			--
			HolderInline.Name = "HolderInline"
			HolderInline.Position = UDim2.new(0,1,0,1)
			HolderInline.Size = UDim2.new(1,-2,1,-2)
			HolderInline.BackgroundColor3 = Color3.new(0.0784,0.0784,0.0784)
			HolderInline.BorderSizePixel = 0
			HolderInline.BorderColor3 = Color3.new(0,0,0)
			--
			Tabs.Name = "Tabs"
			Tabs.Size = UDim2.new(1,0,0,22)
			Tabs.BackgroundColor3 = Color3.new(1,1,1)
			Tabs.BackgroundTransparency = 1
			Tabs.BorderSizePixel = 0
			Tabs.BorderColor3 = Color3.new(0,0,0)
			--
			UIListLayout.FillDirection = Enum.FillDirection.Horizontal
			UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			--
			DragButton.Name = "DragButton"
			DragButton.Size = UDim2.new(1,0,0,10)
			DragButton.BackgroundColor3 = Color3.new(1,1,1)
			DragButton.BackgroundTransparency = 1
			DragButton.BorderSizePixel = 0
			DragButton.BorderColor3 = Color3.new(0,0,0)
			DragButton.Text = ""
			DragButton.TextColor3 = Color3.new(0,0,0)
			DragButton.AutoButtonColor = false
			DragButton.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			DragButton.TextSize = 14
			
            
			
			-- // Elements
			Window.Elements = {
				TabHolder = Tabs,
				Holder = HolderInline
			}

			-- // Dragging
			Library:Connection(DragButton.MouseButton1Down, function()
				local Location = game:GetService("UserInputService"):GetMouseLocation()
				Window.Dragging[1] = true
				Window.Dragging[2] = UDim2.new(0, Location.X - Outline.AbsolutePosition.X, 0, Location.Y - Outline.AbsolutePosition.Y)
			end)
			Library:Connection(game:GetService("UserInputService").InputEnded, function(Input)
				if Input.UserInputType == Enum.UserInputType.MouseButton1 and Window.Dragging[1] then
					local Location = game:GetService("UserInputService"):GetMouseLocation()
					Window.Dragging[1] = false
					Window.Dragging[2] = UDim2.new(0, 0, 0, 0)
				end
			end)
			Library:Connection(game:GetService("UserInputService").InputChanged, function(Input)
				local Location = game:GetService("UserInputService"):GetMouseLocation()
				local ActualLocation = nil

				-- Dragging
				if Window.Dragging[1] then
					Outline.Position = UDim2.new(
						0,
						Location.X - Window.Dragging[2].X.Offset + (Outline.Size.X.Offset * Outline.AnchorPoint.X),
						0,
						Location.Y - Window.Dragging[2].Y.Offset + (Outline.Size.Y.Offset * Outline.AnchorPoint.Y)
					)
				end
			end)
			Library:Connection(game:GetService("UserInputService").InputBegan, function(Input)
				if Input.KeyCode == Library.UIKey then
					Library:SetOpen(not Library.Open)
				end
			end)

			-- // Functions
			function Window:UpdateTabs()
				for Index, Page in pairs(Window.Pages) do
					Page.Elements.Button.Size = UDim2.new(1/#Window.Pages,0,1,0)
					Page:Turn(Page.Open)
				end
			end

			-- // Returns
			Library.Holder = Outline
			return setmetatable(Window, Library)
		end
		--
		function Library:Page(Properties)
			if not Properties then
				Properties = {}
			end
			--
			local Page = {
				Name = Properties.Name or "Page",
				Window = self,
				Open = false,
				Sections = {},
				Elements = {},
                Weapons = {},
                Icons = Properties.Weapons or Properties.weapons or false,
			}
			--
			local TabButton = Instance.new('TextButton', Page.Window.Elements.TabHolder)
			local TabAccent = Instance.new('Frame', TabButton)
			local TabLine = Instance.new('Frame', TabButton)
            local WeaponOutline = Instance.new("Frame", Page.Window.Elements.Holder)
            local WeaponInline = Instance.new("Frame", WeaponOutline)
            local UIListLayout3 = Instance.new("UIListLayout", WeaponInline)
            local Left = Instance.new('Frame', Page.Window.Elements.Holder)
            local Right = Instance.new('Frame', Page.Window.Elements.Holder)
            local UIListLayout = Instance.new('UIListLayout', Left)
            local UIListLayout_2 = Instance.new('UIListLayout', Right)
            Left.Name = "Left"
            Left.Position = UDim2.new(0,5,0,35)
            Left.Size = UDim2.new(0.485,-3,1,-40)
            Left.BackgroundColor3 = Color3.new(1,1,1)
            Left.BorderSizePixel = 0
            Left.BackgroundTransparency = 1
            Left.BorderColor3 = Color3.new(0,0,0)
            Left.Visible = false
            Left.ZIndex = 3
            --
            Right.Name = "Right"
            Right.Position = UDim2.new(1,-5,0,35)
            Right.Size = UDim2.new(0.485,-3,1,-40)
            Right.BackgroundColor3 = Color3.new(1,1,1)
            Right.BorderSizePixel = 0
            Right.BorderColor3 = Color3.new(0,0,0)
            Right.AnchorPoint = Vector2.new(1,0)
            Right.Visible = false
            Right.BackgroundTransparency = 1
            --
            UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
            UIListLayout.Padding = UDim.new(0,12)
            --
            UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder
            UIListLayout_2.Padding = UDim.new(0,12)
			--
			TabButton.Name = "TabButton"
			TabButton.Size = UDim2.new(0.25,0,1,0)
			TabButton.BackgroundColor3 = Color3.new(1,1,1)
			TabButton.BackgroundTransparency = 1
			TabButton.BorderSizePixel = 0
			TabButton.BorderColor3 = Color3.new(0,0,0)
			TabButton.Text = Page.Name
			TabButton.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			TabButton.AutoButtonColor = false
			TabButton.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			TabButton.TextSize = Library.FontSize
			TabButton.TextStrokeTransparency = 0
			TabButton.LineHeight = 1.1
			--
			TabAccent.Name = "TabAccent"
			TabAccent.Size = UDim2.new(1,0,0,1)
			TabAccent.BackgroundColor3 = Library.Accent
			TabAccent.BorderSizePixel = 0
			TabAccent.BorderColor3 = Color3.new(0,0,0)
			TabAccent.Visible = false
			table.insert(Library.ThemeObjects, TabAccent)
			--
			TabLine.Name = "TabLine"
			TabLine.Position = UDim2.new(0,0,1,-1)
			TabLine.Size = UDim2.new(1,0,0,1)
			TabLine.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			TabLine.BorderSizePixel = 0
			TabLine.BorderColor3 = Color3.new(0,0,0)

            WeaponOutline.Name = "WeaponOutline"
            WeaponOutline.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
            WeaponOutline.BorderColor3 = Color3.fromRGB(10, 10, 10)
            WeaponOutline.Position = UDim2.new(0, 5, 0, 25)
            WeaponOutline.Size = UDim2.new(1, -10, 0, 40)
            WeaponOutline.Visible = false
            
            WeaponInline.Name = "WeaponInline"
            WeaponInline.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
            WeaponInline.BorderColor3 = Color3.fromRGB(0, 0, 0)
            WeaponInline.BorderSizePixel = 0
            WeaponInline.Position = UDim2.new(0, 1, 0, 1)
            WeaponInline.Size = UDim2.new(1, -2, 1, -2)
            
            UIListLayout3.FillDirection = Enum.FillDirection.Horizontal
            UIListLayout3.SortOrder = Enum.SortOrder.LayoutOrder
			
			function Page:Turn(bool)
				Page.Open = bool
				if not Page.Icons then
                    Left.Visible = Page.Open
				    Right.Visible = Page.Open
                else
                    WeaponOutline.Visible = Page.Open
                    for Index, Weapon in pairs(Page.Weapons) do
                        Weapon:Turn(Weapon.Open)
                    end
                end
				TabAccent.Visible = Page.Open
				TabLine.Visible = not Page.Open
				TabButton.TextColor3 = Page.Open and Color3.fromRGB(255,255,255) or Color3.fromRGB(145,145,145)
			end
			--
			Library:Connection(TabButton.MouseButton1Down, function()
				if not Page.Open then
					Page:Turn(true)
					for _, Pages in pairs(Page.Window.Pages) do
						if Pages.Open and Pages ~= Page then
							Pages:Turn(false)
						end
					end
				end
			end)
			--
			Library:Connection(TabButton.MouseEnter, function() 
				if not Page.Open then
					TabButton.TextColor3 = Library.Accent
				end
			end)
			--
			Library:Connection(TabButton.MouseLeave, function() 
				if not Page.Open then
					TabButton.TextColor3 = Color3.fromRGB(145,145,145)
				end
			end)

            -- // Functions
			function Page:UpdateWeapons()
				for Index, Weapon in pairs(Page.Weapons) do
					Weapon.Elements.Button.Size = UDim2.new(1/#Page.Weapons,0,1,0)
					Weapon:Turn(Weapon.Open)
				end
			end

			-- // Elements
			Page.Elements = {
                Left = Page.Icons and nil or Left,
				Right = Page.Icons and nil or Right,
				Button = TabButton,
                WeaponOutline = WeaponOutline,
                WeaponInline = WeaponInline,
			}

			-- // Drawings
			if #Page.Window.Pages == 0 then
				Page:Turn(true)
			end
			Page.Window.Pages[#Page.Window.Pages + 1] = Page
			Page.Window:UpdateTabs()
			return setmetatable(Page, Library.Pages)
		end
        --
        function Pages:Weapon(Properties)
            if not Properties then
				Properties = {}
			end
			--
			local Weapon = {
				Icon = Properties.Icon or Properties.icon or "rbxassetid://11127408662",
				Window = self,
				Open = false,
				Sections = {},
				Elements = {},
			}
			--
            --Weapon.Window.Elements.WeaponOutline.Visible = true

			local Left = Instance.new('Frame', Weapon.Window.Window.Elements.Holder)
			local Right = Instance.new('Frame', Weapon.Window.Window.Elements.Holder)
			local UIListLayout = Instance.new('UIListLayout', Left)
			local UIListLayout_2 = Instance.new('UIListLayout', Right)
            local New = Instance.new("ImageButton")
			--
			New.Name = "New"
            New.Parent = Weapon.Window.Elements.WeaponInline
            New.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
            New.BackgroundTransparency = 1.000
            New.BorderColor3 = Color3.fromRGB(0, 0, 0)
            New.BorderSizePixel = 0
            New.Size = UDim2.new(0.200000003, 0, 1, 0)
            New.Image = Weapon.Icon
            New.ScaleType = Enum.ScaleType.Fit
			--
			Left.Name = "Left"
			Left.Position = UDim2.new(0,5,0,75)
			Left.Size = UDim2.new(0.485,-3,1, -80)
			Left.BackgroundColor3 = Color3.new(1,1,1)
			Left.BorderSizePixel = 0
			Left.BackgroundTransparency = 1
			Left.BorderColor3 = Color3.new(0,0,0)
			Left.Visible = false
			Left.ZIndex = 3
			--
			Right.Name = "Right"
			Right.Position = UDim2.new(1,-5,0,75)
			Right.Size = UDim2.new(0.485,-3,1, -80)
			Right.BackgroundColor3 = Color3.new(1,1,1)
			Right.BorderSizePixel = 0
			Right.BorderColor3 = Color3.new(0,0,0)
			Right.AnchorPoint = Vector2.new(1,0)
			Right.Visible = false
			Right.BackgroundTransparency = 1
			--
			UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			UIListLayout.Padding = UDim.new(0,12)
			--
			UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder
			UIListLayout_2.Padding = UDim.new(0,12)
			
			function Weapon:Turn(bool)
				Weapon.Open = bool
				Left.Visible = Weapon.Open and Weapon.Window.Open
				Right.Visible = Weapon.Open and Weapon.Window.Open
				New.ImageColor3 = Weapon.Open and Color3.new(1,1,1) or Color3.fromRGB(145,145,145)
			end
			--
			Library:Connection(New.MouseButton1Down, function()
				if not Weapon.Open then
					Weapon:Turn(true)
					for _, Weapons in pairs(Weapon.Window.Weapons) do
						if Weapons.Open and Weapons ~= Weapon then
							Weapons:Turn(false)
						end
					end
				end
			end)
			--

			-- // Elements
			Weapon.Elements = {
				Left = Left,
				Right = Right,
				Button = New
			}

			-- // Drawings
			if #Weapon.Window.Weapons == 0 then
				Weapon:Turn(true)
			end
			Weapon.Window.Weapons[#Weapon.Window.Weapons + 1] = Weapon
			Weapon.Window:UpdateWeapons()
			return setmetatable(Weapon, Library.Pages)
        end
		--
		function Pages:Section(Properties)
			if not Properties then
				Properties = {}
			end
			--
			local Section = {
				Name = Properties.Name or "Section",
				Page = self,
				Side = (Properties.side or Properties.Side or "left"):lower(),
				ZIndex = Properties.ZIndex or 1, -- Idfk why
				Elements = {},
				Content = {},
			}
			--
			local SectionOutline = Instance.new('Frame', Section.Side == "left" and Section.Page.Elements.Left or Section.Side == "right" and Section.Page.Elements.Right)
			local SectionInline = Instance.new('Frame', SectionOutline)
			local Container = Instance.new('Frame', SectionInline)
			local UIListLayout = Instance.new('UIListLayout', Container)
			local Space = Instance.new('Frame', Container)
			local SectionAccent = Instance.new('Frame', SectionInline)
			local Title = Instance.new('TextLabel', SectionOutline)
			local TextBorder = Instance.new('Frame', SectionOutline)	
			--
			SectionOutline.Name = "SectionOutline"
			SectionOutline.Size = UDim2.new(1,0,0,20)
			SectionOutline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			SectionOutline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			SectionOutline.AutomaticSize = Enum.AutomaticSize.Y
			SectionOutline.ZIndex = Section.ZIndex
			--
			
			--
			SectionInline.Name = "SectionInline"
			SectionInline.Position = UDim2.new(0,1,0,1)
			SectionInline.Size = UDim2.new(1,-2,1,-2)
			SectionInline.BackgroundColor3 = Color3.new(0.0784,0.0784,0.0784)
			SectionInline.BorderSizePixel = 0
			SectionInline.BorderColor3 = Color3.new(0,0,0)
			--
			Container.Name = "Container"
			Container.Position = UDim2.new(0,7,0,10)
			Container.Size = UDim2.new(1,-14,1,-10)
			Container.BackgroundColor3 = Color3.new(1,1,1)
			Container.BackgroundTransparency = 1
			Container.BorderSizePixel = 0
			Container.BorderColor3 = Color3.new(0,0,0)
			Container.AutomaticSize = Enum.AutomaticSize.Y
			--
			Space.Name = "Space"
			Space.Position = UDim2.new(0,0,1,0)
			Space.Size = UDim2.new(1,0,0,1)
			Space.BackgroundColor3 = Color3.new(1,1,1)
			Space.BackgroundTransparency = 1
			Space.BorderSizePixel = 0
			Space.BorderColor3 = Color3.new(0,0,0)
			Space.LayoutOrder = 1000
			--
			SectionAccent.Name = "SectionAccent"
			SectionAccent.Size = UDim2.new(1,0,0,1)
			SectionAccent.BackgroundColor3 = Library.Accent
			SectionAccent.BorderSizePixel = 0
			SectionAccent.BorderColor3 = Color3.new(0,0,0)
			table.insert(Library.ThemeObjects, SectionAccent)
			table.insert(Library.ThemeObjects, SectionAccent)
			--
			Title.Name = "Title"
			Title.Position = UDim2.new(0,10,0,-8)
			Title.Size = UDim2.new(0,100,0,16)
			Title.BackgroundColor3 = Color3.new(1,1,1)
			Title.BackgroundTransparency = 1
			Title.BorderSizePixel = 0
			Title.BorderColor3 = Color3.new(0,0,0)
			Title.TextColor3 = Color3.new(1,1,1)
			Title.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Title.TextSize = Library.FontSize
			Title.ZIndex = 3
			Title.TextXAlignment = Enum.TextXAlignment.Left
			Title.Text = Section.Name
			Title.TextStrokeTransparency = 0
			--
			TextBorder.Name = "TextBorder"
			TextBorder.Position = UDim2.new(0,6,0,-2)
			TextBorder.Size = UDim2.new(0,Title.TextBounds.X + 8,0,4)
			TextBorder.BackgroundColor3 = Color3.new(0.0784,0.0784,0.0784)
			TextBorder.BorderSizePixel = 0
			TextBorder.BorderColor3 = Color3.new(0,0,0)
			--
			UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			UIListLayout.Padding = UDim.new(0,10)
			
			-- // Elements
			Section.Elements = {
				SectionContent = Container;
				SectionHolder = SectionOutline;
			}

			-- // Returning
			Section.Page.Sections[#Section.Page.Sections + 1] = Section
			wait(0.01)
			TextBorder.Size = UDim2.new(0,Title.TextBounds.X + 8,0,4)
			return setmetatable(Section, Library.Sections)
		end
		--
		function Sections:Toggle(Properties)
			if not Properties then
				Properties = {}
			end
			--
			local Toggle = {
				Window = self.Window,
				Page = self.Page,
				Section = self,
				Risk = Properties.Risk or false,
				Name = Properties.Name or "Toggle",
				State = (
					Properties.state
						or Properties.State
						or Properties.def
						or Properties.Def
						or Properties.default
						or Properties.Default
						or false
				),
				Callback = (
					Properties.callback
						or Properties.Callback
						or Properties.callBack
						or Properties.CallBack
						or function() end
				),
				Flag = (
					Properties.flag
						or Properties.Flag
						or Properties.pointer
						or Properties.Pointer
						or Library.NextFlag()
				),
				Toggled = false,
				Colorpickers = 0,
			}
			--
			local NewToggle = Instance.new('TextButton', Toggle.Section.Elements.SectionContent)
			local Outline = Instance.new('Frame', NewToggle)
			local Inline = Instance.new('Frame', Outline)
			local Title = Instance.new('TextLabel', NewToggle)
			--
			NewToggle.Name = "NewToggle"
			NewToggle.Size = UDim2.new(1,0,0,10)
			NewToggle.BackgroundColor3 = Color3.new(1,1,1)
			NewToggle.BackgroundTransparency = 1
			NewToggle.BorderSizePixel = 0
			NewToggle.BorderColor3 = Color3.new(0,0,0)
			NewToggle.Text = ""
			NewToggle.TextColor3 = Color3.new(0,0,0)
			NewToggle.AutoButtonColor = false
			NewToggle.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			NewToggle.TextSize = 14
			--
			Outline.Name = "Outline"
			Outline.Size = UDim2.new(0,10,0,10)
			Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			--
			Inline.Name = "Inline"
			Inline.Position = UDim2.new(0,1,0,1)
			Inline.Size = UDim2.new(1,-2,1,-2)
			Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			Inline.BorderSizePixel = 0
			Inline.BorderColor3 = Color3.new(0,0,0)
			--
			--[[local inputText = string.upper(Toggle.Name)
			local targetLanguage = "Chinese" -- // English, Arabic, Albanian, Japanese, Spanish, Russian, Chinese, Urdu, French, Portuguese, Hindi
			local translatedText = utility:TranslateString(inputText, targetLanguage)]] 
			-- 
			Title.Name = "Title"
			Title.Position = UDim2.new(0,15,0,0)
			Title.Size = UDim2.new(1,0,0,10)
			Title.BackgroundColor3 = Color3.new(1,1,1)
			Title.BackgroundTransparency = 1
			Title.BorderSizePixel = 0
			Title.BorderColor3 = Color3.new(0,0,0)
			Title.TextColor3 = Toggle.Risk and Color3.fromRGB(158, 158, 24) or Color3.new(0.5686,0.5686,0.5686)
			Title.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Title.TextSize = Library.FontSize
			Title.TextXAlignment = Enum.TextXAlignment.Left
			Title.Text = Toggle.Name
			Title.TextStrokeTransparency = 0
			
			-- // Functions
			local function SetState()
				Toggle.Toggled = not Toggle.Toggled
				if Toggle.Toggled then
					table.insert(Library.ThemeObjects, Inline)
					Inline.BackgroundColor3 = Library.Accent
					if Toggle.Risk then
						Title.TextColor3 = Color3.fromRGB(227, 227, 34)
					else
						Title.TextColor3 = Color3.fromRGB(255,255,255)
					end
				else
					table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, Inline))
					Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
					if Toggle.Risk then
						Title.TextColor3 = Color3.fromRGB(158, 158, 24)
					else
						Title.TextColor3 = Color3.fromRGB(145,145,145)
					end
				end
				Library.Flags[Toggle.Flag] = Toggle.Toggled
				Toggle.Callback(Toggle.Toggled)
			end
			--
			Library:Connection(NewToggle.MouseButton1Down, SetState)
			Library:Connection(NewToggle.MouseEnter, function()
				if not Toggle.Toggled then
					table.insert(Library.ThemeObjects, Title)
					Title.TextColor3 = Library.Accent
				end
			end)
			--
			Library:Connection(NewToggle.MouseLeave, function()
				if not Toggle.Toggled then
					table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, Title))
					if Toggle.Risk then
						Title.TextColor3 = Color3.fromRGB(158, 158, 24)
					else
						Title.TextColor3 = Color3.fromRGB(145,145,145)
					end
				else
					table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, Title))
				end
			end)
			
			function Toggle:Keybind(Properties)
				local Properties = Properties or {}
				local Keybind = {
					Section = self,
					State = (
						Properties.state
							or Properties.State
							or Properties.def
							or Properties.Def
							or Properties.default
							or Properties.Default
							or nil
					),
					Mode = (Properties.mode or Properties.Mode or "Toggle"),
					Callback = (
						Properties.callback
							or Properties.Callback
							or Properties.callBack
							or Properties.CallBack
							or function() end
					),
					Flag = (
						Properties.flag
							or Properties.Flag
							or Properties.pointer
							or Properties.Pointer
							or Library.NextFlag()
					),
					Name = Properties.name or Properties.Name or "Keybind",
					Binding = nil,
				}
				local Key
				local State = false
				--
				local Outline = Instance.new('TextButton', NewToggle)
				local Inline = Instance.new('Frame', Outline)
				local Value = Instance.new('TextLabel', Inline)
				local ModeOutline = Instance.new('Frame', NewToggle)
				local ModeInline = Instance.new('Frame', ModeOutline)
				local UIListLayout = Instance.new('UIListLayout', ModeInline)
				local Hold = Instance.new('TextButton', ModeInline)
				local Toggle = Instance.new('TextButton', ModeInline)
				local Always = Instance.new('TextButton', ModeInline)
				local ListValue = Library.KeyList:NewKey(tostring(Keybind.State):gsub("Enum.KeyCode.", ""), Title.Text, Keybind.Mode)
				--
				Outline.Name = "Outline"
				Outline.Position = UDim2.new(1,0,0.5,0)
				Outline.Size = UDim2.new(0,40,0,12)
				Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
				Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
				Outline.AnchorPoint = NewVector2(1,0.5)
				Outline.Text = ""
				Outline.AutoButtonColor = false
				--
				Inline.Name = "Inline"
				Inline.Position = UDim2.new(0,1,0,1)
				Inline.Size = UDim2.new(1,-2,1,-2)
				Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
				Inline.BorderSizePixel = 0
				Inline.BorderColor3 = Color3.new(0,0,0)
				--
				Value.Name = "Value"
				Value.Size = UDim2.new(1,0,1,0)
				Value.BackgroundColor3 = Color3.new(1,1,1)
				Value.BackgroundTransparency = 1
				Value.BorderSizePixel = 0
				Value.BorderColor3 = Color3.new(0,0,0)
				Value.Text = "MB2"
				Value.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
				Value.FontFace = Font.new(Font:GetRegistry("menu_plex"))
				Value.TextSize = Library.FontSize
				Value.TextStrokeTransparency = 0
				--
				ModeOutline.Name = "ModeOutline"
				ModeOutline.Position = UDim2.new(1,65,0.5,0)
				ModeOutline.Size = UDim2.new(0,60,0,12)
				ModeOutline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
				ModeOutline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
				ModeOutline.AnchorPoint = NewVector2(1,0.5)
				ModeOutline.AutomaticSize = Enum.AutomaticSize.Y
				ModeOutline.Visible = false
				--
				ModeInline.Name = "ModeInline"
				ModeInline.Position = UDim2.new(0,1,0,1)
				ModeInline.Size = UDim2.new(1,-2,1,-2)
				ModeInline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
				ModeInline.BorderSizePixel = 0
				ModeInline.BorderColor3 = Color3.new(0,0,0)
				--
				UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
				--
				Hold.Name = "Hold"
				Hold.Size = UDim2.new(1,0,0,15)
				Hold.BackgroundColor3 = Color3.new(1,1,1)
				Hold.BackgroundTransparency = 1
				Hold.BorderSizePixel = 0
				Hold.BorderColor3 = Color3.new(0,0,0)
				Hold.Text = "Hold"
				Hold.TextColor3 = Keybind.Mode == "Hold" and Color3.new(1,1,1) or Color3.new(0.5686,0.5686,0.5686)
				Hold.AutoButtonColor = false
				Hold.FontFace = Font.new(Font:GetRegistry("menu_plex"))
				Hold.TextSize = Library.FontSize
				Hold.TextStrokeTransparency = 0
				--
				Toggle.Name = "Toggle"
				Toggle.Size = UDim2.new(1,0,0,15)
				Toggle.BackgroundColor3 = Color3.new(1,1,1)
				Toggle.BackgroundTransparency = 1
				Toggle.BorderSizePixel = 0
				Toggle.BorderColor3 = Color3.new(0,0,0)
				Toggle.Text = "Toggle"
				Toggle.TextColor3 = Keybind.Mode == "Toggle" and Color3.new(1,1,1) or Color3.new(0.5686,0.5686,0.5686)
				Toggle.AutoButtonColor = false
				Toggle.FontFace = Font.new(Font:GetRegistry("menu_plex"))
				Toggle.TextSize = Library.FontSize
				Toggle.TextStrokeTransparency = 0
				--
				Always.Name = "Always"
				Always.Size = UDim2.new(1,0,0,15)
				Always.BackgroundColor3 = Color3.new(1,1,1)
				Always.BackgroundTransparency = 1
				Always.BorderSizePixel = 0
				Always.BorderColor3 = Color3.new(0,0,0)
				Always.Text = "Always"
				Always.TextColor3 = Keybind.Mode == "Always" and Color3.new(1,1,1) or Color3.new(0.5686,0.5686,0.5686)
				Always.AutoButtonColor = false
				Always.FontFace = Font.new(Font:GetRegistry("menu_plex"))
				Always.TextSize = Library.FontSize
				Always.TextStrokeTransparency = 0

				-- // Functions
				local function set(newkey)
					if string.find(tostring(newkey), "Enum") then
						if c then
							c:Disconnect()
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = false
							end
							Keybind.Callback(false)
						end
						if tostring(newkey):find("Enum.KeyCode.") then
							newkey = Enum.KeyCode[tostring(newkey):gsub("Enum.KeyCode.", "")]
						elseif tostring(newkey):find("Enum.UserInputType.") then
							newkey = Enum.UserInputType[tostring(newkey):gsub("Enum.UserInputType.", "")]
						end
						if newkey == Enum.KeyCode.Backspace then
							Key = nil

							local text = "None"

							Value.Text = text
							ListValue:Update(text, Keybind.Name, Keybind.Mode)
						elseif newkey ~= nil then
							Key = newkey

							local text = (Library.Keys[newkey] or tostring(newkey):gsub("Enum.KeyCode.", ""))

							Value.Text = text
							ListValue:Update(text, Keybind.Name, Keybind.Mode)
						end

						Library.Flags[Keybind.Flag .. "_KEY"] = newkey
					elseif table.find({ "Always", "Toggle", "Hold" }, newkey) then
						Library.Flags[Keybind.Flag .. "_KEY STATE"] = newkey
						Keybind.Mode = newkey
						ListValue:Update((Library.Keys[Key] or tostring(Key):gsub("Enum.KeyCode.", "")), Keybind.Name, Keybind.Mode)
						if Keybind.Mode == "Always" then
							State = true
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = State
							end
							Keybind.Callback(true)
							ListValue:SetVisible(true)
						end
					else
						State = newkey
						if Keybind.Flag then
							Library.Flags[Keybind.Flag] = newkey
						end
						Keybind.Callback(newkey)
					end
				end
				--
				set(Keybind.State)
				set(Keybind.Mode)
				Outline.MouseButton1Click:Connect(function()
					if not Keybind.Binding then

						Value.Text = "..."

						Keybind.Binding = Library:Connection(
							game:GetService("UserInputService").InputBegan,
							function(input, gpe)
								set(
									input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode
										or input.UserInputType
								)
								Library:Disconnect(Keybind.Binding)
								task.wait()
								Keybind.Binding = nil
							end
						)
					end
				end)
				--
				local HoldLoop; 
				Library:Connection(game:GetService("UserInputService").InputBegan, function(inp, Typing)
					if Typing then return end 

					if HoldLoop then 
						HoldLoop:Disconnect() 
					end 
					-- 
					if (inp.KeyCode == Key or inp.UserInputType == Key) and not Keybind.Binding then
						if Keybind.Mode == "Hold" then
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = true
							end
							HoldLoop = Library:Connection(game:GetService("RunService").RenderStepped, function()
								if Keybind.Callback then
									Keybind.Callback(true)
								end
							end)
							ListValue:SetVisible(true)
						elseif Keybind.Mode == "Toggle" then
							State = not State
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = State
							end
							Keybind.Callback(State)
							ListValue:SetVisible(State)
						end
					end
				end)
				--
				Library:Connection(game:GetService("UserInputService").InputEnded, function(inp, Typing)
					if Typing then return end 
					if Keybind.Mode == "Hold" then
						if Key ~= "" or Key ~= nil then
							if inp.KeyCode == Key or inp.UserInputType == Key then
								if c then
									c:Disconnect()
									if Keybind.Flag then
										Library.Flags[Keybind.Flag] = false
									end
									if Keybind.Callback then
										Keybind.Callback(false)
									end
									ListValue:SetVisible(false)
								end
							end
						end
					end
				end)
				Library:Connection(Outline.MouseEnter, function()
					Outline.BorderColor3 = Library.Accent
				end)
				--
				Library:Connection(Outline.MouseLeave, function()
					Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
				end)
				--
				Library:Connection(Outline.MouseButton2Down, function()
					ModeOutline.Visible = not ModeOutline.Visible
				end)
				--
				Library:Connection(Hold.MouseButton1Down, function()
					set("Hold")
					Hold.TextColor3 = Color3.new(1,1,1)
					Toggle.TextColor3 = Color3.fromRGB(145,145,145)
					Always.TextColor3 = Color3.fromRGB(145,145,145)
				end)
				--
				Library:Connection(Toggle.MouseButton1Down, function()
					set("Toggle")
					Hold.TextColor3 = Color3.fromRGB(145,145,145)
					Toggle.TextColor3 = Color3.new(1,1,1)
					Always.TextColor3 = Color3.fromRGB(145,145,145)
				end)
				--
				Library:Connection(Always.MouseButton1Down, function()
					set("Always")
					Hold.TextColor3 = Color3.fromRGB(145,145,145)
					Toggle.TextColor3 = Color3.fromRGB(145,145,145)
					Always.TextColor3 = Color3.new(1,1,1)
				end)
				--
				Library:Connection(game:GetService("UserInputService").InputBegan, function(Input)
					if ModeOutline.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then
						if not Library:IsMouseOverFrame(ModeOutline) then
							ModeOutline.Visible = false
						end
					end
				end)
				--
				Library.Flags[Keybind.Flag .. "_KEY"] = Keybind.State
				Library.Flags[Keybind.Flag .. "_KEY STATE"] = Keybind.Mode
				Flags[Keybind.Flag] = set
				Flags[Keybind.Flag .. "_KEY"] = set
				Flags[Keybind.Flag .. "_KEY STATE"] = set
				--
				function Keybind:Set(key)
					set(key)
				end

				-- // Returning
				return Keybind
			end
			
			function Toggle:Colorpicker(Properties)
				local Properties = Properties or {}
				local Colorpicker = {
					State = (
						Properties.state
							or Properties.State
							or Properties.def
							or Properties.Def
							or Properties.default
							or Properties.Default
							or Color3.fromRGB(255, 0, 0)
					),
					Alpha = (
						Properties.alpha
							or Properties.Alpha
							or Properties.transparency
							or Properties.Transparency
							or 1
					),
					Callback = (
						Properties.callback
							or Properties.Callback
							or Properties.callBack
							or Properties.CallBack
							or function() end
					),
					Flag = (
						Properties.flag
							or Properties.Flag
							or Properties.pointer
							or Properties.Pointer
							or Library.NextFlag()
					),
				}
				-- // Functions
				Toggle.Colorpickers = Toggle.Colorpickers + 1
				local colorpickertypes = Library:NewPicker(
					"",
					Colorpicker.State,
					Colorpicker.Alpha,
					NewToggle,
					Toggle.Colorpickers - 1,
					Colorpicker.Flag,
					Colorpicker.Callback
				)

				function Colorpicker:Set(color)
					colorpickertypes:set(color)
				end

				-- // Returning
				return Colorpicker
			end
			
			-- // Misc Functions
			function Toggle.Set(bool)
				bool = type(bool) == "boolean" and bool or false
				if Toggle.Toggled ~= bool then
					SetState()
				end
			end
			Toggle.Set(Toggle.State)
			Library.Flags[Toggle.Flag] = Toggle.State
			Flags[Toggle.Flag] = Toggle.Set

			-- // Returning
			return Toggle
		end
		--
		function Sections:Slider(Properties)
			if not Properties then
				Properties = {}
			end
			--
			local Slider = {
				Window = self.Window,
				Page = self.Page,
				Section = self,
				Name = Properties.Name or nil,
				Min = (Properties.min or Properties.Min or Properties.minimum or Properties.Minimum or 0),
				State = (
					Properties.state
						or Properties.State
						or Properties.def
						or Properties.Def
						or Properties.default
						or Properties.Default
						or 10
				),
				Max = (Properties.max or Properties.Max or Properties.maximum or Properties.Maximum or 100),
				Sub = (
					Properties.suffix
						or Properties.Suffix
						or Properties.ending
						or Properties.Ending
						or Properties.prefix
						or Properties.Prefix
						or Properties.measurement
						or Properties.Measurement
						or ""
				),
				Decimals = (Properties.decimals or Properties.Decimals or 1),
				Callback = (
					Properties.callback
						or Properties.Callback
						or Properties.callBack
						or Properties.CallBack
						or function() end
				),
				Flag = (
					Properties.flag
						or Properties.Flag
						or Properties.pointer
						or Properties.Pointer
						or Library.NextFlag()
				),
				Disabled = (Properties.Disabled or Properties.disable or nil),
			}
			local TextValue = ("[value]" .. Slider.Sub)
			--
			local NewSlider = Instance.new('TextButton', Slider.Section.Elements.SectionContent)
			local Outline = Instance.new('Frame', NewSlider)
			local Inline = Instance.new('Frame', Outline)
			local Accent = Instance.new('TextButton', Inline)
			local Add = Instance.new('TextButton', Outline)
			local Subtract = Instance.new('TextButton', Outline)
			local Title = Instance.new('TextLabel', NewSlider)
			local Value = Instance.new('TextLabel', NewSlider)
			--
			NewSlider.Name = "NewSlider"
			NewSlider.Size = UDim2.new(1,0,0,22)
			NewSlider.BackgroundColor3 = Color3.new(1,1,1)
			NewSlider.BackgroundTransparency = 1
			NewSlider.BorderSizePixel = 0
			NewSlider.BorderColor3 = Color3.new(0,0,0)
			NewSlider.Text = ""
			NewSlider.TextColor3 = Color3.new(0,0,0)
			NewSlider.AutoButtonColor = false
			NewSlider.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			NewSlider.TextSize = 14
			--
			Outline.Name = "Outline"
			Outline.Position = UDim2.new(0,15,1,0)
			Outline.Size = UDim2.new(1,-30,0,7)
			Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			Outline.AnchorPoint = NewVector2(0,1)
			--
			Inline.Name = "Inline"
			Inline.Position = UDim2.new(0,1,0,1)
			Inline.Size = UDim2.new(1,-2,1,-2)
			Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			Inline.BorderSizePixel = 0
			Inline.BorderColor3 = Color3.new(0,0,0)
			--
			Accent.Name = "Accent"
			Accent.Size = UDim2.new(0,0,1,0)
			Accent.BackgroundColor3 = Library.Accent
			Accent.BorderSizePixel = 0
			Accent.BorderColor3 = Color3.new(0,0,0)
			Accent.Text = ""
			Accent.TextColor3 = Color3.new(0,0,0)
			Accent.AutoButtonColor = false
			Accent.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Accent.TextSize = 14
			table.insert(Library.ThemeObjects, Accent)
			table.insert(Library.ThemeObjects, Accent)
			--
			Add.Name = "Add"
			Add.Position = UDim2.new(1,5,0.5,0)
			Add.Size = UDim2.new(0,10,0,10)
			Add.BackgroundColor3 = Color3.new(1,1,1)
			Add.BackgroundTransparency = 1
			Add.BorderSizePixel = 0
			Add.BorderColor3 = Color3.new(0,0,0)
			Add.AnchorPoint = NewVector2(0,0.5)
			Add.Text = "+"
			Add.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Add.AutoButtonColor = false
			Add.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Add.TextSize = Library.FontSize
			Add.TextStrokeTransparency = 0
			--
			Subtract.Name = "Subtract"
			Subtract.Position = UDim2.new(0,-15,0.5,0)
			Subtract.Size = UDim2.new(0,10,0,10)
			Subtract.BackgroundColor3 = Color3.new(1,1,1)
			Subtract.BackgroundTransparency = 1
			Subtract.BorderSizePixel = 0
			Subtract.BorderColor3 = Color3.new(0,0,0)
			Subtract.AnchorPoint = NewVector2(0,0.5)
			Subtract.Text = "-"
			Subtract.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Subtract.AutoButtonColor = false
			Subtract.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Subtract.TextSize = Library.FontSize
			Subtract.TextStrokeTransparency = 0
			--
			Title.Name = "Title"
			Title.Position = UDim2.new(0,15,0,0)
			Title.Size = UDim2.new(1,0,0,10)
			Title.BackgroundColor3 = Color3.new(1,1,1)
			Title.BackgroundTransparency = 1
			Title.BorderSizePixel = 0
			Title.BorderColor3 = Color3.new(0,0,0)
			Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Title.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Title.TextSize = Library.FontSize
			Title.TextXAlignment = Enum.TextXAlignment.Left
			Title.Text = Slider.Name
			Title.TextStrokeTransparency = 0
			--
			Value.Name = "Value"
			Value.Position = UDim2.new(0,15,0,0)
			Value.Size = UDim2.new(1,-30,0,10)
			Value.BackgroundColor3 = Color3.new(1,1,1)
			Value.BackgroundTransparency = 1
			Value.BorderSizePixel = 0
			Value.BorderColor3 = Color3.new(0,0,0)
			Value.TextColor3 = Color3.new(1,1,1)
			Value.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Value.TextSize = Library.FontSize
			Value.TextXAlignment = Enum.TextXAlignment.Right
			Value.TextStrokeTransparency = 0
			
			-- // Functions
			local Sliding = false
			local Val = Slider.State
			local function Set(value)
				value = math.clamp(Library:Round(value, Slider.Decimals), Slider.Min, Slider.Max)

				local sizeX = ((value - Slider.Min) / (Slider.Max - Slider.Min))
				Accent.Size = UDim2.new(sizeX, 0, 1, 0)
				--Value.Text = TextValue:gsub("%[value%]", string.format("%.14g", value))
				if Slider.Disabled and value == Slider.Min then
					Value.Text = Slider.Disabled
				else
					Value.Text = TextValue:gsub("%[value%]", string.format("%.14g", value))
				end
				Val = value

				Library.Flags[Slider.Flag] = value
				Slider.Callback(value)
			end				
			--
			local function Slide(input)
				local sizeX = (input.Position.X - Outline.AbsolutePosition.X) / Outline.AbsoluteSize.X
				local value = ((Slider.Max - Slider.Min) * sizeX) + Slider.Min
				Set(value)
			end
			--
			Library:Connection(NewSlider.InputBegan, function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					Sliding = true
					Slide(input)
				end
			end)
			Library:Connection(NewSlider.InputEnded, function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					Sliding = false
				end
			end)
			Library:Connection(Accent.InputBegan, function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					Sliding = true
					Slide(input)
				end
			end)
			Library:Connection(Accent.InputEnded, function(input)
				if input.UserInputType == Enum.UserInputType.MouseButton1 then
					Sliding = false
				end
			end)
			Library:Connection(game:GetService("UserInputService").InputChanged, function(input)
				if input.UserInputType == Enum.UserInputType.MouseMovement then
					if Sliding then
						Slide(input)
					end
				end
			end)
			Library:Connection(NewSlider.MouseEnter, function()
				table.insert(Library.ThemeObjects, Title)
				Title.TextColor3 = Library.Accent
			end)
			--
			Library:Connection(NewSlider.MouseLeave, function()
				table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, Title))
				Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			end)
			--
			Library:Connection(Add.MouseButton1Down, function()
				Set(Val + 1)
			end)
			--
			Library:Connection(Subtract.MouseButton1Down, function()
				Set(Val - 1)
			end)
			--
			function Slider:Set(Value)
				Set(Value)
			end
			-- 
			function Slider:SetVisible(Bool) 
				NewSlider.Visible = Bool
			end 
			--
			Flags[Slider.Flag] = Set
			Library.Flags[Slider.Flag] = Slider.State
			Set(Slider.State)

			-- // Returning
			return Slider
		end
		--
		function Sections:Dropdown(Properties)
			local Properties = Properties or {};
			local Dropdown = {
				Window = self.Window,
				Page = self.Page,
				Section = self,
				Open = false,
				Name = Properties.Name or Properties.name or nil,
				Options = (Properties.options or Properties.Options or Properties.values or Properties.Values or {
					"1",
					"2",
					"3",
				}),
				Max = (Properties.Max or Properties.max or nil),
				State = (
					Properties.state
						or Properties.State
						or Properties.def
						or Properties.Def
						or Properties.default
						or Properties.Default
						or nil
				),
				Callback = (
					Properties.callback
						or Properties.Callback
						or Properties.callBack
						or Properties.CallBack
						or function() end
				),
				Flag = (
					Properties.flag
						or Properties.Flag
						or Properties.pointer
						or Properties.Pointer
						or Library.NextFlag()
				),
				OptionInsts = {},
			}
			--
			local NewDrop = Instance.new('Frame', Dropdown.Section.Elements.SectionContent)
			local Outline = Instance.new('TextButton', NewDrop)
			local Inline = Instance.new('Frame', Outline)
			local Value = Instance.new('TextLabel', Inline)
			local Icon = Instance.new('TextLabel', Inline)
			local Title = Instance.new('TextLabel', NewDrop)
			local ContainerOutline = Instance.new('Frame', NewDrop)
			local ContainerInline = Instance.new('Frame', ContainerOutline)
			local UIListLayout = Instance.new('UIListLayout', ContainerInline)
			--
			NewDrop.Name = "NewDrop"
			NewDrop.Size = UDim2.new(1,0,0,30)
			NewDrop.BackgroundColor3 = Color3.new(1,1,1)
			NewDrop.BackgroundTransparency = 1
			NewDrop.BorderSizePixel = 0
			NewDrop.BorderColor3 = Color3.new(0,0,0)
			--
			Outline.Name = "Outline"
			Outline.Position = UDim2.new(0,15,1,0)
			Outline.Size = UDim2.new(1,-30,0,16)
			Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			Outline.AnchorPoint = NewVector2(0,1)
			Outline.Text = ""
			Outline.AutoButtonColor = false
			--
			Inline.Name = "Inline"
			Inline.Position = UDim2.new(0,1,0,1)
			Inline.Size = UDim2.new(1,-2,1,-2)
			Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			Inline.BorderSizePixel = 0
			Inline.BorderColor3 = Color3.new(0,0,0)
			--
			Value.Name = "Value"
			Value.Position = UDim2.new(0,2,0,0)
			Value.Size = UDim2.new(1,-30,1,0)
			Value.BackgroundColor3 = Color3.new(1,1,1)
			Value.BackgroundTransparency = 1
			Value.BorderSizePixel = 0
			Value.BorderColor3 = Color3.new(0,0,0)
			Value.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Value.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Value.TextSize = Library.FontSize
			Value.TextXAlignment = Enum.TextXAlignment.Left
			Value.TextStrokeTransparency = 0
			Value.TextWrapped = true
			--
			Icon.Name = "Icon"
			Icon.Position = UDim2.new(0,-5,0,0)
			Icon.Size = UDim2.new(1,0,1,0)
			Icon.BackgroundColor3 = Color3.new(1,1,1)
			Icon.BackgroundTransparency = 1
			Icon.BorderSizePixel = 0
			Icon.BorderColor3 = Color3.new(0,0,0)
			Icon.Text = "+"
			Icon.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Icon.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Icon.TextSize = Library.FontSize
			Icon.TextXAlignment = Enum.TextXAlignment.Right
			Icon.TextStrokeTransparency = 0
			--
			Title.Name = "Title"
			Title.Position = UDim2.new(0,15,0,0)
			Title.Size = UDim2.new(1,0,0,10)
			Title.BackgroundColor3 = Color3.new(1,1,1)
			Title.BackgroundTransparency = 1
			Title.BorderSizePixel = 0
			Title.BorderColor3 = Color3.new(0,0,0)
			Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Title.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Title.TextSize = Library.FontSize
			Title.TextXAlignment = Enum.TextXAlignment.Left
			Title.TextStrokeTransparency = 0
			Title.Text = Dropdown.Name
			--
			ContainerOutline.Name = "ContainerOutline"
			ContainerOutline.Position = UDim2.new(0,15,1,2)
			ContainerOutline.Size = UDim2.new(1,-30,0,10)
			ContainerOutline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			ContainerOutline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			ContainerOutline.Visible = false
			ContainerOutline.AutomaticSize = Enum.AutomaticSize.Y
			ContainerOutline.ZIndex = 5
			--
			ContainerInline.Name = "ContainerInline"
			ContainerInline.Position = UDim2.new(0,1,0,1)
			ContainerInline.Size = UDim2.new(1,-2,1,-2)
			ContainerInline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			ContainerInline.BorderSizePixel = 0
			ContainerInline.BorderColor3 = Color3.new(0,0,0)
			ContainerInline.ZIndex = 6;
			--
			UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			
			-- // Connections
			Library:Connection(Outline.MouseButton1Down, function()
				ContainerOutline.Visible = not ContainerOutline.Visible
				if ContainerOutline.Visible then
					NewDrop.ZIndex = 2
					Icon.Text = "-"
				else
					NewDrop.ZIndex = 1
					Icon.Text = "+"
				end
			end)
			Library:Connection(game:GetService("UserInputService").InputBegan, function(Input)
				if ContainerOutline.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then
					if not Library:IsMouseOverFrame(ContainerOutline) and not Library:IsMouseOverFrame(NewDrop) then
						ContainerOutline.Visible = false
						NewDrop.ZIndex = 1
						Icon.Text = "+"
					end
				end
			end)
			Library:Connection(NewDrop.MouseEnter, function()
				Outline.BorderColor3 = Library.Accent
				table.insert(Library.ThemeObjects, Title)
				Title.TextColor3 = Library.Accent
			end)
			--
			Library:Connection(NewDrop.MouseLeave, function()
				Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
				table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, Title))
				Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			end)
			--
			local chosen = Dropdown.Max and {} or nil
			--
			local function handleoptionclick(option, button, text)
				button.MouseButton1Down:Connect(function()
					if Dropdown.Max then
						if table.find(chosen, option) then
							table.remove(chosen, table.find(chosen, option))

							local textchosen = {}
							local cutobject = false

							for _, opt in next, chosen do
								table.insert(textchosen, opt)
							end

							Value.Text = #chosen == 0 and "" or table.concat(textchosen, ",") .. (cutobject and ", ..." or "")

							text.TextColor3 = Color3.fromRGB(145,145,145)

							Library.Flags[Dropdown.Flag] = chosen
							Dropdown.Callback(chosen)
						else
							if #chosen == Dropdown.Max then
								Dropdown.OptionInsts[chosen[1]].text.TextColor3 = Color3.fromRGB(145,145,145)
								table.remove(chosen, 1)
							end

							table.insert(chosen, option)

							local textchosen = {}
							local cutobject = false

							for _, opt in next, chosen do
								table.insert(textchosen, opt)
							end

							Value.Text = #chosen == 0 and "" or table.concat(textchosen, ",") .. (cutobject and ", ..." or "")

							text.TextColor3 = Color3.fromRGB(255,255,255)

							Library.Flags[Dropdown.Flag] = chosen
							Dropdown.Callback(chosen)
						end
					else
						for opt, tbl in next, Dropdown.OptionInsts do
							if opt ~= option then
								tbl.text.TextColor3 = Color3.fromRGB(145,145,145)
							end
						end
						chosen = option
						Value.Text = option
						text.TextColor3 = Color3.fromRGB(255,255,255)
						Library.Flags[Dropdown.Flag] = option
						Dropdown.Callback(option)
					end
				end)
			end
			--
			local function createoptions(tbl)
				for _, option in next, tbl do
					Dropdown.OptionInsts[option] = {}
					local NewOption = Instance.new('TextButton', ContainerInline)
					local OptionName = Instance.new('TextLabel', NewOption)
					NewOption.Name = "NewOption"
					NewOption.Size = UDim2.new(1,0,0,15)
					NewOption.BackgroundColor3 = Color3.new(1,1,1)
					NewOption.BackgroundTransparency = 1
					NewOption.BorderSizePixel = 0
					NewOption.BorderColor3 = Color3.new(0,0,0)
					NewOption.Text = ""
					NewOption.TextColor3 = Color3.new(0,0,0)
					NewOption.AutoButtonColor = false
					NewOption.FontFace = Font.new(Font:GetRegistry("menu_plex"))
					NewOption.TextSize = 14
					NewOption.ZIndex = 7;
					Dropdown.OptionInsts[option].button = NewOption
					--
					OptionName.Name = "OptionName"
					OptionName.Position = UDim2.new(0,2,0,0)
					OptionName.Size = UDim2.new(1,0,1,0)
					OptionName.BackgroundColor3 = Color3.new(1,1,1)
					OptionName.BackgroundTransparency = 1
					OptionName.BorderSizePixel = 0
					OptionName.BorderColor3 = Color3.new(0,0,0)
					OptionName.Text = option
					OptionName.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
					OptionName.FontFace = Font.new(Font:GetRegistry("menu_plex"))
					OptionName.TextSize = Library.FontSize
					OptionName.TextXAlignment = Enum.TextXAlignment.Left
					OptionName.TextStrokeTransparency = 0
					OptionName.ZIndex = 8;
					Dropdown.OptionInsts[option].text = OptionName

					handleoptionclick(option, NewOption, OptionName)
				end
			end
			createoptions(Dropdown.Options)
			--
			local set
			set = function(option)
				if Dropdown.Max then
					table.clear(chosen)
					option = type(option) == "table" and option or {}

					for opt, tbl in next, Dropdown.OptionInsts do
						if not table.find(option, opt) then
							tbl.text.TextColor3 = Color3.fromRGB(145,145,145)
						end
					end

					for i, opt in next, option do
						if table.find(Dropdown.Options, opt) and #chosen < Dropdown.Max then
							table.insert(chosen, opt)
							Dropdown.OptionInsts[opt].text.TextColor3 = Color3.fromRGB(255,255,255)
						end
					end

					local textchosen = {}
					local cutobject = false

					for _, opt in next, chosen do
						table.insert(textchosen, opt)
					end

					Value.Text = #chosen == 0 and "" or table.concat(textchosen, ",") .. (cutobject and ", ..." or "")

					Library.Flags[Dropdown.Flag] = chosen
					Dropdown.Callback(chosen)
				end
			end
			--
			function Dropdown:Set(option)
				if Dropdown.Max then
					set(option)
				else
					for opt, tbl in next, Dropdown.OptionInsts do
						if opt ~= option then
							tbl.text.TextColor3 = Color3.fromRGB(145,145,145)
						end
					end
					if table.find(Dropdown.Options, option) then
						chosen = option
						Value.Text = option
						Dropdown.OptionInsts[option].text.TextColor3 = Color3.fromRGB(255,255,255)
						Library.Flags[Dropdown.Flag] = chosen
						Dropdown.Callback(chosen)
					else
						chosen = nil
						Value.Text = ""
						Library.Flags[Dropdown.Flag] = chosen
						Dropdown.Callback(chosen)
					end
				end
			end
			--
			function Dropdown:Refresh(tbl)
				for _, opt in next, Dropdown.OptionInsts do
					coroutine.wrap(function()
						opt.button:Destroy()
					end)()
				end
				table.clear(Dropdown.OptionInsts)

				createoptions(tbl)

				if Dropdown.Max then
					table.clear(chosen)
				else
					chosen = nil
				end

				Library.Flags[Dropdown.Flag] = chosen
				Dropdown.Callback(chosen)
			end

			-- // Returning
			if Dropdown.Max then
				Flags[Dropdown.Flag] = set
			else
				Flags[Dropdown.Flag] = Dropdown
			end
			Dropdown:Set(Dropdown.State)
			function Dropdown:SetVisible(Bool) 
				NewDrop.Visible = Bool 
			end 
			return Dropdown
		end
		--
		function Sections:Keybind(Properties)
			local Properties = Properties or {}
			local Keybind = {
				Section = self,
				Name = Properties.name or Properties.Name or "Keybind",
				State = (
					Properties.state
						or Properties.State
						or Properties.def
						or Properties.Def
						or Properties.default
						or Properties.Default
						or nil
				),
				Mode = (Properties.mode or Properties.Mode or "Toggle"),
				UseKey = (Properties.UseKey or false),
				Ignore = (Properties.ignore or Properties.Ignore or false),
				Callback = (
					Properties.callback
						or Properties.Callback
						or Properties.callBack
						or Properties.CallBack
						or function() end
				),
				Flag = (
					Properties.flag
						or Properties.Flag
						or Properties.pointer
						or Properties.Pointer
						or Library.NextFlag()
				),
				Binding = nil,
			}
			local Key
			local State = false
			--
			local NewKey = Instance.new('Frame', Keybind.Section.Elements.SectionContent)
			local Outline = Instance.new('TextButton', NewKey)
			local Inline = Instance.new('Frame', Outline)
			local Value = Instance.new('TextLabel', Inline)
			local Title = Instance.new('TextLabel', NewKey)
			local ModeOutline = Instance.new('Frame', NewKey)
			local ModeInline = Instance.new('Frame', ModeOutline)
			local UIListLayout = Instance.new('UIListLayout', ModeInline)
			local Hold = Instance.new('TextButton', ModeInline)
			local Toggle = Instance.new('TextButton', ModeInline)
			local Always = Instance.new('TextButton', ModeInline)
			local ListValue = Library.KeyList:NewKey(tostring(Keybind.State):gsub("Enum.KeyCode.", ""), Keybind.Name, Keybind.Mode)
			--
			NewKey.Name = "NewKey"
			NewKey.Size = UDim2.new(1,0,0,12)
			NewKey.BackgroundColor3 = Color3.new(1,1,1)
			NewKey.BackgroundTransparency = 1
			NewKey.BorderSizePixel = 0
			NewKey.BorderColor3 = Color3.new(0,0,0)
			--
			Outline.Name = "Outline"
			Outline.Position = UDim2.new(1,0,0.5,0)
			Outline.Size = UDim2.new(0,40,0,12)
			Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			Outline.AnchorPoint = NewVector2(1,0.5)
			Outline.Text = ""
			Outline.AutoButtonColor = false
			--
			Inline.Name = "Inline"
			Inline.Position = UDim2.new(0,1,0,1)
			Inline.Size = UDim2.new(1,-2,1,-2)
			Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			Inline.BorderSizePixel = 0
			Inline.BorderColor3 = Color3.new(0,0,0)
			--
			Value.Name = "Value"
			Value.Size = UDim2.new(1,0,1,0)
			Value.BackgroundColor3 = Color3.new(1,1,1)
			Value.BackgroundTransparency = 1
			Value.BorderSizePixel = 0
			Value.BorderColor3 = Color3.new(0,0,0)
			Value.Text = "MB2"
			Value.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Value.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Value.TextSize = Library.FontSize
			Value.TextStrokeTransparency = 0
			--
			Title.Name = "Title"
			Title.Position = UDim2.new(0,15,0,0)
			Title.Size = UDim2.new(1,0,0,10)
			Title.BackgroundColor3 = Color3.new(1,1,1)
			Title.BackgroundTransparency = 1
			Title.BorderSizePixel = 0
			Title.BorderColor3 = Color3.new(0,0,0)
			Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Title.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Title.TextSize = Library.FontSize
			Title.TextXAlignment = Enum.TextXAlignment.Left
			Title.Text = Keybind.Name
			Title.TextStrokeTransparency = 0
			--
			ModeOutline.Name = "ModeOutline"
			ModeOutline.Position = UDim2.new(1,65,0.5,0)
			ModeOutline.Size = UDim2.new(0,60,0,12)
			ModeOutline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			ModeOutline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			ModeOutline.AnchorPoint = NewVector2(1,0.5)
			ModeOutline.AutomaticSize = Enum.AutomaticSize.Y
			ModeOutline.Visible = false
			--
			ModeInline.Name = "ModeInline"
			ModeInline.Position = UDim2.new(0,1,0,1)
			ModeInline.Size = UDim2.new(1,-2,1,-2)
			ModeInline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			ModeInline.BorderSizePixel = 0
			ModeInline.BorderColor3 = Color3.new(0,0,0)
			--
			UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			--
			Hold.Name = "Hold"
			Hold.Size = UDim2.new(1,0,0,15)
			Hold.BackgroundColor3 = Color3.new(1,1,1)
			Hold.BackgroundTransparency = 1
			Hold.BorderSizePixel = 0
			Hold.BorderColor3 = Color3.new(0,0,0)
			Hold.Text = "Hold"
			Hold.TextColor3 = Keybind.Mode == "Hold" and Color3.new(1,1,1) or Color3.new(0.5686,0.5686,0.5686)
			Hold.AutoButtonColor = false
			Hold.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Hold.TextSize = Library.FontSize
			Hold.TextStrokeTransparency = 0
			--
			Toggle.Name = "Toggle"
			Toggle.Size = UDim2.new(1,0,0,15)
			Toggle.BackgroundColor3 = Color3.new(1,1,1)
			Toggle.BackgroundTransparency = 1
			Toggle.BorderSizePixel = 0
			Toggle.BorderColor3 = Color3.new(0,0,0)
			Toggle.Text = "Toggle"
			Toggle.TextColor3 = Keybind.Mode == "Toggle" and Color3.new(1,1,1) or Color3.new(0.5686,0.5686,0.5686)
			Toggle.AutoButtonColor = false
			Toggle.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Toggle.TextSize = Library.FontSize
			Toggle.TextStrokeTransparency = 0
			--
			Always.Name = "Always"
			Always.Size = UDim2.new(1,0,0,15)
			Always.BackgroundColor3 = Color3.new(1,1,1)
			Always.BackgroundTransparency = 1
			Always.BorderSizePixel = 0
			Always.BorderColor3 = Color3.new(0,0,0)
			Always.Text = "Always"
			Always.TextColor3 = Keybind.Mode == "Always" and Color3.new(1,1,1) or Color3.new(0.5686,0.5686,0.5686)
			Always.AutoButtonColor = false
			Always.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Always.TextSize = Library.FontSize
			Always.TextStrokeTransparency = 0
			
			-- // Functions
			local function set(newkey)
				if string.find(tostring(newkey), "Enum") then
					if c then
						c:Disconnect()
						if Keybind.Flag then
							Library.Flags[Keybind.Flag] = false
						end
						Keybind.Callback(false)
					end
					if tostring(newkey):find("Enum.KeyCode.") then
						newkey = Enum.KeyCode[tostring(newkey):gsub("Enum.KeyCode.", "")]
					elseif tostring(newkey):find("Enum.UserInputType.") then
						newkey = Enum.UserInputType[tostring(newkey):gsub("Enum.UserInputType.", "")]
					end
					if newkey == Enum.KeyCode.Backspace then
						Key = nil
						if Keybind.UseKey then
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = Key
							end
							Keybind.Callback(Key)
						end
						local text = "None"

						Value.Text = text
						ListValue:Update(text, Keybind.Name, Keybind.Mode)
					elseif newkey ~= nil then
						Key = newkey
						if Keybind.UseKey then
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = Key
							end
							Keybind.Callback(Key)
						end
						local text = (Library.Keys[newkey] or tostring(newkey):gsub("Enum.KeyCode.", ""))

						Value.Text = text
						ListValue:Update(text, Keybind.Name, Keybind.Mode)
					end

					Library.Flags[Keybind.Flag .. "_KEY"] = newkey
				elseif table.find({ "Always", "Toggle", "Hold" }, newkey) then
					if not Keybind.UseKey then
						Library.Flags[Keybind.Flag .. "_KEY STATE"] = newkey
						Keybind.Mode = newkey
						ListValue:Update((Library.Keys[Key] or tostring(Key):gsub("Enum.KeyCode.", "")), Toggle.Name, Keybind.Mode)
						if Keybind.Mode == "Always" then
							State = true
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = State
							end
							Keybind.Callback(true)
							ListValue:SetVisible(true)
						end
					end
				else
					State = newkey
					if Keybind.Flag then
						Library.Flags[Keybind.Flag] = newkey
					end
					Keybind.Callback(newkey)
				end
			end
			--
			set(Keybind.State)
			set(Keybind.Mode)
			Outline.MouseButton1Click:Connect(function()
				if not Keybind.Binding then

					Value.Text = "..."

					Keybind.Binding = Library:Connection(
						game:GetService("UserInputService").InputBegan,
						function(input, gpe)
							set(
								input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode
									or input.UserInputType
							)
							Library:Disconnect(Keybind.Binding)
							task.wait()
							Keybind.Binding = nil
						end
					)
				end
			end)
			--
			Library:Connection(game:GetService("UserInputService").InputBegan, function(inp, Chatting)
				if not Chatting then 
					if (inp.KeyCode == Key or inp.UserInputType == Key) and not Keybind.Binding and not Keybind.UseKey then
						if Keybind.Mode == "Hold" then
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = true
							end
							c = Library:Connection(game:GetService("RunService").RenderStepped, function()
								if Keybind.Callback then
									Keybind.Callback(true)
								end
							end)
							ListValue:SetVisible(true)
						elseif Keybind.Mode == "Toggle" then
							State = not State
							if Keybind.Flag then
								Library.Flags[Keybind.Flag] = State
							end
							Keybind.Callback(State)
							ListValue:SetVisible(State)
						end
					end 
				end 
			end)
			--
			Library:Connection(game:GetService("UserInputService").InputEnded, function(inp, Chatting)
				if not Chatting then 
					if Keybind.Mode == "Hold" and not Keybind.UseKey then
						if Key ~= "" or Key ~= nil then
							if inp.KeyCode == Key or inp.UserInputType == Key then
								if c then
									c:Disconnect()
									if Keybind.Flag then
										Library.Flags[Keybind.Flag] = false
									end
									if Keybind.Callback then
										Keybind.Callback(false)
									end
									ListValue:SetVisible(false)
								end
							end
						end
					end
				end 
			end)
			Library:Connection(Outline.MouseEnter, function()
				Outline.BorderColor3 = Library.Accent
			end)
			--
			Library:Connection(Outline.MouseLeave, function()
				Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			end)
			--
			Library:Connection(Outline.MouseButton2Down, function()
				ModeOutline.Visible = not ModeOutline.Visible
			end)
			--
			Library:Connection(NewKey.MouseEnter, function()
				table.insert(Library.ThemeObjects, Title)
				Title.TextColor3 = Library.Accent
			end)
			--
			Library:Connection(NewKey.MouseLeave, function()
				table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, Title))
				Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			end)
			--
			Library:Connection(Hold.MouseButton1Down, function()
				set("Hold")
				Hold.TextColor3 = Color3.new(1,1,1)
				Toggle.TextColor3 = Color3.fromRGB(145,145,145)
				Always.TextColor3 = Color3.fromRGB(145,145,145)
			end)
			--
			Library:Connection(Toggle.MouseButton1Down, function()
				set("Toggle")
				Hold.TextColor3 = Color3.fromRGB(145,145,145)
				Toggle.TextColor3 = Color3.new(1,1,1)
				Always.TextColor3 = Color3.fromRGB(145,145,145)
			end)
			--
			Library:Connection(Always.MouseButton1Down, function()
				set("Always")
				Hold.TextColor3 = Color3.fromRGB(145,145,145)
				Toggle.TextColor3 = Color3.fromRGB(145,145,145)
				Always.TextColor3 = Color3.new(1,1,1)
			end)
			--
			Library:Connection(game:GetService("UserInputService").InputBegan, function(Input, Chatting)
				if ModeOutline.Visible and Input.UserInputType == Enum.UserInputType.MouseButton1 then
					if not Library:IsMouseOverFrame(ModeOutline) then
						ModeOutline.Visible = false
					end
				end
			end)
			--
			Library.Flags[Keybind.Flag .. "_KEY"] = Keybind.State
			Library.Flags[Keybind.Flag .. "_KEY STATE"] = Keybind.Mode
			Flags[Keybind.Flag] = set
			Flags[Keybind.Flag .. "_KEY"] = set
			Flags[Keybind.Flag .. "_KEY STATE"] = set
			--
			function Keybind:Set(key)
				set(key)
			end

			-- // Returning
			return Keybind
		end
		--
		function Sections:Colorpicker(Properties)
			local Properties = Properties or {}
			local Colorpicker = {
				Window = self.Window,
				Page = self.Page,
				Section = self,
				Name = (Properties.Name or "Colorpicker"),
				State = (
					Properties.state
						or Properties.State
						or Properties.def
						or Properties.Def
						or Properties.default
						or Properties.Default
						or Color3.fromRGB(255, 0, 0)
				),
				Alpha = (
					Properties.alpha
						or Properties.Alpha
						or Properties.transparency
						or Properties.Transparency
						or 1
				),
				Callback = (
					Properties.callback
						or Properties.Callback
						or Properties.callBack
						or Properties.CallBack
						or function() end
				),
				Flag = (
					Properties.flag
						or Properties.Flag
						or Properties.pointer
						or Properties.Pointer
						or Library.NextFlag()
				),
				Colorpickers = 0,
			}
			--
			local NewToggle = Instance.new('Frame', Colorpicker.Section.Elements.SectionContent)
			local TextLabel = Instance.new('TextLabel', NewToggle)
			--
			NewToggle.Name = "NewToggle"
			NewToggle.Size = UDim2.new(1,0,0,10)
			NewToggle.BackgroundColor3 = Color3.new(1,1,1)
			NewToggle.BackgroundTransparency = 1
			NewToggle.BorderSizePixel = 0
			NewToggle.BorderColor3 = Color3.new(0,0,0)
			--
			TextLabel.Position = UDim2.new(0,15,0,0)
			TextLabel.Size = UDim2.new(0,100,1,0)
			TextLabel.BackgroundColor3 = Color3.new(1,1,1)
			TextLabel.BackgroundTransparency = 1
			TextLabel.BorderSizePixel = 0
			TextLabel.BorderColor3 = Color3.new(0,0,0)
			TextLabel.Text = Colorpicker.Name
			TextLabel.TextColor3 = Color3.fromRGB(145, 145, 145)
			TextLabel.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			TextLabel.TextSize = Library.FontSize
			TextLabel.TextXAlignment = Enum.TextXAlignment.Left
			TextLabel.TextStrokeTransparency = 0
			
			Library:Connection(NewToggle.MouseEnter, function()
				table.insert(Library.ThemeObjects, TextLabel)
				TextLabel.TextColor3 = Library.Accent
			end)
			--
			Library:Connection(NewToggle.MouseLeave, function()
				table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, TextLabel))
				TextLabel.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			end)

			-- // Functions
			Colorpicker.Colorpickers = Colorpicker.Colorpickers + 1
			local colorpickertypes = Library:NewPicker(
				Colorpicker.Name,
				Colorpicker.State,
				Colorpicker.Alpha,
				NewToggle,
				Colorpicker.Colorpickers - 1,
				Colorpicker.Flag,
				Colorpicker.Callback
			)

			function Colorpicker:Set(color)
				colorpickertypes:set(color, false, true)
			end

			-- // Returning
			return Colorpicker
		end
		--
		function Sections:Textbox(Properties)
			local Properties = Properties or {}
			local Textbox = {
				Window = self.Window,
				Page = self.Page,
				Section = self,
				Name = (Properties.Name or Properties.name or "textbox"),
				Placeholder = (
					Properties.placeholder
						or Properties.Placeholder
						or Properties.holder
						or Properties.Holder
						or ""
				),
				State = (
					Properties.state
						or Properties.State
						or Properties.def
						or Properties.Def
						or Properties.default
						or Properties.Default
						or ""
				),
				Callback = (
					Properties.callback
						or Properties.Callback
						or Properties.callBack
						or Properties.CallBack
						or function() end
				),
				Flag = (
					Properties.flag
						or Properties.Flag
						or Properties.pointer
						or Properties.Pointer
						or Library.NextFlag()
				),
			}
			--
			local NewDrop = Instance.new('Frame', Textbox.Section.Elements.SectionContent)
			local Outline = Instance.new('TextButton', NewDrop)
			local Inline = Instance.new('Frame', Outline)
			local Value = Instance.new('TextBox', Inline)
			local Title = Instance.new('TextLabel', NewDrop)
			--
			NewDrop.Name = "NewDrop"
			NewDrop.Size = UDim2.new(1,0,0,30)
			NewDrop.BackgroundColor3 = Color3.new(1,1,1)
			NewDrop.BackgroundTransparency = 1
			NewDrop.BorderSizePixel = 0
			NewDrop.BorderColor3 = Color3.new(0,0,0)
			--
			Outline.Name = "Outline"
			Outline.Position = UDim2.new(0,15,1,0)
			Outline.Size = UDim2.new(1,-30,0,16)
			Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			Outline.AnchorPoint = NewVector2(0,1)
			Outline.Text = ""
			Outline.AutoButtonColor = false
			--
			Inline.Name = "Inline"
			Inline.Position = UDim2.new(0,1,0,1)
			Inline.Size = UDim2.new(1,-2,1,-2)
			Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			Inline.BorderSizePixel = 0
			Inline.BorderColor3 = Color3.new(0,0,0)
			--
			Value.Name = "Value"
			Value.Position = UDim2.new(0,2,0,0)
			Value.Size = UDim2.new(1,0,1,0)
			Value.BackgroundColor3 = Color3.new(1,1,1)
			Value.BackgroundTransparency = 1
			Value.BorderSizePixel = 0
			Value.BorderColor3 = Color3.new(0,0,0)
			Value.TextColor3 = Color3.fromRGB(145,145,145)
			Value.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Value.TextSize = Library.FontSize
			Value.TextXAlignment = Enum.TextXAlignment.Left
			Value.TextStrokeTransparency = 0
			Value.TextWrapped = true
			Value.Text = Textbox.State
			Value.ClearTextOnFocus = false
			--
			Title.Name = "Title"
			Title.Position = UDim2.new(0,15,0,0)
			Title.Size = UDim2.new(1,0,0,10)
			Title.BackgroundColor3 = Color3.new(1,1,1)
			Title.BackgroundTransparency = 1
			Title.BorderSizePixel = 0
			Title.BorderColor3 = Color3.new(0,0,0)
			Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Title.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Title.TextSize = Library.FontSize
			Title.TextXAlignment = Enum.TextXAlignment.Left
			Title.TextStrokeTransparency = 0
			Title.Text = Textbox.Name
			
			-- // Connections
			Library:Connection(NewDrop.MouseEnter, function()
				Outline.BorderColor3 = Library.Accent
				table.insert(Library.ThemeObjects, Title)
				Title.TextColor3 = Library.Accent
			end)
			--
			Library:Connection(NewDrop.MouseLeave, function()
				Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
				table.remove(Library.ThemeObjects, table.find(Library.ThemeObjects, Title))
				Title.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			end)
			Value.FocusLost:Connect(function()
				Textbox.Callback(Value.Text)
				Library.Flags[Textbox.Flag] = Value.Text
			end)
			--
			local function set(str)
				Value.Text = str
				Library.Flags[Textbox.Flag] = str
				Textbox.Callback(str)
			end

			-- // Return
			Flags[Textbox.Flag] = set
			return Textbox
		end
		--
		function Sections:Button(Properties)
			local Properties = Properties or {}
			local Button = {
				Window = self.Window,
				Page = self.Page,
				Section = self,
				Name = Properties.Name or "button",
				Callback = (
					Properties.callback
						or Properties.Callback
						or Properties.callBack
						or Properties.CallBack
						or function() end
				),
			}
			--
			local NewButton = Instance.new('TextButton', Button.Section.Elements.SectionContent)
			local Outline = Instance.new('Frame', NewButton)
			local Inline = Instance.new('Frame', Outline)
			local Value = Instance.new('TextLabel', Inline)
			--
			NewButton.Name = "NewButton"
			NewButton.Size = UDim2.new(1,0,0,14)
			NewButton.BackgroundColor3 = Color3.new(1,1,1)
			NewButton.BackgroundTransparency = 1
			NewButton.BorderSizePixel = 0
			NewButton.BorderColor3 = Color3.new(0,0,0)
			NewButton.Text = ""
			NewButton.TextColor3 = Color3.new(0,0,0)
			NewButton.AutoButtonColor = false
			NewButton.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			NewButton.TextSize = 14
			--
			Outline.Name = "Outline"
			Outline.Position = UDim2.new(0,15,1,0)
			Outline.Size = UDim2.new(1,-30,0,14)
			Outline.BackgroundColor3 = Color3.new(0.1765,0.1765,0.1765)
			Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			Outline.AnchorPoint = NewVector2(0,1)
			--
			Inline.Name = "Inline"
			Inline.Position = UDim2.new(0,1,0,1)
			Inline.Size = UDim2.new(1,-2,1,-2)
			Inline.BackgroundColor3 = Color3.new(0.1294,0.1294,0.1294)
			Inline.BorderSizePixel = 0
			Inline.BorderColor3 = Color3.new(0,0,0)
			--
			Value.Name = "Value"
			Value.Size = UDim2.new(1,0,1,0)
			Value.BackgroundColor3 = Color3.new(1,1,1)
			Value.BackgroundTransparency = 1
			Value.BorderSizePixel = 0
			Value.BorderColor3 = Color3.new(0,0,0)
			Value.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			Value.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			Value.TextSize = Library.FontSize
			Value.Text = Button.Name
			Value.TextStrokeTransparency = 0
			
			Library:Connection(NewButton.MouseEnter, function()
				Outline.BorderColor3 = Library.Accent
			end)
			--
			Library:Connection(NewButton.MouseLeave, function()
				Outline.BorderColor3 = Color3.new(0.0392,0.0392,0.0392)
			end)
			--
			Library:Connection(NewButton.MouseButton1Down, function()
				Button.Callback()
				Value.TextColor3 = Library.Accent
			end)
			--
			Library:Connection(NewButton.MouseButton1Up, function()
				Value.TextColor3 = Color3.new(0.5686,0.5686,0.5686)
			end)
		end
		--
		function Sections:Label(Properties) -- fuck finobe
			local Properties = Properties or {}
			local Label = {
				Window = self.Window,
				Page = self.Page,
				Section = self,
				Name = Properties.Name or "label",
				Centered = Properties.Centered or false,
			}
			local NewButton = Instance.new('TextLabel', Label.Section.Elements.SectionContent) -- ya im lazy
			--
			NewButton.Name = "NewButton"
			NewButton.Size = UDim2.new(1,0,0,12)
			NewButton.BackgroundColor3 = Color3.new(1,1,1)
			NewButton.BackgroundTransparency = 1
			NewButton.BorderSizePixel = 0
			NewButton.BorderColor3 = Color3.new(0,0,0)
			NewButton.Text = Label.Name
			NewButton.TextColor3 = Color3.fromRGB(255,255,255)
			NewButton.FontFace = Font.new(Font:GetRegistry("menu_plex"))
			NewButton.TextSize = Library.FontSize
			NewButton.TextXAlignment = Label.Centered and Enum.TextXAlignment.Center or Enum.TextXAlignment.Left
			NewButton.TextStrokeTransparency = 0
			NewButton.TextStrokeColor3 = Color3.new(0,0,0)
		end
	end
	-- // Base Functions
	do 
		-- // Utility Functions
		do 
			function utility:ValidateClient(Player)
				return Player and Player.Character and Player.Character:FindFirstChild("Humanoid") and true or false 
			end 
			-- 
			function utility:getPlayerInformation(Player)
				local Object = Player.Character
				local Humanoid = (Object and Object:FindFirstChildOfClass("Humanoid"))
				local RootPart = (Humanoid and Humanoid.RootPart)
				--
				return Object, Humanoid, RootPart
			end
			-- 
			function utility:safeUnit(unit)
				if unit.Magnitude > 1e-8 then
					return unit
				end
				-- 
				return Vector3.zero
			end
			--
			function utility:CreateBeam(Origin, End, Color1, FaceCamera, Width, TextureSpeed, Brightness)
				local BeamPart = Instance.new("Part", Workspace)
				BeamPart.Name = "BeamPart"
				BeamPart.Transparency = 1
				--
				local Part = Instance.new("Part", BeamPart)
				Part.Size = NewVector3(1, 1, 1)
				Part.Transparency = 1
				Part.CanCollide = false
				Part.CFrame = typeof(Origin) == "CFrame" and Origin or NewCFrame(Origin)
				Part.Anchored = true
				local Attachment = Instance.new("Attachment", Part)
				local Part2 = Instance.new("Part", BeamPart)
				Part2.Size = NewVector3(1, 1, 1)
				Part2.Transparency = 1
				Part2.CanCollide = false
				Part2.CFrame = typeof(End) == "CFrame" and End or NewCFrame(End)
				Part2.Anchored = true
				Part2.Color = Color3.fromRGB(255, 255, 255)
				local Attachment2 = Instance.new("Attachment", Part2)
				local Beam = Instance.new("Beam", Part)
				Beam.FaceCamera = FaceCamera
				Beam.Color = ColorSequence.new{
					ColorSequenceKeypoint.new(0.00, Color1),
					ColorSequenceKeypoint.new(1, Color1),
				}
				Beam.Attachment0 = Attachment
				Beam.Attachment1 = Attachment2
				Beam.Transparency = NumberSequence.new{
					NumberSequenceKeypoint.new(0, 0),
					NumberSequenceKeypoint.new(1, 0),
				}
				Beam.LightEmission = Brightness
				Beam.LightInfluence = 1
				Beam.Width0 = Width
				Beam.Width1 = Width
				Beam.Texture = "rbxassetid://7151778302"
				Beam.LightEmission = 1
				Beam.LightInfluence = 1
				Beam.TextureMode = Enum.TextureMode.Wrap 
				Beam.TextureLength = 3 
				Beam.TextureSpeed = TextureSpeed
				delay(flags["Tracers Life Time"], function()
					task.spawn(function()
						for i = 0, 100 do 
							task.wait(0.01)
							Beam.Transparency = NumberSequence.new{
								NumberSequenceKeypoint.new(0, i/100),
								NumberSequenceKeypoint.new(1, i/100),
							}
						end 
						-- 
						Part:Destroy()
						Part2:Destroy()
						BeamPart:Destroy()	
					end)	
				end)
			end  
			-- 
			function utility:generateAngles(numLines)
				local angles = {}
				local angleIncrement = 2 * math.pi / numLines
				
				for i = 1, numLines do
					local angle = (i - 1) * angleIncrement
					table.insert(angles, angle)
				end
				
				return angles
			end
			-- 
			function utility:Shift(Number)
				return math.acos(math.cos(Number * math.pi)) / math.pi
			end
			-- 
			function utility:checkMessage(tbl)
				local msg = tbl[math.random(1, #tbl)]
				
				if msg == oldMsg then
					return utility:checkMessage(tbl)
				else
					oldMsg = msg
					return msg
				end
			end
			-- 
			function utility:calculateAimViewerEndPoint()
				if utility.target and utility.target.Character and flags["Aim Viewer Bypass"] then 
					local part = (flags["Jump Prediction"] and utility.target.Character.Humanoid.FloorMaterial == Enum.Material.Air and "RightFoot") or (flags["Nearest Part"] and partClosest) or flags["Single Hit Part"]
					local yOffset = utility.target.Character.Humanoid.FloorMaterial == Enum.Material.Air and flags["Manual Offset Value"] or 0 
					--
					if (checks == true) then 
						if flags["Resolver"] then  
							local endpoint = utility.target.Character[tostring(part)].Position + offset + NewVector3(0, yOffset, 0)
							Remote:FireServer("UpdateMousePos", endpoint) 
						else 
							local endpoint = utility.target.Character[tostring(part)].Position + (utility.target.Character.HumanoidRootPart.Velocity * prediction) + NewVector3(0, yOffset, 0)
							Remote:FireServer("UpdateMousePos", endpoint) 
						end   
					end   
				end 
			end     
			-- 
			function utility:getHeld() 
				if LocalPlayer.Character and LocalPlayer.Character:FindFirstChildWhichIsA("Tool") and LocalPlayer.Character then 
					return LocalPlayer.Character:FindFirstChildWhichIsA("Tool") or nil; 
				end
			end 
			-- 
			function utility:TranslateString(inputString, targetLanguage)
				local translatedString = ""
				for i = 1, #inputString do
					local char = inputString:sub(i, i)
					local translation = Languages[char] and Languages[char][targetLanguage]
					translatedString = translatedString .. (translation or char)
				end
				return translatedString
			end
			--
			function utility:GetComponents(Player)
				if utility:ValidateClient(Player) then 
					return Player.Character, Player.Character:FindFirstChild("HumanoidRootPart"), Player.Character:FindFirstChild("Humanoid")
				end 
			end 
			--
			function utility:getClosestPlayerToCursor(Radius)
				local shortestDistance = Radius or math.huge

				local closestPlayer
				for i, v in pairs(Players:GetPlayers()) do
					if v ~= LocalPlayer and utility:ValidateClient(v) and v.Character:FindFirstChild("HumanoidRootPart") then
						local pos, OnScreen = Camera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
						local magnitude = (NewVector2(pos.X, pos.Y) - NewVector2(Mouse.X, Mouse.Y)).magnitude
						if magnitude < shortestDistance and OnScreen then
							closestPlayer = v
							shortestDistance = magnitude
						end
					end
				end 
				return closestPlayer
			end
			--
			function utility:RecalculateVelocity(Player)
				if utility:ValidateClient(Player) then
					local Character, RootPart, Humanoid = utility:GetComponents(Player)

					local currentPosition = RootPart.Position
					local currentTime = tick() 
					
					task.wait()
		
					local newPosition = RootPart.Position
					local newTime = tick()
					
					local distanceTraveled = (newPosition - currentPosition) 
		
					local timeInterval = newTime - currentTime
					local velocity = distanceTraveled / timeInterval
					currentPosition = newPosition
					currentTime = newTime
					return velocity
				end
			end
			--
			function utility:drawObject(type, prop)
				local obj = Drawing.new(type)
				--
				if prop then
					for i,v in next, prop do
						obj[i] = v;
					end
				end
				return obj  
			end        
			-- 
			function utility:characterClone(Player, Color, Material, Transparency, Parent)
				for i,v in pairs(Player.Character:GetChildren()) do 
					if table.find(utility.bodyParts, v.Name) and v:IsA("MeshPart") and v.Name ~= "HumanoidRootPart" then 
						if v.Name == "UpperTorso" or v.Name == "LowerTorso" then 
							local ClonedPart = Instance.new("Part")
							ClonedPart.Anchored = true 
							ClonedPart.CanCollide = false 
							ClonedPart.Position = v.Position
							ClonedPart.Parent = Parent
							ClonedPart.Material = Enum.Material[Material]
							ClonedPart.Transparency = Transparency 
							ClonedPart.Color = Color
							ClonedPart.Size = v.Size + Vector3.new(0.01,0.01,0.01)
							ClonedPart.Name = v.Name
							ClonedPart.Rotation = v.Rotation
							ClonedPart.Shape = "Block"
						else 
							local ClonedPart = Instance.new("MeshPart")
							ClonedPart.Anchored = true 
							ClonedPart.CanCollide = false 
							ClonedPart.Position = v.Position
							ClonedPart.Parent = Parent
							ClonedPart.Material = Enum.Material[Material]
							ClonedPart.Transparency = Transparency 
							ClonedPart.Color = Color
							ClonedPart.Size = v.Size + Vector3.new(0.01,0.01,0.01)
							ClonedPart.Name = v.Name
							ClonedPart.Rotation = v.Rotation
							ClonedPart.MeshId = v.MeshId
						end 
					end 
				end
			end 
			-- 
			function utility:Remove(Player)
				if connections[Player] then 
					connections[Player]:Disconnect();
				end 
				-- 
				if highlights[Player] then 
					highlights[Player].Parent = nil;
				end 
			end 
			--
			function utility:AngleToEdge(angle, inset) -- credits to whoever made this Im just porting over my old arrows 😭
				local pos
				local ox = Cos(angle)
				local oy = Sin(angle)
				local slope = oy / ox
				-- 
				local h_edge = viewportSize.x - inset
				local v_edge = viewportSize.y - inset
				if oy < 0 then
					v_edge = inset
				end
				if ox < 0 then
					h_edge = inset
				end
				local y = (slope * h_edge) + (viewportSize.y / 2) - slope * (viewportSize.x / 2)
				if y > 0 and y < viewportSize.y - inset then
					pos = NewVector2(h_edge, y)
				else
					pos = NewVector2(
						(v_edge - viewportSize.y / 2 + slope * (viewportSize.x / 2)) / slope,
						v_edge
					)
				end
				return pos
			end
			--
			function utility:Map(N, OldMin, OldMax, Min, Max) -- I love my 1 line funcs I use once ♥😻
				return (N - OldMin) / (OldMax - OldMin) * (Max - Min) + Min
			end
			--
			function utility:getRotate(Vec, Rads) -- I didnt make this math credits to whoever can code cool maths!
				local vec = Vec.Unit
				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 NewVector2(x, y).Unit * Vec.Magnitude
			end
			--
			function utility:BoxCalculation(TorsoSize)
				local UpCalculation = NewCFrame(TorsoSize)
				local VTop = TorsoSize + (UpCalculation.UpVector * 1.8) + Camera.CFrame.UpVector;
				local VBottom = TorsoSize - (UpCalculation.UpVector * 2.5) - Camera.CFrame.UpVector;
			
				local Top, TopIsRendered = Camera:WorldToViewportPoint(VTop);
				local Bottom, BottomIsRendered = Camera:WorldToViewportPoint(VBottom);
			
				local Width = math.max(math.floor(math.abs(Top.x - Bottom.x)), 3);
				local Height = math.max(math.floor(math.max(math.abs(Bottom.y - Top.y), Width / 2)), 3);
				local BoxSize = NewVector2(math.floor(math.max(Height / 1.5, Width)), Height);
				local BoxPosition = NewVector2(math.floor(Top.x * 0.5 + Bottom.x * 0.5 - BoxSize.x * 0.5), math.floor(math.min(Top.y, Bottom.y)));
			
				return BoxSize, BoxPosition;
			end
			--
			local LastRayIgnoreUpdate, RayIgnoreList = 0, {}
			-- 
			function utility:checkRay(Instance, Distance, Position, Unit)
				local Pass = true;
				local Model = Instance.Character;

				if Distance > 999 then return false; end

				if not Model then return false end

				local _Ray = Ray.new(Position, Unit * Distance)
				if tick() - LastRayIgnoreUpdate > 3 then
					LastRayIgnoreUpdate = tick()

					table.clear(RayIgnoreList)

					table.insert(RayIgnoreList, LocalPlayer.Character)
					if utility:getHeld() then 
						table.insert(RayIgnoreList, utility:getHeld().Handle)
					end 
					table.insert(RayIgnoreList, Camera)
					
					if Mouse.TargetFilter then table.insert(RayIgnoreList, Mouse.TargetFilter) end

					if #IgnoreList > 64 then
						while #IgnoreList > 64 do
							table.remove(IgnoreList, 1)
						end
					end

					for i, v in pairs(IgnoreList) do table.insert(RayIgnoreList, v) end
				end

				local Hit = workspace:FindPartOnRayWithIgnoreList(_Ray, RayIgnoreList)
				
				if Hit and not Hit:IsDescendantOf(Model) then
					Pass = false;
					if Hit.Transparency >= .3 or not Hit.CanCollide and Hit.ClassName ~= Terrain then
						table.insert(IgnoreList, Hit)
					end
				end

				return Pass;
			end
			--
			function utility:GetOrigin()
				local Tool = utility:getHeld()
				-- 
				return (Tool ~= "None" and Tool.Handle.Position) or Camera.CFrame.Position
			end
			--
			function utility:Lerp(Value, MinColor, MaxColor)
				if Value <= 0 then return MaxColor end
				if Value >= 100 then return MinColor end
				--
				return Color3.new(
					MaxColor.R + (MinColor.R - MaxColor.R) * Value,
					MaxColor.G + (MinColor.G - MaxColor.G) * Value,
					MaxColor.B + (MinColor.B - MaxColor.B) * Value
				)
			end
		end 
		
		-- // Framework Functions 
		do 
			function framework:selectTarget() 
				local deathLoop; 
				local deathLoopRestore; 
				local espTarget = false; 
				-- 	
				if flags["Target Auto Select"] then return end 
				if flags["Silent Enabled"] then 
					if flags["Silent_Bind"] then 
						utility.target = utility:getClosestPlayerToCursor(math.huge); 
						--
						if (flags["Target Esp"] and flags["PlayerESP_Enabled"] == false) then 
							Visuals:Create({Player = utility.target})
							espTarget = true 
						end 
						-- 
						if flags["Notify"] then 
							Library:Notification("Locked onto: " .. utility.target.Name .. "", 3, Library.Accent, flags["Notification Position"])
						end 
						-- 
						if (flags["Back Track Enabled"] and flags["Back Track Method"] == "Follow") then 
							utility:characterClone(utility.target, flags["Back Track Settings"].Color, flags["Back Track Material"], flags["Back Track Settings"].Transparency, utility.folders["Part Chams"])
						end 
						--
						if flags["Spectate"] then 
							Camera.CameraSubject = utility.target.Character.Humanoid
						end 
					else 
						-- What the fuck why does this break? I dont know dont ask me >:(
						LocalPlayer.Character.Humanoid.AutoRotate = true;
						Camera.CameraSubject = LocalPlayer.Character.Humanoid;
						utility.folders["Part Chams"]:ClearAllChildren();
						-- 
						if (Visuals.Bases[utility.target] and flags["PlayerESP_Enabled"] == false) then 
							Visuals.Bases[utility.target]:Remove()
						end 
						-- 
						if utility.target then 
							utility:Remove(utility.target);
						end 
						--
						utility.drawings["Tracer"].Visible = false;
						utility.target = nil;
					end   
				end 
			end  
			-- 
			function framework:aimAssist() 
				local Enabled = flags["Aim Assist"] and flags["Aim Assist Bind"]
				if not Enabled then return end 
				-- 
				local endPosition;
				local fovCheck;  
				local Resolver, Prediction = flags["Resolver"], flags["Aim Assist Manual Prediction Value"] or 0.1413
				local Target = utility.target or aimAssistTarget
				local Part = (flags["Aim Assist Jump Prediction"] and Target.Character.Humanoid.FloorMaterial == Enum.Material.Air and "RightFoot") or flags["Aim Assist Single Hit Part"]
				local characterOffset = Resolver and framework:calculateResolverOffset(Target) * Prediction or Target.Character.HumanoidRootPart.Velocity * Prediction
				local yOffset = Target.Character.Humanoid.FloorMaterial == Enum.Material.Air and flags["Aim Assist Manual Offset Value"] or 0 
				local Checks = framework:getChecks(Target, table.find(flags["Aim Assist Checks"], "Friend Check"), table.find(flags["Aim Assist Checks"], "Wall Check"), table.find(flags["Aim Assist Checks"], "Knocked Check"), table.find(flags["Aim Assist Checks"], "Grabbed Check"));	
				-- 
				local characterPosition = Target.Character[Part].Position + characterOffset + NewVector3(0, yOffset, 0)
				-- 
				local Position = Camera:WorldToViewportPoint(Target.Character.PrimaryPart.Position)
				local Magnitude = (NewVector2(Position.X, Position.Y) - NewVector2(Mouse.X, Mouse.Y)).magnitude
				-- 
				if utility.drawings["Aim Assist FOV"].Visible then 
					fovCheck = Magnitude < utility.drawings["Aim Assist FOV"].Radius 
				else 
					fovCheck = true 
				end 
				-- 
				if Checks and fovCheck then 
					fovCheck = Magnitude
					-- 
					if flags["Aim Assist Method"] == "Use Mouse" then 
						endPosition, OnScreen = Camera:WorldToScreenPoint(characterPosition)
						-- 
						if OnScreen then 
							mousemoverel(NewVector2(endPosition.X - Mouse.X, endPosition.Y - Mouse.Y).X / (flags["Horizontal Smoothness"] + 1), NewVector2(endPosition.X - Mouse.X, endPosition.Y - Mouse.Y).Y / (flags["Vertical Smoothness"] + 1))
						end 
					else 
						Camera.CFrame = Camera.CFrame:Lerp(NewCFrame(Camera.CFrame.p, characterPosition), (100 - flags["Smoothness"]) / 100)
					end 
				end 
			end 
			-- 
			function framework:desyncInit() -- thanks wendigo for this or whoever made it 
				local Root = LocalPlayer.Character.HumanoidRootPart
				local rootVel = Root.Velocity;
				local rootAng = Random(-180, 180)
				local rootOffset do
					local X = Random(-128^2, 128^2);
					local Y = Random(0, 128^2);
					local Z = Random(-128^2, 128^2);
			
					rootOffset = NewVector3(X, -Y, Z);
				end;
				
				LocalPlayer.Character.HumanoidRootPart.CFrame *= Angle(0, Rad(rootAng), 0);
				LocalPlayer.Character.HumanoidRootPart.Velocity = rootOffset; 
			
				RunService.RenderStepped:Wait();
				
				LocalPlayer.Character.HumanoidRootPart.CFrame *= Angle(0, Rad(-rootAng), 0);
				LocalPlayer.Character.HumanoidRootPart.Velocity = rootVel;
			end
			--
			function framework:autoReload()
				local Tool = utility:getHeld()
				if flags["Auto Reload"] then 
					if Tool.Ammo.Value == 0 then 
						Remote:FireServer("Reload", Tool)
					end 
				end 
			end 
			-- 
			function framework:worldVisuals() 
				if flags["Master Switch"] then 
					if flags["Clock Time Enabled"] and Lighting.ClockTime ~= flags["Clock Time"] then 
						Lighting.ClockTime = flags["Clock Time"]
					end 
					-- 
					if flags["Color Shift Bottom"] and Lighting.ColorShift_Bottom ~= flags["Color Shift Bottom Color"] then 
						Lighting.ColorShift_Bottom = flags["Color Shift Bottom Color"].Color
					end 

					if flags["Ambient"] and Lighting.Ambient ~= flags["Ambience Color"] then 
						Lighting.Ambient = flags["Ambience Color"].Color
					end 
					-- 
					if flags["Outdoor Ambience"] and Lighting.OutdoorAmbient ~= flags["Outdoor Ambience color"] then 
						Lighting.OutdoorAmbient = flags["Outdoor Ambience color"].Color
					end 
					-- 
					if flags["Brightness Enabled"] and Lighting.Brightness ~= flags["Brightness"] then 
						Lighting.Brightness = flags["Brightness"]
					end 
					-- 
					if flags["Color Shift Top"] and Lighting.ColorShift_Top ~= flags["Color Shift Top Color"]  then 
						Lighting.ColorShift_Top = flags["Color Shift Top Color"].Color
					end 
					-- 
					if flags["Fog"] and Lighting.FogColor ~= flags["Fog Color"] then 
						Lighting.FogColor = flags["Fog Color"].Color
					end 
				end 
			end 
			--
			function framework:cframeSpeed()
				if flags["Speed Enabled"] and flags["Speed Key"] then 
					local Character = LocalPlayer.Character 
					local Move_Direction = Character.Humanoid.MoveDirection
					-- 
					Character.HumanoidRootPart.CFrame = Character.HumanoidRootPart.CFrame + (Move_Direction * (flags["Speed"] / 25))
				end 
			end 
			-- 
			function framework:chatSpam(Type, Repeat, Emojis, Symbols)
				local message = ""
				-- tp, rp, emojis, symbols
				for i = 1, Repeat and math.random(2, 5) or 1 do
					for i = 1, math.random(1, 5) do
						local index = math.random(0, 1) == 0 and "symbols" or "emojis"
						
						if index == "symbols" and Symbols then
							message ..= tostring(utx[index][math.random(1, #utx[index])])
						elseif index == "emojis" and Emojis then
							message ..= tostring(utx[index][math.random(1, #utx[index])])
						end
					end
					
					message ..= utility:checkMessage(Messages[Type])
								
					for i = 1, math.random(1, 5) do
						local index = math.random(0, 1) == 0 and "symbols" or "emojis"
						
						if index == "symbols" and Symbols then
							message ..= tostring(utx[index][math.random(1, #utx[index])])
						elseif index == "emojis" and Emojis then
							message ..= tostring(utx[index][math.random(1, #utx[index])])
						end
					end
					
					message ..= " "
				end
				
				return message
			end 
			-- 
			function framework:fly(delta) 
				if flags["Fly Enabled"] and flags["Fly Key"] then 
					LocalPlayer.Character.HumanoidRootPart.Velocity = Vector3.zero; 
					local x = 0 
					local y = 0 
					local z = 0 
					-- 
					if not Typing then 
						if InputService:IsKeyDown(Enum.KeyCode.W) then
							z -= 1
						end
						-- 
						if InputService:IsKeyDown(Enum.KeyCode.S) then
							z += 1
						end
						-- 
						if InputService:IsKeyDown(Enum.KeyCode.D) then
							x += 1
						end
						-- 
						if InputService:IsKeyDown(Enum.KeyCode.A) then
							x -= 1
						end
						-- 
						if InputService:IsKeyDown(Enum.KeyCode.Space) then
							y += 1
						end
						-- 
						if InputService:IsKeyDown(Enum.KeyCode.LeftShift) then
							y -= 1
						end
					end 
					-- 
					local direction = utility:safeUnit(Camera.CFrame:VectorToWorldSpace(NewVector3(x, 0, z)).Unit)
					LocalPlayer.Character.HumanoidRootPart.CFrame += (direction + NewVector3(0, y, 0)) * (flags["Fly Speed"] / 10) * (delta * 60)
				end 
			end 
			--
			function framework:selectPrediction()
				local Prediction; 
				
				local Predictions = {
					0.113,
					0.115,
					0.117,
					0.11923283912031938191231281632312637123821763333312731833,
					0.121316378910319876472890149871624,
					0.124521314351673817351423414,
					0.131314253678192031927365421456789331,
					0.1355991245213413214231231123121,
					0.138312341526738912,
					0.146432786576847627781237813281381382038198391293,
					0.1512783311111111111111111111111111111111111,
					0.15132132132132132555555555555555,
				}

				if flags["Auto Prediction"] then 
					for i = 1, #Predictions do 
						if game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValue() <= i * 10 then 
							Prediction = Predictions[i]
						end 
					end                 
				end 

				return Prediction or tonumber(flags["Manual Prediction Value"]) or 0.1413
			end 
			--
			function framework:calculateResolverOffset(player) 
				local Offset; 
				local Prediction = framework:selectPrediction() 
				-- 
				if flags["Resolver"] then 
					if flags["Resolver Method"] == "Recalculate Velocity" then 
						Offset = utility:RecalculateVelocity(player) * Prediction
					elseif flags["Resolver Method"] == "Suppress Velocity" then 
						Offset = Vector3.new(player.Character.HumanoidRootPart.Velocity.X, 0, player.Character.HumanoidRootPart.Velocity.Z) * Prediction
					elseif flags["Resolver Method"] == "Move Direction" then 
						Offset = player.Character.Humanoid.MoveDirection * 19.64285714289 * Prediction
					end 
				end 
				--  
				return Offset 
			end 
			-- 
			function framework:calculateNearestPart(Player, List)
				local shortestDistance = math.huge
				local closestPart
				if Player and Player.Character and Player.Character:FindFirstChild("Humanoid") and Player.Character:FindFirstChild("Head") and Player.Character.Humanoid.Health ~= 0 and Player.Character:FindFirstChild("HumanoidRootPart") then
					for i, v in pairs(Player.Character:GetChildren()) do
						if v:IsA("BasePart") then 
							local pos = Camera:WorldToViewportPoint(v.Position)
							local magnitude = (NewVector2(pos.X, pos.Y) - NewVector2(Mouse.X, Mouse.Y+36)).magnitude
								if magnitude < shortestDistance and table.find(List, v.Name) then
									closestPart = v
									shortestDistance = magnitude
								end
							end
						end 
					return closestPart
				end
			end 
			--
			local autoSelectTick = 0; 
			function framework:autoSelect()
				if autoSelectTick - tick() < flags["Auto Select Delay"]/1000 then 
					autoSelectTick = tick()
					local closestPlayer
					local shortestDistance = math.huge -- Start with a very large distance
					for _, player in next, Players:GetPlayers() do
						if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player ~= game.Players.LocalPlayer and framework:getChecks(player, table.find(flags["Silent Checks"], "Friend Check"), table.find(flags["Silent Checks"], "Wall Check"), table.find(flags["Silent Checks"], "Knocked Check"), table.find(flags["Silent Checks"], "Grabbed Check")) then
							local distance = (LocalPlayer.Character.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).magnitude
							if distance < shortestDistance then
								utility.target = player
								shortestDistance = distance
							end
						end
					end
				end 
			end
			-- 
			function framework:getChecks(Player, Friend, Wall, Knocked, Grabbed, ToolHeld)
				local Checks = true 
				--  
				if Friend and LocalPlayer:IsFriendsWith(Player.UserId) then Checks = false end 
				if Wall then Checks = utility:checkRay(Player, (Camera.CFrame.Position - Player.Character.Head.Position).Magnitude, Camera.CFrame.Position, (Player.Character.Head.Position - Camera.CFrame.Position).unit) end 
				if Knocked and Player.Character.BodyEffects["K.O"].Value == true then Checks = false end 
				if Grabbed and Player.Character:FindFirstChild("GRABBING_CONSTRAINT") then Checks = false end 
				if ToolHeld and not (LocalPlayer.Character and LocalPlayer.Character:FindFirstChildWhichIsA("Tool")) then Checks = false end 
				--
				return Checks
			end 
		end 

		-- // Esp Functions
		do 
			-- functions for drawing the mf esp :money_face: 
			function Visuals:Draw(Type, Properties)
				local Drawing = Drawing.new(Type)
				--
				for Property, Value in pairs(Properties) do
					Drawing[Property] = Value
				end
				--
				table.insert(Visuals.Drawings, Drawing)
				-- 
				return Drawing
			end
			-- 
			function Visuals:Create(Properties)
				if Properties then
					if Properties.Player then
						local Self = setmetatable({
							Player = Properties.Player,
							Info = {
								Tick = tick(),
								gunTick = tick()
							},
							Renders = {
								Weapon = Visuals:Draw("Text", {Text = "Weapon", Visible = false, Size = 13, Center = true, Color = NewHex("#ffffff"), Outline = true, OutlineColor = NewHex("#000000"), Font = Drawing.Fonts.Plex}),
								--Distance = Visuals:Draw("Text", {Text = "Distance", Visible = false, Size = 13, Center = true, Color = NewHex("#ffffff"), Outline = true, OutlineColor = NewHex("#000000"), Font = Drawing.Fonts.Plex}),
								HealthOutline = Visuals:Draw("Square", {Thickness = 1, Visible = false, Filled = true, Color = NewHex("#000000")}),
								Health = Visuals:Draw("Square", {Thickness = 1, Visible = false, Filled = true, Color = NewHex("#09ff00")}),
								HealthText = Visuals:Draw("Text", {Text = "100", Visible = false, Size = 13, Center = true, Color = NewHex("#09ff00"), Outline = true, OutlineColor = NewHex("#000000"), Font = 2}),
								Box = Visuals:Draw("Square", {Thickness = 1, Visible = false, Filled = false, Color = NewHex("#000000")}),
								BoxFill = Visuals:Draw("Square", {Thickness = 1, Visible = false, Filled = true, Color = NewHex("#000000")}),
								BoxOutline = Visuals:Draw("Square", {Thickness = 2, Visible = false, Filled = false, Color = NewHex("#000000")}),
								BoxInline = Visuals:Draw("Square", {Thickness = 1, Visible = false, Filled = false, Color = NewHex("#C30B00")}),
								Name = Visuals:Draw("Text", {Text = "Name", Visible = false, Size = 13, Center = true, Color = NewHex("#ffffff"), Outline = true, OutlineColor = NewHex("#000000"), Font = Drawing.Fonts.Plex}),
								Flag = Visuals:Draw("Text", {Text = "Flag", Visible = false, Size = 13, Center = false, Color = NewHex("#ffffff"), Outline = true, OutlineColor = NewHex("#000000"), Font = Drawing.Fonts.Plex}),
								Tool = Visuals:Draw("Text", {Text = "Tool", Visible = false, Size = 13, Center = false, Color = NewHex("#ffffff"), Outline = true, OutlineColor = NewHex("#000000"), Font = Drawing.Fonts.Plex}),
								ArmorBarOutline = Visuals:Draw("Square", {Thickness = 1, Visible = false, Filled = true, Color = NewHex("#000000")}),
								ArmorBar = Visuals:Draw("Square", {Thickness = 1, Visible = false, Filled = true, Color = NewHex("#09ff00")}),
								Arrow = Visuals:Draw("Triangle", {Visible = false, Color = NewHex("#ffffff")}),
								ArrowOutline = Visuals:Draw("Triangle", {Visible = false, Color = NewHex("#ffffff")}),
								ArmorBarText = Visuals:Draw("Text", {Text = "100", Visible = false, Size = 13, Center = true, Color = NewHex("#09ff00"), Outline = true, OutlineColor = NewHex("#000000"), Font = 2}),
								GunIcon = Visuals:Draw("Image", {Data = "", Transparency = 1, Visible = false, Size = NewVector2(129,55)}),
								Corners = {}, 
							},
							Highlight = Instance.new("Highlight", game.CoreGui), 
						}, {__index = Visuals.Base})
						--
						do -- // Corner Boxes
							for Index = 9, 16 do
								Self.Renders.Corners[Index] = Visuals:Draw("Line", {Thickness = 3, Color = NewHex("#000000")})
							end
							--
							for Index = 1, 8 do
								Self.Renders.Corners[Index] = Visuals:Draw("Line", {Thickness = 0, Color = NewHex("#1A66FF")})
							end
						end
						-- 
						Self.Highlight.Parent = game.CoreGui
						--
						Visuals.Bases[Properties.Player] = Self
						--
						return Self
					end
				end
			end
			-- 
			function Visuals.Base:Opacity(State)
				local Self = self
				--
				if Self then
					local Renders = rawget(Self, "Renders")
					--
					for Index, Drawing in pairs(Renders) do
						if Index ~= "Corners" then
							Drawing.Visible = State -- what
						end
					end
					--
					for Index = 1, 16 do
						Self.Renders.Corners[Index].Visible = State
					end
					--
					if not State then
						Self.Info.RootPosition = nil
						Self.Info.Health = nil
						Self.Info.MaxHealth = nil
					end
				end
			end
			--
			function Visuals.Base:Remove()
				local Self = self
				--
				if Self then
					setmetatable(Self, {})
					--
					Visuals.Bases[Self.Player] = nil
					--
					Self.Object = nil
					--
					for Index, Drawing in pairs(Self.Renders) do
						if Index ~= "Corners" then
							Drawing:Remove()
						end
					end
					--
					for Index = 1, 16 do
						Self.Renders.Corners[Index]:Remove()
					end
					--
					Self.Highlight.Parent = nil; 
					Self.Highlight = nil; 
					-- 
					Self.Renders = nil
					Self = nil
				end
			end
			-- 
			function Visuals.Base:Update()
				local Self = self
				local Add = 0; 
				--
				if Self then
					local Renders = rawget(Self, "Renders")
					local Player = rawget(Self, "Player")
					local Info = rawget(Self, "Info")
					local Highlights = rawget(Self, "Highlight")
					local Parent = Player.Parent
					--
					if (Player and Parent and Parent ~= nil) or (Info.RootPosition and Info.Health and Info.MaxHealth) then
						if Player then
							local Object, Humanoid, RootPart = utility:getPlayerInformation(Player)
							local TransparencyMultplier = 1
							--
							if Object and Object.Parent and (Humanoid and RootPart) then
								local Health, MaxHealth = Humanoid.Health, Humanoid.MaxHealth
								--
								if Health > 0 then
									Info.Pass = true
									Info.RootPosition = RootPart.Position
									Info.Health = Health
									Info.MaxHealth = MaxHealth
									Info.ArmorValue = Object:FindFirstChild("BodyEffects") and Object["BodyEffects"]:FindFirstChild("Armor") and Object["BodyEffects"]:FindFirstChild("Armor").Value
									Info.ToolHeld =  (Object:FindFirstChildOfClass("Tool") and Object:FindFirstChildOfClass("Tool").Name) or "None"
								else
									Info.Pass = false
								end
							else
								Info.Pass = false
							end
							--
							if Info.Pass then
								Info.Tick = tick()
							else
								local FadeTime = (250 / (2 * 100))
								local Value = Info.Tick - tick()
								--
								if Value <= FadeTime then
									TransparencyMultplier = Clamp((Value + FadeTime) * 1 / FadeTime, 0, 1)
								else
									Info.RootPosition = nil
									Info.Health = nil
									Info.MaxHealth = nil
								end
							end
							--
							if Info.RootPosition and Info.Health and Info.MaxHealth and (Object and Humanoid and RootPart) then
								local DistanceToPlayer = (Camera.CFrame.Position - Info.RootPosition).Magnitude
								local Position, OnScreen = Camera:WorldToViewportPoint(Info.RootPosition)
								--
								local Size, BoxSize, BoxPosition, BoxCenter, TL, BL, TR, BR
								--
								if OnScreen then
									local MaxDistance = tonumber(flags["ESP Distance"])
									--
									if DistanceToPlayer <= MaxDistance then
										BoxSize, BoxPosition = utility:BoxCalculation(Info.RootPosition)
										--
										if (flags["PlayerESP_Box"] == true and flags["PlayerESP_Box_Type"] == "Corner") then -- // Corner Boxes
											BoxCenter = Math:RoundVector(NewVector2(BoxPosition.X + BoxSize.X / 2, BoxPosition.Y + BoxSize.Y / 2));
											TL = Math:RoundVector(NewVector2(BoxCenter.X - BoxSize.X / 2, BoxCenter.Y - BoxSize.Y / 2)); 
											BL = Math:RoundVector(NewVector2(BoxCenter.X - BoxSize.X / 2, BoxCenter.Y + BoxSize.Y / 2));
											TR = Math:RoundVector(NewVector2(BoxCenter.X + BoxSize.X / 2, BoxCenter.Y - BoxSize.Y / 2));
											BR = Math:RoundVector(NewVector2(BoxCenter.X + BoxSize.X / 2, BoxCenter.Y + BoxSize.Y / 2));
										end
									end
								end
								--
								if (BoxSize and BoxPosition) then
									local GeneralOpacity = ((1 - 0.2) * TransparencyMultplier)
									--
									for Index, Drawing in pairs(Renders) do
										if Index ~= "Corners" then
											if Drawing.Visible then
												Drawing.Visible = false
											end
										end
									end
									-- 
									Highlights.Enabled = false 
									--
									for Index = 1, 16 do
										if Renders.Corners[Index].Visible then
											Renders.Corners[Index].Visible = false
										end
									end
									--
									if Player ~= LocalPlayer then 
										do -- // Name
											if flags["PlayerESP_Name"] then
												local Name = Renders.Name
												--
												Name.Text = Player.Name
												Name.Position = NewVector2(BoxSize.X / 2 + BoxPosition.X, BoxPosition.Y - 16)
												Name.Visible = true
												Name.Transparency = GeneralOpacity
												Name.Color = flags["PlayerESP_Name_Color"].Color
											end
										end
										-- 
										do -- // Highlights
											if flags["PlayerESP_Highlights"] then 
												Highlights.Enabled = true 
												Highlights.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
												Highlights.FillColor = flags["PlayerESP_HighlightFillSettings"].Color
												Highlights.OutlineColor = flags["PlayerESP_HighlightOutlineSettings"].Color
												Highlights.Adornee = Object
												Highlights.OutlineTransparency = flags["PlayerESP_HighlightOutlineSettings"].Transparency
												Highlights.FillTransparency = flags["PlayerESP_HighlightOutlineSettings"].Transparency
											end 
										end 
										--
										do -- // Corner Boxes
											if flags["PlayerESP_Box"] then
												if flags["PlayerESP_Box_Type"] == "Corner" then
													local BoxCorners, BoxColor1, BoxColor2 = Renders.Corners, flags["PlayerESP_Box_Color1"].Color, flags["PlayerESP_Box_Color2"].Color
													-- // Inlines
													do
														BoxCorners[1].Visible = true
														BoxCorners[1].From = TL
														BoxCorners[1].To = BoxCorners[1].From + NewVector2(0, BoxSize.X / 3)  
														BoxCorners[1].Color = BoxColor1
														--
														BoxCorners[2].Visible = true
														BoxCorners[2].From = TL + NewVector2(1, 0)
														BoxCorners[2].To = BoxCorners[2].From + NewVector2(BoxSize.X / 3, 0)
														BoxCorners[2].Color = BoxColor1
														--
														BoxCorners[3].Visible = true
														BoxCorners[3].From = TR
														BoxCorners[3].To = BoxCorners[3].From + NewVector2(-BoxSize.X / 3, 0)
														BoxCorners[3].Color = BoxColor1
														--
														BoxCorners[4].Visible = true
														BoxCorners[4].From = TR
														BoxCorners[4].To = BoxCorners[4].From + NewVector2(0, BoxSize.X / 3)
														BoxCorners[4].Color = BoxColor1
														--
														BoxCorners[5].Visible = true
														BoxCorners[5].From = BR + NewVector2(0, 1)
														BoxCorners[5].To = BoxCorners[5].From + NewVector2(0, -BoxSize.X / 3)
														BoxCorners[5].Color = BoxColor1
														--
														BoxCorners[6].Visible = true
														BoxCorners[6].From = BR
														BoxCorners[6].To = BoxCorners[6].From + NewVector2(-BoxSize.X / 3, 0)
														BoxCorners[6].Color = BoxColor1
														--
														BoxCorners[7].Visible = true
														BoxCorners[7].From = BL + NewVector2(0, 1)
														BoxCorners[7].To = BoxCorners[7].From + NewVector2(0, -BoxSize.X / 3)
														BoxCorners[7].Color = BoxColor1
														--
														BoxCorners[8].Visible = true
														BoxCorners[8].From = BL
														BoxCorners[8].To = BoxCorners[8].From + NewVector2(BoxSize.X / 3, 0)
														BoxCorners[8].Color = BoxColor1
													end
													-- // Outlines
													do
														BoxCorners[9].Visible = true
														BoxCorners[9].From = BoxCorners[1].From + NewVector2(0, -1)
														BoxCorners[9].To = BoxCorners[1].To + NewVector2(0, 1)
														BoxCorners[9].Color = BoxColor2
														--
														BoxCorners[10].Visible = true
														BoxCorners[10].From = BoxCorners[2].From
														BoxCorners[10].To = BoxCorners[2].To + NewVector2(1, 0)
														BoxCorners[10].Color = BoxColor2
														--
														BoxCorners[11].Visible = true
														BoxCorners[11].From = BoxCorners[3].From + NewVector2(2, 0)
														BoxCorners[11].To = BoxCorners[3].To + NewVector2(-1, 0)
														BoxCorners[11].Color = BoxColor2
														--
														BoxCorners[12].Visible = true
														BoxCorners[12].From = BoxCorners[4].From
														BoxCorners[12].To = BoxCorners[4].To + NewVector2(0, 1)
														BoxCorners[12].Color = BoxColor2
														--
														BoxCorners[13].Visible = true
														BoxCorners[13].From = BoxCorners[5].From
														BoxCorners[13].To = BoxCorners[5].To + NewVector2(0, -1)
														BoxCorners[13].Color = BoxColor2
														--
														BoxCorners[14].Visible = true
														BoxCorners[14].From = BoxCorners[6].From + NewVector2(2, 0)
														BoxCorners[14].To = BoxCorners[6].To + NewVector2(-1, 0)
														BoxCorners[14].Color = BoxColor2
														--
														BoxCorners[15].Visible = true
														BoxCorners[15].From = BoxCorners[7].From
														BoxCorners[15].To = BoxCorners[7].To + NewVector2(0, -1)
														BoxCorners[15].Color = BoxColor2
														--
														BoxCorners[16].Visible = true
														BoxCorners[16].From = BoxCorners[8].From + NewVector2(-1, 0)
														BoxCorners[16].To = BoxCorners[8].To + NewVector2(1, 0)
														BoxCorners[16].Color = BoxColor2
													end
													--
													for Index = 1, 16 do
														BoxCorners[Index].Transparency = GeneralOpacity
													end
												else
													local Box = Renders.BoxInline
													local BoxOutline = Renders.BoxOutline
													--
													Box.Size = BoxSize
													Box.Position = BoxPosition
													Box.Transparency = GeneralOpacity
													Box.Color = flags["PlayerESP_Box_Color1"].Color
													Box.Visible = true
													--
													BoxOutline.Size = BoxSize
													BoxOutline.Position = BoxPosition
													BoxOutline.Transparency = GeneralOpacity
													BoxOutline.Color = flags["PlayerESP_Box_Color2"].Color
													BoxOutline.Visible = true
												end
											end
											--
											if flags["PlayerESP_BoxFill"] then
												local BoxFill = Renders.BoxFill
												--
												BoxFill.Size = BoxSize
												BoxFill.Position = BoxPosition
												BoxFill.Transparency = TransparencyMultplier - flags["PlayerESP_BoxFill_Color"].Transparency
												BoxFill.Color = flags["PlayerESP_BoxFill_Color"].Color
												BoxFill.Visible = true
											end
										end
										--
										do -- // HeatlhBar
											if flags["PlayerESP_HealthBar"] then
												local ArmorColor = flags["PlayerESP_ArmorBarColor"].Color
												local HealthSize = (Floor(BoxSize.Y * (Info.Health / Info.MaxHealth)))
												local Color = utility:Lerp(Info.Health / Info.MaxHealth, flags["PlayerESP_HealthBar_Color_Higher"].Color, flags["PlayerESP_HealthBar_Color_Low"].Color)
												local Height = ((BoxPosition.Y + BoxSize.Y) - HealthSize)
												--
												-- // Bars
												local HealthBarInline, HealthBarOutline, HealthBarValue = Renders.Health, Renders.HealthOutline, Renders.HealthText
												local HealthBarTransparency = GeneralOpacity
												--
												HealthBarInline.Color = Color
												HealthBarInline.Size = NewVector2(2, HealthSize)
												HealthBarInline.Position = NewVector2(BoxPosition.X - 5, Height)
												HealthBarInline.Visible = true
												HealthBarInline.Transparency = HealthBarTransparency
												--
												HealthBarOutline.Size = NewVector2(4, BoxSize.Y + 2)
												HealthBarOutline.Position = NewVector2(BoxPosition.X - 6, BoxPosition.Y - 1)
												HealthBarOutline.Visible = true
												HealthBarOutline.Transparency = HealthBarTransparency
												--
												do -- // Value
													if flags["PlayerESP_HealthNumber"] then
														local Text = Floor(Info.Health), BoxSize.Y
														local ArmorText = Renders.ArmorBarText
														local HealthNumberPosition = NewVector2((BoxPosition.X + 1), BoxPosition.Y + BoxSize.Y)
														local Offset = flags["PlayerESP_ArmorBar"] and 23 or 18 
														--
														HealthBarValue.Text = Text
														HealthBarValue.Color = Color
														HealthBarValue.Position = NewVector2(HealthNumberPosition.X - Offset, HealthNumberPosition.Y - (Info.Health / Info.MaxHealth) * BoxSize.Y)
														HealthBarValue.Visible = true
														HealthBarValue.Transparency = HealthBarTransparency
														-- 
														if flags["PlayerESP_ArmorBar"] then 
															ArmorText.Text = tostring(Info.ArmorValue)
															ArmorText.Color = ArmorColor
															ArmorText.Position = NewVector2(HealthNumberPosition.X - Offset, HealthNumberPosition.Y - (Info.ArmorValue / 200) * BoxSize.Y)
															ArmorText.Visible = true
															ArmorText.Transparency = HealthBarTransparency
														end 
													end
												end
												-- 
												do 
													if flags["PlayerESP_ArmorBar"] then 
														local ArmorBar, ArmorBarOutline = Renders.ArmorBar, Renders.ArmorBarOutline
														-- 
														local ArmorSize = (Floor(BoxSize.Y * (Info.ArmorValue / 200)))
														local ArmorHeight = ((BoxPosition.Y + BoxSize.Y) - ArmorSize)
														-- 
														ArmorBar.Color = ArmorColor
														ArmorBar.Size = NewVector2(2, ArmorSize)
														ArmorBar.Position = NewVector2(BoxPosition.X - 10, ArmorHeight)
														ArmorBar.Visible = true
														ArmorBar.Transparency = HealthBarTransparency
														--
														ArmorBarOutline.Size = NewVector2(4, BoxSize.Y + 2)
														ArmorBarOutline.Position = NewVector2(BoxPosition.X - 11, BoxPosition.Y - 1)
														ArmorBarOutline.Visible = true
														ArmorBarOutline.Transparency = HealthBarTransparency
													end 
												end 
											end
										end
										-- 
										do -- // Gun Icons 
											if flags["PlayerESP_GunIcons"] and Info.ToolHeld ~= "None" and images[Info.ToolHeld] ~= nil then 
												local Gun = Renders.GunIcon
												-- 
												if tick() - Info.gunTick > 0.2 then 
													Info.gunTick = tick()
													Gun.Data = images[Info.ToolHeld] 
												end 
												Gun.Visible = true 
												Gun.Size = NewVector2(51.9, 22.3)
												Gun.Position = BoxPosition + NewVector2(BoxSize.X / 2, (BoxSize.Y + 2)) - NewVector2(Gun.Size.X/2, 0)
												Add += 22.3
											else 
												Add = 0 
											end 
										end 
										--
										do -- // Weapon
											if flags["PlayerESP_Weapon"] then
												local Weapon = Renders.Weapon
												--
												Weapon.Text = Info.ToolHeld
												Weapon.Position = BoxPosition + NewVector2(BoxSize.X / 2, (BoxSize.Y + 2) + Add)
												Weapon.Color = flags["PlayerESP_Weapon_Color"].Color
												Weapon.Transparency = GeneralOpacity
												Weapon.Visible = true
											end
										end
										--
										do -- // Flag
											if flags["PlayerESP_Flags"] then
												local Flag = Renders.Flag
												local FlagStr = ""
												--
												if Find(flags["PlayerESP_Flag_Options"], "Distance") then
													FlagStr ..= ("%sm\n"):format(Round(DistanceToPlayer))
												end
												-- 
												if Find(flags["PlayerESP_Flag_Options"], "Knocked") and Player.Character.BodyEffects then
													FlagStr ..= ("%s\n"):format(tostring(Object.BodyEffects["K.O"].Value and "KNOCKED" or ""))
												end
												--
												Flag.Text = FlagStr
												Flag.Position = NewVector2(BoxSize.X + BoxPosition.X + 3, BoxPosition.Y - 2)
												Flag.Visible = true
												Flag.Color = flags["PlayerESP_FlagsColor"].Color
												Flag.Transparency = GeneralOpacity
											end
										end		
									else 
										do -- // Name
											if flags["Self_PlayerESP_Name"] then
												local Name = Renders.Name
												--
												Name.Text = Player.Name
												Name.Position = NewVector2(BoxSize.X / 2 + BoxPosition.X, BoxPosition.Y - 16)
												Name.Visible = true
												Name.Transparency = GeneralOpacity
												Name.Color = flags["Self_PlayerESP_Name_Color"].Color
											end
										end
										--    
										do -- // Highlights
											if flags["Self_PlayerESP_Highlights"] then 
												Highlights.Enabled = true 
												Highlights.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
												Highlights.FillColor = flags["Self_PlayerESP_HighlightFillSettings"].Color
												Highlights.OutlineColor = flags["Self_PlayerESP_HighlightOutlineSettings"].Color
												Highlights.Adornee = Object
												Highlights.OutlineTransparency = flags["Self_PlayerESP_HighlightOutlineSettings"].Transparency
												Highlights.FillTransparency = flags["Self_PlayerESP_HighlightOutlineSettings"].Transparency
											end 
										end 
										--
										do -- // Corner Boxes
											if flags["Self_PlayerESP_Box"] then
												local Box = Renders.BoxInline
												local BoxOutline = Renders.BoxOutline
												--
												Box.Size = BoxSize
												Box.Position = BoxPosition
												Box.Transparency = GeneralOpacity
												Box.Color = flags["Self_PlayerESP_Box_Color1"].Color
												Box.Visible = true
												--
												BoxOutline.Size = BoxSize
												BoxOutline.Position = BoxPosition
												BoxOutline.Transparency = GeneralOpacity
												BoxOutline.Color = flags["Self_PlayerESP_Box_Color2"].Color
												BoxOutline.Visible = true
											end
											--
											if flags["Self_PlayerESP_Box"] then
												local BoxFill = Renders.BoxFill
												--
												BoxFill.Size = BoxSize
												BoxFill.Position = BoxPosition
												BoxFill.Transparency = TransparencyMultplier - flags["Self_PlayerESP_BoxFill_Color"].Transparency
												BoxFill.Color = flags["Self_PlayerESP_BoxFill_Color"].Color
												BoxFill.Visible = true
											end
										end
										--
										do -- // HeatlhBar
											if flags["Self_PlayerESP_HealthBar"] then
												local ArmorColor = flags["Self_PlayerESP_ArmorBarColor"].Color
												local HealthSize = (Floor(BoxSize.Y * (Info.Health / Info.MaxHealth)))
												local Color = utility:Lerp(Info.Health / Info.MaxHealth, flags["Self_PlayerESP_HealthBar_Color_Higher"].Color, flags["Self_PlayerESP_HealthBar_Color_Low"].Color)
												local Height = ((BoxPosition.Y + BoxSize.Y) - HealthSize)
												--
												-- // Bars
												local HealthBarInline, HealthBarOutline, HealthBarValue = Renders.Health, Renders.HealthOutline, Renders.HealthText
												local HealthBarTransparency = GeneralOpacity
												--
												HealthBarInline.Color = Color
												HealthBarInline.Size = NewVector2(2, HealthSize)
												HealthBarInline.Position = NewVector2(BoxPosition.X - 5, Height)
												HealthBarInline.Visible = true
												HealthBarInline.Transparency = HealthBarTransparency
												--
												HealthBarOutline.Size = NewVector2(4, BoxSize.Y + 2)
												HealthBarOutline.Position = NewVector2(BoxPosition.X - 6, BoxPosition.Y - 1)
												HealthBarOutline.Visible = true
												HealthBarOutline.Transparency = HealthBarTransparency
												--
												do -- // Value
													if flags["Self_PlayerESP_HealthNumber"] then
														local Text = Floor(Info.Health), BoxSize.Y
														local ArmorText = Renders.ArmorBarText
														local HealthNumberPosition = NewVector2((BoxPosition.X + 1), BoxPosition.Y + BoxSize.Y)
														local Offset = flags["Self_PlayerESP_ArmorBar"] and 23 or 18 
														--
														HealthBarValue.Text = Text
														HealthBarValue.Color = Color
														HealthBarValue.Position = NewVector2(HealthNumberPosition.X - Offset, HealthNumberPosition.Y - (Info.Health / Info.MaxHealth) * BoxSize.Y)
														HealthBarValue.Visible = true
														HealthBarValue.Transparency = HealthBarTransparency
														-- 
														if flags["Self_PlayerESP_ArmorBar"] then 
															ArmorText.Text = tostring(Info.ArmorValue)
															ArmorText.Color = ArmorColor
															ArmorText.Position = NewVector2(HealthNumberPosition.X - Offset, HealthNumberPosition.Y - (Info.ArmorValue / 200) * BoxSize.Y)
															ArmorText.Visible = true
															ArmorText.Transparency = HealthBarTransparency
														end 
													end
												end
												-- 
												do 
													if flags["Self_PlayerESP_ArmorBar"] then 
														local ArmorBar, ArmorBarOutline = Renders.ArmorBar, Renders.ArmorBarOutline
														-- 
														local ArmorSize = (Floor(BoxSize.Y * (Info.ArmorValue / 200)))
														local ArmorHeight = ((BoxPosition.Y + BoxSize.Y) - ArmorSize)
														-- 
														ArmorBar.Color = ArmorColor
														ArmorBar.Size = NewVector2(2, ArmorSize)
														ArmorBar.Position = NewVector2(BoxPosition.X - 10, ArmorHeight)
														ArmorBar.Visible = true
														ArmorBar.Transparency = HealthBarTransparency
														--
														ArmorBarOutline.Size = NewVector2(4, BoxSize.Y + 2)
														ArmorBarOutline.Position = NewVector2(BoxPosition.X - 11, BoxPosition.Y - 1)
														ArmorBarOutline.Visible = true
														ArmorBarOutline.Transparency = HealthBarTransparency
													end 
												end 
											end
										end
										-- 
										do -- // Gun Icons 
											if flags["Self_PlayerESP_GunIcons"] and Info.ToolHeld ~= "None" and images[Info.ToolHeld] ~= nil then 
												local Gun = Renders.GunIcon
												-- 
												if tick() - Info.gunTick > 0.75 then 
													Info.gunTick = tick()
													Gun.Data = images[Info.ToolHeld] 
												end 
												Gun.Visible = true 
												Gun.Size = NewVector2(51.9, 22.3)
												Gun.Position = BoxPosition + NewVector2(BoxSize.X / 2, (BoxSize.Y + 2)) - NewVector2(Gun.Size.X/2, 0)
												Add += 22.3
											else 
												Add = 0 
											end 
										end 
										--
										do -- // Weapon
											if flags["Self_PlayerESP_Weapon"] then
												local Weapon = Renders.Weapon
												--
												Weapon.Text = Info.ToolHeld
												Weapon.Position = BoxPosition + NewVector2(BoxSize.X / 2, (BoxSize.Y + 2) + Add)
												Weapon.Color = flags["Self_PlayerESP_Weapon_Color"].Color
												Weapon.Transparency = GeneralOpacity
												Weapon.Visible = true
											end
										end
										--
										do -- // Flag
											if flags["Self_PlayerESP_Flags"] then
												local Flag = Renders.Flag
												local FlagStr = ""
												--
												if Find(flags["Self_PlayerESP_Flag_Options"], "Distance") then
													FlagStr ..= ("%sm\n"):format(Round(DistanceToPlayer))
												end
												-- 
												if Find(flags["Self_PlayerESP_Flag_Options"], "Knocked") and Player.Character.BodyEffects then
													FlagStr ..= ("%s\n"):format(tostring(Object.BodyEffects["K.O"].Value and "KNOCKED" or ""))
												end
												--
												Flag.Text = FlagStr
												Flag.Position = NewVector2(BoxSize.X + BoxPosition.X + 3, BoxPosition.Y - 2)
												Flag.Visible = true
												Flag.Color = flags["Self_PlayerESP_FlagsColor"].Color
												Flag.Transparency = GeneralOpacity
											end
										end		
									end 
									return
								end
							end
						end
						--
						return Self:Opacity(false)
					end
					--
					return Self:Remove()
				end
			end
			-- 
			function Visuals:Unload()
				for Index, Base in pairs(Visuals.Bases) do
					Base:Remove()
				end
			end
		end 

		-- // Creations + Setting Stuff 
		do 
			utility.drawings["Tracer"] = utility:drawObject("Line", {})
			utility.drawings["Aim Assist FOV"] = utility:drawObject("Circle", {Visible = false, Radius = 8, Color = Color3.fromRGB(0,0,0), Filled = false})
			utility.drawings["Sub"] = utility:drawObject("Text", {Outline = true, Text = "lunar", Color = Color3.new(1, 1, 1)})
			utility.drawings["Domain"] = utility:drawObject("Text", {Outline = true, Text = ".vip", Color = Color3.fromRGB(132, 108, 188)})
			--
			for i,v in pairs(bodyClone:GetDescendants()) do 
				if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then 
					v.CanCollide = false 
					v.Transparency = 0
				end 
			end 
			
			-- drawing lines for crosshair
			do 
				for Index = 1, 4 do
					local line = utility:drawObject("Line",{
						Visible = false,
						Color = Color3.fromRGB(255,255,255),
						Thickness = 1,
						ZIndex = 2,
						Transparency = 1
					})
					--
					crosshair_Lines[Index] = line
					-- 
					local line_1 = utility:drawObject("Line",{
						Visible = false,
						Color = Color3.fromRGB(0, 0, 0),
						Thickness = 2.5,
						ZIndex = 1,
						Transparency = 1
					})
					--
					crosshair_Outlines[Index] = line_1
				end
			end 
			
			-- // Chat spam framework
			do 
				Messages = {
					["Scottish"] = {
						"You Grandma Still Wears Shin Pads To Work 🤣🤣",
						"Melon Head",
						"Your Ma Is A Bin Man 🤣🤣",
						"Taped You Like I Did To Your Ma",
						"Fore Headed Mong",
						"Such A Fruit",
						"YoUr A BoOt",
						"keep Trying You Jobby",
					},
					["Lunar"] = {
						"Owned By Lunar",
						"Lunar Lunar Lunar RAHHHHH",
						"Slammed by Lunar",
						"YOU GOT SLAMMED BY LUNAR",
						"SEEMS LIKE YOU NEED LUNAR GG/LUNARVIP",
						"GG/LUNARVIP GG/LUNARVIP GG/LUNARVIP",
						"GG/LUNARVIP <-- THIS WILL LET YOU COPE WITH YOUR ISSUES",
						"WHAT YOU CANT BEAT LUNAR?",
						"PRO TIP: BUY LUNAR",
					},
				}
				utx = {
					["symbols"] = {
						"~",
						"!",
						"@",
						"#",
						"$",
						"%",
						"^",
						"&",
						"*",
						"(",
						")",
						"_",
						"+",
						"{",
						"}",
						"|",
						":",
						'"',
						"<",
						">",
						"?",
						".",
						",",
						"/",
						"'",
					},
					["emojis"] = {
						"😎",
						"🤣",
						"👀",
						"🙄",
						"🔥",
						"😅",
						"😂",
						"😹",
						"😛",
						"🤩",
						"🌈",
						"😎",
						"🤠",
						"😔",
						"🤡",
						"💤",
						"🚶",
						"🙀",
						"😂",
						"📈",
						"🤏",
						"🌈",
						"😎",
						"🤠",
						"😔",
					},
				}
			end 
		end 

		-- // Hit Reg 
		do 
			function HitReg:HitMarker(Gap, Color, Time) 
				local Lines = {} 
				local Hitmarker = true 
				-- 
				for i = 1, 4 do 
					Lines[i] = utility:drawObject("Line", {Color = Color, Visible = true, Transparency = 1, Thickness = 1})
				end 
				-- 
				local function setMarkerPos()
					Lines[1].From = NewVector2(Mouse.X + Gap, (Mouse.Y + Offset) + Gap)
					Lines[1].To = NewVector2(Mouse.X + (Gap * 2.5), (Mouse.Y + Offset) + (Gap * 2.5))
					--
					Lines[2].From = NewVector2(Mouse.X + Gap, (Mouse.Y + Offset) - Gap)
					Lines[2].To = NewVector2(Mouse.X + (Gap * 2.5), (Mouse.Y + Offset) - (Gap * 2.5))
					--
					Lines[3].From = NewVector2(Mouse.X - Gap, (Mouse.Y + Offset) + Gap)
					Lines[3].To = NewVector2(Mouse.X - (Gap * 2.5), (Mouse.Y + Offset) + (Gap * 2.5))
					--
					Lines[4].From = NewVector2(Mouse.X - Gap, (Mouse.Y + Offset) - Gap)
					Lines[4].To = NewVector2(Mouse.X - (Gap * 2.5), (Mouse.Y + Offset) - (Gap * 2.5))
				end 
				-- 
				delay(Time, function()
					for i = Time, 0, -0.1 do
						task.wait()
						for _, Value in next, Lines do
							Value.Transparency = i
						end
						setMarkerPos()
					end
					-- 
					for _, Value in next, Lines do
						Value:Remove()
					end
					-- 
					Hitmarker = false 
				end)
			end 
			-- 
			function HitReg:HitMarker3D(Gap, Color, Time, Hit) 
				local Lines = {} 
				local Hitmarker = true 
				-- 
				for i = 1, 4 do 
					Lines[i] = utility:drawObject("Line", {Color = Color, Visible = true, Transparency = 1, Thickness = 1})
				end     
				-- 
				task.spawn(function()
					while Hitmarker do 
						local Position3D, OnScreen = Camera:WorldToViewportPoint(Hit)
						-- 
						Lines[1].From = NewVector2(Position3D.X + Gap, Position3D.Y + Gap)
						Lines[1].To = NewVector2(Position3D.X + (Gap * 2.5), Position3D.Y + (Gap * 2.5))
						--
						Lines[2].From = NewVector2(Position3D.X + Gap, Position3D.Y - Gap)
						Lines[2].To = NewVector2(Position3D.X + (Gap * 2.5), Position3D.Y - (Gap * 2.5))
						--
						Lines[3].From = NewVector2(Position3D.X - Gap, Position3D.Y + Gap)
						Lines[3].To = NewVector2(Position3D.X - (Gap * 2.5), Position3D.Y + (Gap * 2.5))
						--
						Lines[4].From = NewVector2(Position3D.X - Gap, Position3D.Y - Gap)
						Lines[4].To = NewVector2(Position3D.X - (Gap * 2.5), Position3D.Y - (Gap * 2.5))
						-- 
						for _, Value in next, Lines do
							Value.Visible = OnScreen
						end
						-- 
						task.wait()
					end 
				end)
				-- 
				delay(Time, function()
					for i = Time, 0, -0.1 do
						task.wait()
						for _, Value in next, Lines do
							Value.Transparency = i
						end
					end
					-- 
					for _, Value in next, Lines do
						Value:Remove()
					end
					-- 
					Hitmarker = false 
				end)
			end 
			--
			function HitReg:HitEffect(Type, Character)
				local function convert(color)
					return color.r/5, color.g/5, color.b/5
				end 
				-- 
				local function Weld(x,y)
					local W = Instance.new("Weld")
					W.Part0 = x
					W.Part1 = y
					local CJ = NewCFrame(x.Position)
					local C0 = x.CFrame:inverse()*CJ
					local C1 = y.CFrame:inverse()*CJ
					W.C0 = C0
					W.C1 = C1
					W.Parent = x
				end
				-- 
				if Type == "Confetti" then 
					task.spawn(function()
						local Confetti_Amount = 20000
						local RootPart = Character.HumanoidRootPart
						local ConfettiClone = hitmodule:Clone()
						ConfettiClone.RainbowParticles.Rate = Confetti_Amount
						ConfettiClone.Parent = workspace
						ConfettiClone.CanCollide = false
						ConfettiClone.CFrame = RootPart.CFrame
						-- 
						for i = Confetti_Amount, 0 , -(Confetti_Amount/50) do 
							task.wait()
							ConfettiClone.RainbowParticles.Rate = i
						end 
						-- 
						delay(5, function()
							ConfettiClone:Destroy()
						end)
					end)
				elseif Type == "Nova" then 
					local Effect = Nova:Clone() 
					Effect.Parent = Character.HumanoidRootPart
					--	
					for i,v in pairs(Effect:GetChildren()) do 
						v.Rate = 0
						v.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0, 0, 0)), ColorSequenceKeypoint.new(0.5, Color3.new(convert(flags["Hit Effect Settings"].Color))),ColorSequenceKeypoint.new(1, Color3.new(0, 0, 0)),})
						v:Emit()
					end 
					-- 	
					delay(2, function()
						Effect:Destroy()
					end)
				else 
					local Clone = SparklesEffect:Clone() 
					Clone.Parent = Character.HumanoidRootPart
					Clone.LockedToPart = false 
					Clone.Acceleration = Vector3.new(0,-100,0)
					-- 
					Clone:Emit(15)
					--
					delay(5, function() Clone:Destroy() end)
				end 
			end 
			-- 
			function HitReg:HitSound(Id, Volume, Pitch)
				local Sound = Instance.new("Sound", game:GetService("SoundService")); local PitchSound = Instance.new("PitchShiftSoundEffect", Sound)
				-- 
				Sound.SoundId = "rbxassetid://".. Id ..""
				--[[writefile("song.mp3", game:HttpGet("https://lunar.feet.media/osiris/cmwr7ecb.mp3"))
				Sound.SoundId = getcustomasset("song.mp3")]]
				Sound.Volume = Volume
				PitchSound.Octave = Pitch
				Sound.PlayOnRemove = true
				Sound:Destroy()
			end 
		end 

		for i,v in pairs(LocalPlayer.Character:GetChildren()) do 
			if v:IsA("BasePart") then 
				table.insert(utility.bodyParts, v.Name)
			end 
		end 

		-- // Tweens 
		do
			Tween.EasingStyles = {
				[Enum.EasingStyle.Linear] = {
					[Enum.EasingDirection.In] = function(Delta)
						return Delta
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return Delta
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						return Delta
					end
				},
				[Enum.EasingStyle.Cubic] = {
					[Enum.EasingDirection.In] = function(Delta)
						return Delta ^ 3
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return ((Delta - 1) ^ 3) + 1
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return (4 * Delta ^ 3)
						elseif 0.5 <= Delta and Delta <= 1 then
							return (4 * (Delta - 1) ^ 3) + 1
						end
					end
				},
				[Enum.EasingStyle.Quad] = {
					[Enum.EasingDirection.In] = function(Delta)
						return Delta ^ 2
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return (-(Delta - 1) ^ 2) + 1
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return (2 * Delta ^ 2)
						elseif 0.5 <= Delta and Delta <= 1 then
							return -(2 * (Delta - 1) ^ 2) + 1
						end
					end
				},
				[Enum.EasingStyle.Quart] = {
					[Enum.EasingDirection.In] = function(Delta)
						return Delta ^ 4
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return (-(Delta - 1) ^ 4) + 1
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return (8 * Delta ^ 4)
						elseif 0.5 <= Delta and Delta <= 1 then
							return -(8 * (Delta - 1) ^ 4) + 1
						end
					end
				},
				[Enum.EasingStyle.Quint] = {
					[Enum.EasingDirection.In] = function(Delta)
						return Delta ^ 5
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return ((Delta - 1) ^ 5) + 1
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return (16 * Delta ^ 5)
						elseif 0.5 <= Delta and Delta <= 1 then
							return (16 * (Delta - 1) ^ 5) + 1
						end
					end
				},
				[Enum.EasingStyle.Sine] = {
					[Enum.EasingDirection.In] = function(Delta)
						return Sin(((Pi / 2) * Delta) - (Pi / 2)) + 1
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return Sin((Pi / 2) * Delta)
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						return (0.5 * Sin((Pi * Delta) - (Pi / 2))) + 0.5
					end
				},
				[Enum.EasingStyle.Exponential] = {
					[Enum.EasingDirection.In] = function(Delta)
						return (2 ^ ((10 * Delta) - 10)) - 0.001
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return 1.001 * (-2 ^ -(10 * Delta)) + 1
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return 0.5 * (2 ^ ((20 * Delta) - 10)) - 0.0005
						elseif 0.5 <= Delta and Delta <= 1 then
							return 0.50025 * (-2 ^ (-(20 * Delta) + 10)) + 1
						end
					end
				},
				[Enum.EasingStyle.Back] = {
					[Enum.EasingDirection.In] = function(Delta)
						return (Delta * Delta) * (Delta * (1.70158 + 1) - 1.70158)
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return ((Delta - 1) ^ 2) * ((Delta - 1) * (1.70158 + 1) + 1.70158) + 1
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return (2 * (Delta * Delta)) * ((2 * Delta) * (2.5949095 + 1) - 2.5949095)
						elseif 0.5 <= Delta and Delta <= 1 then
							return (0.5 * ((2 * Delta) - 2) ^ 2) * (((2 * Delta) - 2) * (2.5949095 + 1) + 2.5949095) + 1
						end
					end
				},
				[Enum.EasingStyle.Bounce] = {
					[Enum.EasingDirection.In] = function(Delta)
						if 0 <= Delta and Delta <= (1 / 2.75) then
							return 7.5625 * (Delta * Delta)
						elseif (1 / 2.75) <= Delta and Delta <= (2 / 2.75) then
							return 7.5625 * (Delta - (1.5 / 2.75)) ^ 2 + 0.75
						elseif (2 / 2.75) <= Delta and Delta <= (2.5 / 2.75) then
							return 7.5625 * (Delta - (2.25 / 2.75)) ^ 2 + 0.9375
						elseif (2.5 / 2.75) <= Delta and Delta <= 1 then
							return 7.5625 * (Delta - (2.625 / 2.75)) ^ 2 + 0.984375
						end
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						if 0 <= Delta and Delta <= (0.25 / 2.75) then
							return -7.5625 * (1 - Delta - (2.625 / 2.75)) ^ 2 + 0.015625
						elseif (0.25 / 2.75) <= Delta and Delta <= (0.75 / 2.75) then
							return -7.5625 * (1 - Delta - (2.25 / 2.75)) ^ 2 + 0.0625
						elseif (0.75 / 2.75) <= Delta and Delta <= (1.75 / 2.75) then
							return -7.5625 * (1 - Delta - (1.5 / 2.75)) ^ 2 + 0.25
						elseif (1.75 / 2.75) <= Delta and Delta <= 1 then
							return 1 - 7.5625 * (1 - Delta) ^ 2
						end
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= (0.125 / 2.75) then
							return 0.5 * (-7.5625 * (1 - (2 * Delta) - (2.625 / 2.75)) ^ 2 + 0.015625)
						elseif (0.125 / 2.75) <= Delta and Delta <= (0.375 / 2.75) then
							return 0.5 * (-7.5625 * (1 - (2 * Delta) - (2.25 / 2.75)) ^ 2 + 0.0625)
						elseif (0.375 / 2.75) <= Delta and Delta <= (0.875 / 2.75) then
							return 0.5 * (-7.5625 * (1 - (2 * Delta) - (1.5 / 2.75)) ^ 2 + 0.25)
						elseif (0.875 / 2.75) <= Delta and Delta <= 0.5 then
							return 0.5 * (1 - 7.5625 * (1 - (2 * Delta)) ^ 2)
						elseif 0.5 <= Delta and Delta <= (1.875 / 2.75) then
							return 0.5 + 3.78125 * ((2 * Delta) - 1) ^ 2
						elseif (1.875 / 2.75) <= Delta and Delta <= (2.375 / 2.75) then
							return 3.78125 * ((2 * Delta) - (4.25 / 2.75)) ^ 2 + 0.875
						elseif (2.375 / 2.75) <= Delta and Delta <= (2.625 / 2.75) then
							return 3.78125 * ((2 * Delta) - (5 / 2.75)) ^ 2 + 0.96875
						elseif (2.625 / 2.75) <= Delta and Delta <= 1 then
							return 3.78125 * ((2 * Delta) - (5.375 / 2.75)) ^ 2 + 0.9921875
						end
					end
				},
				[Enum.EasingStyle.Elastic] = {
					[Enum.EasingDirection.In] = function(Delta)
						return (-2 ^ (10 * (Delta - 1))) * Sin(((2 * Pi) * (Delta - 1 - (0.3 / 4))) / 0.3)
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return (2 ^ (-10 * Delta)) * Sin(((2 * Pi) * (Delta - (0.3 / 4))) / 0.3) + 1
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return -0.5 * (2 ^ ((20 * Delta) - 10)) * Sin(((2 * Pi) * ((2 * Delta) - 1.1125)) / 0.45)
						elseif 0.5 <= Delta and Delta <= 1 then
							return 0.5 * (2 ^ ((-20 * Delta) + 10)) * Sin(((2 * Pi) * ((2 * Delta) - 1.1125)) / 0.45) + 1
						end
					end
				},
				[Enum.EasingStyle.Circular] = {
					[Enum.EasingDirection.In] = function(Delta)
						return -Sqrt(1 - Delta ^ 2) + 1
					end,
					[Enum.EasingDirection.Out] = function(Delta)
						return Sqrt(-(Delta - 1) ^ 2 + 1)
					end,
					[Enum.EasingDirection.InOut] = function(Delta)
						if 0 <= Delta and Delta <= 0.5 then
							return -Sqrt(-Delta ^ 2 + 0.25) + 0.5
						elseif 0.5 <= Delta and Delta <= 1 then
							return Sqrt(-(Delta - 1) ^ 2 + 0.25) + 0.5
						end
					end
				}
			}
		end
	end
end 
--
local crosshair_lineOffsets = utility:generateAngles(4); 
local Window = Library:Window({Size = UDim2.new(0,580,0,600)}) do 
	-- // Rage
	local aiming = Window:Page({Name = "Rage", Weapons = true}) do
		local Settings = aiming:Weapon({Icon = "rbxassetid://6031280882"})
		local Visuals = aiming:Weapon({Icon = "rbxassetid://7300480952"})
		-- 
		local mainTarget = Settings:Section({Name = "Main", Size = 330}) do 
			mainTarget:Toggle({Name = "Enabled", Flag = "Silent Enabled", Risk = true})
			mainTarget:Keybind({Name = "Key", Flag = "Silent_Bind", Mode = "Toggle", callback = function()
				framework:selectTarget(); 
				bodyClone:SetPrimaryPartCFrame(NewCFrame(9959,9999,9990))
			end})
		end 
		-- 
		local targetSettings = Settings:Section({Name = "Settings", Size = 330}) do 
			targetSettings:Toggle({Name = "Look At", Flag = "Look At"})
			targetSettings:Toggle({Name = "Auto Shoot", Flag = "Auto Shoot"})
			targetSettings:Toggle({Name = "Spectate", Flag = "Spectate"})
			targetSettings:Toggle({Name = "Notify", Flag = "Notify"})
			targetSettings:Toggle({Name = "Aim Viewer Bypass", Flag = "Aim Viewer Bypass"})
		end 
		-- 
		local targetMethods = Settings:Section({Name = "Methods", Size = 330}) do 
			targetMethods:Toggle({Name = "Resolver", Flag = "Resolver"})
			targetMethods:Dropdown({Name = "Resolver Method", Flag = "Resolver Method", Options = {"Recalculate Velocity", "Suppress Velocity", "Move Direction"}, Default = "Recalculate Velocity"})
		end 
		-- 
		local targetPrediction = Settings:Section({Name = "Prediction", Size = 330, Side = "Right"}) do 
			targetPrediction:Toggle({Name = "Auto Prediction", Flag = "Auto Prediction"})
			targetPrediction:Textbox({Name = "Prediction", Flag = "Manual Prediction Value", Placeholder = "Prediction"})
			targetPrediction:Dropdown({Name = "Hit-Part", Flag = "Single Hit Part", Options = utility.bodyParts, Default = "HumanoidRootPart"})
			targetPrediction:Toggle({Name = "Nearest Part", Flag = "Nearest Part"})
			targetPrediction:Dropdown({Name = "Closest Hit Part", Flag = "Closest Hit Part", Options = utility.bodyParts, Default = {"HumanoidRootPart"}, Max = 9e9})
			targetPrediction:Toggle({Name = "Jump Prediction", Flag = "Jump Prediction"})
			targetPrediction:Textbox({Name = "Jump Prediction", Flag = "Manual Offset Value", Placeholder = "Jump Offset"})
			targetPrediction:Dropdown({Name = "Air Hit-Part", Flag = "Air Hit Part", Options = utility.bodyParts, Default = "RightFoot"})
		end 
		-- 
		local targetChecks = Settings:Section({Name = "Checks", Size = 330, Side = "Right"}) do 
			targetChecks:Dropdown({Name = "Checks", Flag = "Silent Checks", Options = {"Knocked Check", "Wall Check", "Friend Check", "Grabbed Check"}, Max = 9e9})
		end 
		-- 
		local targetAutoSelect = Settings:Section({Name = "Auto Select", Size = 330, Side = "Right"}) do 
			targetAutoSelect:Toggle({Name = "Enabled", Flag = "Target Auto Select"})
			targetAutoSelect:Slider({Name = "Delay", Suffix = "ms", Flag = 'Auto Select Delay', Min = 0, Max = 1000, Default = 100, Decimals = 1})
		end 	
		-- 
		local targetStrafe = Settings:Section({Name = "Target Strafe", Size = 330, Side = "Left"}) do 
			targetStrafe:Toggle({Name = "Enabled", Flag = "Target Strafe Enabled", Risk = true})
			targetStrafe:Slider({Name = "Radius", Flag = 'Target Strafe Distance', Min = -15, Max = 15, Default = 10, Decimals = 1})
			targetStrafe:Slider({Name = "Speed", Flag = 'Target Strafe Speed', Min = -15, Max = 15, Default = 10, Decimals = 1})
			targetStrafe:Slider({Name = "Height", Flag = 'Target Strafe Height', Min = -15, Max = 15, Default = 0, Decimals = 1})
		end
		-- 
		local targetVisuals = Visuals:Section({Name = "Visuals", Size = 330, Side = "Left"}) do 
			local line1 = targetVisuals:Toggle({Name = "Line", Flag = "Line Enabled"})
			line1:Colorpicker({Default = Color3.fromRGB(255,0,0), Flag = "Line Settings"});
			targetVisuals:Slider({Name = "Thickness", Flag = 'Line Thickness', Min = 0, Max = 2, Default = 1, Decimals = 0.01, Callback = function(Int)
				utility.drawings["Tracer"].Thickness = Int
			end})
			local highlight = targetVisuals:Toggle({Name = "Highlight", Flag = "Highlight Enabled"})
			highlight:Colorpicker({Default = Color3.fromRGB(0,255,0), Alpha = 0.5, Flag = "Highlight Fill Color"});
			highlight:Colorpicker({Default = Color3.fromRGB(0,125,0), Flag = "Highlight Outline Color"});
			local backtrack = targetVisuals:Toggle({Name = "Backtrack", Flag = "Back Track Enabled"})
			backtrack:Colorpicker({Default = Color3.fromRGB(255, 0, 0), alpha = 0.65, Flag = "Back Track Settings"});
			targetVisuals:Dropdown({Name = "Method", Flag = "Back Track Method", Options = {"Clone", "Follow"}, Default = "Follow"})
			targetVisuals:Dropdown({Name = "Material", Flag = "Back Track Material", Options = {"Neon", "Plastic", "ForceField"}, Default = "Neon"})
			targetVisuals:Slider({Name = "Delay", Flag = 'Back Track Delay', Min = 0, Max = 1, Default = 1, Decimals = 0.05})
			targetVisuals:Toggle({Name = "Target Esp", Flag = "Target Esp"})
		end 
	end
	-- // Legit  
	local legit = Window:Page({Name = "Legit"}) do 
		local Vertical;
		local Horizontal;
		local Smoothness;
		-- 
		local aimAssist = legit:Section({Name = "Aim Assist", Size = 330}) do 
			aimAssist:Toggle({Name = "Enabled", Flag = "Aim Assist"}):Keybind({Name = "Aim Assist", Flag = "Aim Assist Bind", Mode = "Toggle", Callback = function()
				aimAssistTarget = utility.target or utility:getClosestPlayerToCursor(math.huge)
			end}) -- portal is a fuckin g
			local Vertical = aimAssist:Slider({Name = "Horizontal Smoothness", Flag = "Horizontal Smoothness", Min = 0, Max = 100, Default = 20, Decimals = 1})
			Vertical:SetVisible(false)
			local Horizontal = aimAssist:Slider({Name = "Vertical Smoothness", Flag = 'Vertical Smoothness', Min = 0, Max = 100, Default = 20, Decimals = 1})
			Horizontal:SetVisible(false)
			local Smoothness = aimAssist:Slider({Name = "Smoothness", Flag = 'Smoothness', Min = 0, Max = 100, Default = 50, Decimals = 1})
			aimAssist:Dropdown({Name = "Method", Flag = "Aim Assist Method", Options = {"Use Mouse", "Use Camera"}, Default = "Use Camera", Callback = function(Option)
				if Option == "Use Mouse" then 
					Vertical:SetVisible(true)
					Horizontal:SetVisible(true)
					Smoothness:SetVisible(false)
				else 
					Vertical:SetVisible(false)
					Horizontal:SetVisible(false)
					Smoothness:SetVisible(true)
				end 
			end})
		end 
		-- 
		local aimAssist_Settings = legit:Section({Name = "Settings", Size = 330}) do 
			aimAssist_Settings:Dropdown({Name = "Hit-Part", Flag = "Aim Assist Single Hit Part", Options = utility.bodyParts, Default = "HumanoidRootPart"})
			aimAssist_Settings:Toggle({Name = "Jump Prediction", Flag = "Aim Assist Jump Prediction"})
			aimAssist_Settings:Textbox({Name = "Prediction", Flag = "Aim Assist Manual Prediction Value", Placeholder = "Prediction"})
			aimAssist_Settings:Textbox({Name = "Jump Offset", Flag = "Aim Assist Manual Offset Value", Placeholder = "Jump Offset"})
		end 
		-- 
		local aimAssistFov = legit:Section({Name = "Field Of View", Size = 330}) do 
			aimAssistFov:Toggle({Name = "Enabled", Flag = "Aim Assist Field Of View", Callback = function(Bool)
				utility.drawings["Aim Assist FOV"].Visible = Bool 
			end}):Colorpicker({Default = Color3.fromRGB(255, 0, 0), alpha = 0.65, Flag = "Field Of View Color", Callback = function()
				utility.drawings["Aim Assist FOV"].Color = flags["Field Of View Color"].Color
				utility.drawings["Aim Assist FOV"].Transparency = 1 - flags["Field Of View Color"].Transparency
			end});
			aimAssistFov:Slider({Name = "Radius", Flag = 'Aim Assist Field Of View Radius', Min = 0.1, Max = 500, Default = 50, Decimals = 0.1, Callback = function(Int)
				utility.drawings["Aim Assist FOV"].Radius = Int
			end})
			aimAssistFov:Toggle({Name = "Enabled", Flag = "Aim Assist Field Of View Filled", Callback = function(Bool)
				utility.drawings["Aim Assist FOV"].Filled = Bool
			end})
			aimAssistFov:Slider({Name = "Thickness", Flag = 'Aim Assist Field Of View Thickness', Min = 0.1, Max = 3, Default = 1, Decimals = 0.01, Callback = function(Int)
				utility.drawings["Aim Assist FOV"].Thickness = Int
			end})
		end 
		-- 
		local aimAssistChecks = legit:Section({Name = "Checks", Size = 330}) do 
			aimAssistChecks:Dropdown({Name = "Checks", Flag = "Aim Assist Checks", Options = {"Knocked Check", "Wall Check", "Friend Check", "Grabbed Check"}, Max = 9e9})
		end 
	end 	
	-- 	// Esp 
	local esp = Window:Page({Name = "Visuals", Weapons = true}) do 
		local ESP = esp:Weapon({Icon = "rbxassetid://6034281935"})
		local World = esp:Weapon({Icon = "rbxassetid://16997762295"})
		-- 
		local playerEsp = ESP:Section({Name = "Player Esp", Size = 330, Side = "Left"}) do 
			playerEsp:Toggle({Name = "Enabled", Flag = "PlayerESP_Enabled", Callback = function(Bool)
				if Bool then 
					for i,v in next, Players:GetPlayers() do 
						if v ~= LocalPlayer and not Visuals.Bases[v] then 
							Visuals:Create({Player = v})
						end 
					end 
				else 
					Visuals:Unload()
				end 
			end})
			playerEsp:Slider({Name = "Distance", Flag = 'ESP Distance', Min = 0, Max = 5000, Default = 5000, Decimals = 5})
			local box = playerEsp:Toggle({Name = "Boxes", Flag = "PlayerESP_Box"})
			box:Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "PlayerESP_Box_Color1"});
			box:Colorpicker({Default = Color3.fromRGB(0, 0, 0), Flag = "PlayerESP_Box_Color2"});
			playerEsp:Toggle({Name = "Box-Fill", Flag = "PlayerESP_BoxFill"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Transparency = 0.7, Flag = "PlayerESP_BoxFill_Color"});
			playerEsp:Dropdown({Name = "Box Type", Flag = "PlayerESP_Box_Type", Options = {"Bounding", "Corner"}, Default = "Bounding"})
			playerEsp:Toggle({Name = "Name", Flag = "PlayerESP_Name"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "PlayerESP_Name_Color"});
			playerEsp:Toggle({Name = "Weapons", Flag = "PlayerESP_Weapon"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "PlayerESP_Weapon_Color"});
			playerEsp:Toggle({Name = "Flags", Flag = "PlayerESP_Flags"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "PlayerESP_FlagsColor"});
			playerEsp:Dropdown({Name = "Flags", Flag = "PlayerESP_Flag_Options", Options = {"Distance", "Knocked"}, Max = 9e9})
			playerEsp:Toggle({Name = "Gun Icons", Flag = "PlayerESP_GunIcons"})
			local highlight = playerEsp:Toggle({Name = "Chams", Flag = "PlayerESP_Highlights"})
			highlight:Colorpicker({Default = Color3.fromHex("#7D0DC3"), Transparency = 0.7, Flag = "PlayerESP_HighlightFillSettings"});
			highlight:Colorpicker({Default = Color3.new(0,0,0), Flag = "PlayerESP_HighlightOutlineSettings"});
		end 
		-- 
		local Properties = ESP:Section({Name = "Properties", Size = 330, Side = "Left"})
			local health = Properties:Toggle({Name = "Health Bar", Flag = "PlayerESP_HealthBar"})
			health:Colorpicker({Default = Color3.fromRGB(0,255,0), Flag = "PlayerESP_HealthBar_Color_Higher"});
			health:Colorpicker({Default = Color3.fromRGB(255,0,0), Flag = "PlayerESP_HealthBar_Color_Low"});
			Properties:Toggle({Name = "Health Number", Flag = "PlayerESP_HealthNumber"})
			Properties:Toggle({Name = "Armor Bar", Flag = "PlayerESP_ArmorBar"}):Colorpicker({Default = Color3.fromRGB(0,0,255), Flag = "PlayerESP_ArmorBarColor"});
		-- 
		local selfEsp = ESP:Section({Name = "Self Esp", Size = 330, Side = "Right"}) do 
			selfEsp:Toggle({Name = "Enabled", Flag = "Self_PlayerESP_Enabled", Callback = function(Bool)
					if Bool then 
						Visuals:Create({Player = LocalPlayer})
					else 
						Visuals.Bases[LocalPlayer]:Remove()
					end 
				end})
			selfEsp:Slider({Name = "Distance", Flag = 'Self_ESP Distance', Min = 0, Max = 5000, Default = 5000, Decimals = 5})
			local box = selfEsp:Toggle({Name = "Boxes", Flag = "Self_PlayerESP_Box"})
			selfEsp:Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Self_PlayerESP_Box_Color1"});
			selfEsp:Colorpicker({Default = Color3.fromRGB(0, 0, 0), Flag = "Self_PlayerESP_Box_Color2"});
			selfEsp:Toggle({Name = "Box-Fill", Flag = "Self_PlayerESP_BoxFill"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Transparency = 0.7, Flag = "Self_PlayerESP_BoxFill_Color"});
			selfEsp:Toggle({Name = "Name", Flag = "Self_PlayerESP_Name"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Self_PlayerESP_Name_Color"});
			selfEsp:Toggle({Name = "Weapons", Flag = "Self_PlayerESP_Weapon"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Self_PlayerESP_Weapon_Color"});
			selfEsp:Toggle({Name = "Flags", Flag = "Self_PlayerESP_Flags"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Self_PlayerESP_FlagsColor"});
			selfEsp:Dropdown({Name = "Flags", Flag = "Self_PlayerESP_Flag_Options", Options = {"Distance", "Knocked"}, Max = 9e9})
			selfEsp:Toggle({Name = "Gun Icons", Flag = "Self_PlayerESP_GunIcons"})
			local highlight = selfEsp:Toggle({Name = "Chams", Flag = "Self_PlayerESP_Highlights"})
			highlight:Colorpicker({Default = Color3.fromHex("#7D0DC3"), Transparency = 0.7, Flag = "Self_PlayerESP_HighlightFillSettings"});
			highlight:Colorpicker({Default = Color3.new(0,0,0), Flag = "Self_PlayerESP_HighlightOutlineSettings"});
		end 
		-- 
		local selfEspProperties = ESP:Section({Name = "Properties", Size = 330, Side = "Right"}) do 
			local health = selfEspProperties:Toggle({Name = "Health Bar", Flag = "Self_PlayerESP_HealthBar"})
			health:Colorpicker({Default = Color3.fromRGB(0,255,0), Flag = "Self_PlayerESP_HealthBar_Color_Higher"});
			health:Colorpicker({Default = Color3.fromRGB(255,0,0), Flag = "Self_PlayerESP_HealthBar_Color_Low"});
			selfEspProperties:Toggle({Name = "Health Number", Flag = "Self_PlayerESP_HealthNumber"})
			selfEspProperties:Toggle({Name = "Armor Bar", Flag = "Self_PlayerESP_ArmorBar"}):Colorpicker({Default = Color3.fromRGB(0,0,255), Flag = "Self_PlayerESP_ArmorBarColor"});
		end 
		--  seperate here
		local worldVisuals = World:Section({Name = "Lighting", Size = 330, Side = "Left"}) do 
			worldVisuals:Toggle({Name = "Master Switch", Flag = "Master Switch", Callback = function()
				for i,v in pairs(Lighting_Save) do 
					Lighting[i] = v 
				end 
			end})
			worldVisuals:Toggle({Name = "Clock Time", Flag = "Clock Time Enabled"})
			worldVisuals:Slider({Name = "Clock Time", Flag = 'Clock Time', Min = 0, Max = 24, Default = 12, Decimals = 0.1})
			worldVisuals:Toggle({Name = "Color Shift Bottom", Flag = "Color Shift Bottom"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Color Shift Bottom Color"});
			worldVisuals:Toggle({Name = "Ambient", Flag = "Ambient"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Ambience Color"});
			worldVisuals:Toggle({Name = "Outdoor Ambience", Flag = "Outdoor Ambience"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Outdoor Ambience color"});
			worldVisuals:Toggle({Name = "Brightness", Flag = "Brightness Enabled"})
			worldVisuals:Slider({Name = "Brightness", Flag = 'Brightness', Min = 0, Max = 20, Default = 3, Decimals = 1})
			worldVisuals:Toggle({Name = "Color Shift Top", Flag = "Color Shift Top"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Color Shift Top Color"});
			worldVisuals:Toggle({Name = "Fog", Flag = "Fog"}):Colorpicker({Default = Color3.fromRGB(255, 255, 255), Flag = "Fog Color"});
		end 
		-- 
		local bulletTracers = World:Section({Name = "Bullet Modification", Size = 330, Side = "Left"}) do 
			bulletTracers:Toggle({Name = "Bullet Tracers", Flag = "Bullet Tracers"}):Colorpicker({Default = Color3.new(1,1,1), Flag = "Bullet Tracers Color"});
			bulletTracers:Slider({Name = "Lifetime", Flag = 'Tracers Life Time', Min = 0, Max = 10, Default = 2, Decimals = 0.1})
			bulletTracers:Toggle({Name = "Face Camera", Flag = "Face Camera", Default = true})
			bulletTracers:Slider({Name = "Brightness", Flag = 'Bullet Brightness', Min = 0, Max = 20, Default = 6, Decimals = 1})
			bulletTracers:Slider({Name = "Speed", Flag = 'Bullet Speed', Min = 0, Max = 20, Default = 3, Decimals = 0.01})
			bulletTracers:Slider({Name = "Size", Flag = 'Bullet Size', Min = 1, Max = 20, Default = 1, Decimals = 0.01})
			bulletTracers:Toggle({Name = "Bullet Impacts", Flag = "Bullet Impacts"}):Colorpicker({Default = Color3.new(1,1,1), Alpha = 0, Flag = "Bullet Impacts Color"});
			bulletTracers:Slider({Name = "Size", Flag = 'Impact Size', Min = 0.01, Max = 5, Default = 0.25, Decimals = 0.01})
		end 
		-- 
		local crosshairSection = World:Section({Name = "Crosshair", Size = 330, Side = "Right"}) do 
			crosshairSection:Toggle({Name = "Crosshair", Flag = "Crosshair", Callback = function()
				for i = 1, #crosshair_Lines do
					crosshair_Lines[i].Visible = false; 
				end 
				--
				for i = 1, #crosshair_Outlines do
					crosshair_Outlines[i].Visible = false; 
				end 
			end}):Colorpicker({Default = Color3.fromRGB(255,255,255), Flag = "Crosshair Color", Callback = function()
				for i = 1, #crosshair_Lines do 
					crosshair_Lines[i].Color = flags["Crosshair Color"].Color;
					crosshair_Lines[i].Transparency = flags["Crosshair Color"].Transparency;
				end 
			end});
			crosshairSection:Toggle({Name = "Always Rotating", Flag = "Crosshair Always Rotating"})
			crosshairSection:Slider({Name = "Speed", Flag = 'Crosshair Speed', Min = 0, Max = 24, Default = 12, Decimals = 0.1})
			crosshairSection:Slider({Name = "Gap Size", Flag = 'Crosshair Gap Size', Min = 0, Max = 30, Default = 12, Decimals = 1})
			crosshairSection:Slider({Name = "Length", Flag = 'Crosshair Length', Min = 0, Max = 30, Default = 12, Decimals = 1})
			crosshairSection:Slider({Name = "Thickness", Flag = 'Crosshair Thickness', Min = 0.1, Max = 5, Default = 1.5, Decimals = 0.1, Callback = function(Int)
				for i = 1, #crosshair_Lines do
					crosshair_Lines[i].Thickness = Int; 
					crosshair_Outlines[i].Thickness = Int; 
				end 
			end})
			crosshairSection:Slider({Name = "Sides", Flag = 'Crosshair Sides', Min = 1, Max = 10, Default = 4, Decimals = 1, callback = function(Int)
				crosshair_LineAmount = Int
				-- 
				crosshair_lineOffsets = utility:generateAngles(Int)
				--
				for i = 1, #crosshair_Lines do
					crosshair_Lines[i]:Remove(); 
					crosshair_Lines[i] = nil; 
				end 
				-- 
				for i = 1, #crosshair_Outlines do
					crosshair_Outlines[i]:Remove(); 
					crosshair_Outlines[i] = nil; 
				end 
				-- 
				do 
					for Index = 1, Int do
						local line = utility:drawObject("Line",{
							Visible = false,
							Color = flags["Crosshair Color"].Color,
							Thickness = flags["Crosshair Thickness"],
							ZIndex = 2,
							Transparency = 1
						})
						--
						crosshair_Lines[Index] = line
						--
						local line_1 = utility:drawObject("Line",{
							Visible = false,
							Color = Color3.fromRGB(0, 0, 0),
							Thickness = flags["Crosshair Thickness"] * 2.5,
							ZIndex = 1,
							Transparency = 1
						})
						-- 
						crosshair_Outlines[Index] = line_1
					end
				end 
			end})
			crosshairSection:Dropdown({Name = "Sizing Easing Style", Flag = "Crosshair Sizing Easing Style", Options = {"Off", "Linear", "Cubic", "Quad", "Quart", "Quint", "Sine", "Exponential", "Back", "Bounce", "Elastic", "Circular"}, Default = "Off"})
			crosshairSection:Dropdown({Name = "Speed Easing Style", Flag = "Crosshair Speed Easing Style", Options = {"Off", "Linear", "Cubic", "Quad", "Quart", "Quint", "Sine", "Exponential", "Back", "Bounce", "Elastic", "Circular"}, Default = "Off"})
			crosshairSection:Toggle({Name = "Show Text", Flag = "Script Name", Callback = function(Bool)
				local sub = utility.drawings["Sub"]
				local domain = utility.drawings["Domain"]
				-- 
				sub.Visible = Bool 
				domain.Visible = Bool 
			end})
			crosshairSection:Toggle({Name = "Pulse", Flag = "Pulse"})
			crosshairSection:Toggle({Name = "Attach to target", Flag = "Attach to target"})
		end 
		-- 
		local ingameCrosshair = World:Section({Name = "In-Game Crosshair", Size = 330, Side = "Right"}) do 
			ingameCrosshair:Toggle({Name = "Spinning", Flag = "In-Game Crosshair Spin", Callback = function()
				game:GetService("Players").LocalPlayer.PlayerGui.MainScreenGui.Aim.Rotation = 0 
			end})
			ingameCrosshair:Slider({Name = "Speed", Flag = 'In-Game Crosshair Spin Speed', Min = 0, Max = 30, Default = 1, Decimals = 1})
			ingameCrosshair:Toggle({Name = "Dont Show", Flag = "In-Game Crosshair Invisible"}) 
		end 
	end 
	-- // Visuals 
	local misc = Window:Page({Name = "Misc", Weapons = true}) do 
		local Movement = misc:Weapon({Icon = "rbxassetid://6034509993"})
		local Exploits = misc:Weapon({Icon = "rbxassetid://16997954488"})
		local movementSection = Movement:Section({Name = "General", Size = 330}) do 
			movementSection:Toggle({Name = "Speed", Flag = "Speed Enabled"}):Keybind({Name = "Speed", Flag = "Speed Key", Mode = "Toggle", Callback = function()
				if Chatting then return end 
			end})
			movementSection:Slider({Name = "Speed", Flag = 'Speed', Min = 0, Max = 100, Default = 20, Decimals = 1})
			movementSection:Toggle({Name = "Fly", Flag = "Fly Enabled"}):Keybind({Name = "Fly", Flag = "Fly Key", Mode = "Toggle", Callback = function()
				if Chatting then return end
				LocalPlayer.Character.HumanoidRootPart.Anchored = false; 
			end})	
			movementSection:Slider({Name = "Fly", Flag = 'Fly Speed', Min = 0, Max = 100, Default = 20, Decimals = 1})
		end 
		-- 
		local hitEffects = Movement:Section({Name = "Hit Effects", Size = 330, Side = "Right"}) do 
			hitEffects:Toggle({Name = "Hit Marker", Flag = "Hit Marker"}):Colorpicker({Default = Color3.fromRGB(255,255,255), Flag = "Hit Marker Settings"});
			hitEffects:Toggle({Name = "3D Hit Marker", Flag = "3D Hit Marker"}):Colorpicker({Default = Color3.fromRGB(255,255,255), Flag = "3D Hit Marker Settings"});
			hitEffects:Slider({Name = "Fading Time", Flag = 'Hit Markers Time', Min = 0.1, Max = 10.0, Default = 5.0, Decimals = 0.1})
			hitEffects:Toggle({Name = "Hit Sounds", Flag = "Hit Sounds"})
			hitEffects:Dropdown({Name = "Hit Sounds", Flag = "Hit Sounds Sound", Options = sfx_names, Default = "Neverlose"})
			hitEffects:Slider({Name = "Volume", Flag = 'Hit Sounds Volume', Min = 0.1, Max = 10.0, Default = 5.0, Decimals = 0.1})
			hitEffects:Slider({Name = "Pitch", Flag = 'Hit Sounds Pitch', Min = 0.1, Max = 10.0, Default = 1.0, Decimals = 0.1})
			hitEffects:Toggle({Name = "Hit Effects", Flag = "Hit Effects"}):Colorpicker({Default = Color3.fromRGB(255,255,255), Flag = "Hit Effect Settings"});
			hitEffects:Dropdown({Name = "Hit Effects", Flag = "Hit Effects Option", Options = {"Confetti", "Nova", "Sparkle"}, Default = "Confetti"})
			hitEffects:Toggle({Name = "Hit Chams", Flag = "Hit Chams"}):Colorpicker({Default = Color3.fromRGB(255, 0, 0), Transparency = 0.8, Flag = "Hit Chams Settings"});
			hitEffects:Dropdown({Name = "Material", Flag = "Hit Chams Material", Options = {"ForceField", "Neon", "Plastic"}, Default = "Neon"})
			hitEffects:Slider({Name = "Fading Time", Flag = 'Hit Chams Fading Time', Min = 0.1, Max = 10.0, Default = 5.0, Decimals = 0.1})
			hitEffects:Toggle({Name = "Hit-Logs", Flag = "Hit Notify"})
		end 
		-- 
		local chatSpam = Movement:Section({Name = "Chat Spam", Size = 330, Side = "Left"}) do
			chatSpam:Toggle({Name = "Enabled", Flag = "Chat Spam"})
			chatSpam:Dropdown({Name = "Type", Flag = "Chat Spam Type", Options = {"Lunar", "Scottish"}, Default = "Lunar"})
			chatSpam:Slider({Name = "Delay", Flag = 'Chat Spam Delay', Suffix = "s", Min = 0.1, Max = 10.0, Default = 5.0, Decimals = 0.1})
			chatSpam:Toggle({Name = "Emojis", Flag = "Emojis"})
			chatSpam:Toggle({Name = "Symbols", Flag = "Symbol"})
			chatSpam:Toggle({Name = "Repeat", Flag = "Repeat"})
		end 
		-- 
		local characterMods = Movement:Section({Name = "Character", Size = 330, Side = "Left"}) do 
			characterMods:Toggle({Name = "Remove Chairs", Flag = "Remove Chairs", Callback = function(Bool)
				for i,v in pairs(Workspace:GetDescendants()) do 
					if v:IsA("Seat") then 
						v.Disabled = Bool
					end 
				end 
			end})
			characterMods:Toggle({Name = "No Slow", Flag = "No Slow"})		
			characterMods:Toggle({Name = "Auto Reload", Flag = "Auto Reload"})	
			characterMods:Toggle({Name = "Auto Armor", Flag = "Auto Armor"})	
			characterMods:Toggle({Name = "Anti Void Kill", Flag = "Anti Void Kill", Callback = function(Bool)
				Workspace.FallenPartsDestroyHeight = Bool and -50000 or -500
			end})	
		end 
		-- 
		local cframeDesync = Exploits:Section({Name = "Desync", Size = 330, Side = "Left"}) do
			local customSliders, strafeSliders, randomSliders = {}, {}, {}
			cframeDesync:Toggle({Name = "Enabled", Flag = "Desync"}):Keybind({Name = "Desync Key", Flag = "Desync Key", Mode = "Toggle", Callback = function()
				if flags["Desync Key"] == false and C_Desync["OldPosition"] then 
					LocalPlayer.Character.HumanoidRootPart.CFrame = C_Desync["OldPosition"]
					C_Desync["OldPosition"] = nil 
				end 
			end}) 
			local Vis = cframeDesync:Toggle({Name = "Visualize", Flag = "Desync Visualize"}); Vis:Colorpicker({Default = Color3.fromRGB(0,0,0), Flag = "Desync Visualize Outline", Alpha = 0}); Vis:Colorpicker({Default = Color3.fromHex("#7D0DC3"), Flag = "Desync Visualize Fill", Alpha = 0.7});
			cframeDesync:Toggle({Name = "Attach onto target", Flag = "Attach Target"});
			cframeDesync:Dropdown({Name = "Type", Flag = "Desync Type", Options = {"Custom", "Random", "Target Strafe", "Roll"}, Default = "Target Strafe", Callback = function(Option)
				if #customSliders ~= 0 then 
					for _,v in pairs(customSliders) do v:SetVisible(Option == "Custom" and true or false) end; for _,v in pairs(strafeSliders) do v:SetVisible(Option == "Target Strafe" and true or false) end; for _,v in pairs(randomSliders) do v:SetVisible(Option == "Random" and true or false) end 		
				end 
			end})
			-- // Dropdown Sliders
			do 
				local _ = cframeDesync:Slider({Name = "Position X", Flag = 'Desync X', Min = -15, Max = 15, Default = 0, Decimals = 1, Suffix = "m"}) table.insert(customSliders, _)
				local _ = cframeDesync:Slider({Name = "Position Y", Flag = 'Desync Y', Min = -15, Max = 15, Default = 0, Decimals = 1, Suffix = "m"}) table.insert(customSliders, _)
				local _ = cframeDesync:Slider({Name = "Position Z", Flag = 'Desync Z', Min = -15, Max = 15, Default = 0, Decimals = 1, Suffix = "m"}) table.insert(customSliders, _)
				-- 		
				local _ = cframeDesync:Slider({Name = "Rotation X", Flag = 'Rotation X', Min = -180, Max = 180, Default = 0, Decimals = 1, Suffix = "°"}) table.insert(customSliders, _)
				local _ = cframeDesync:Slider({Name = "Rotation Y", Flag = 'Rotation Y', Min = -180, Max = 180, Default = 0, Decimals = 1, Suffix = "°"}) table.insert(customSliders, _)
				local _ = cframeDesync:Slider({Name = "Rotation Z", Flag = 'Rotation Z', Min = -180, Max = 180, Default = 0, Decimals = 1, Suffix = "°"}) table.insert(customSliders, _)
				-- 
				local _ = cframeDesync:Slider({Name = "Radius", Flag = 'Desync Strafe Radius', Min = -15, Max = 15, Default = 10, Decimals = 1, Suffix = "m"}) table.insert(strafeSliders, _)
				local _ = cframeDesync:Slider({Name = "Speed", Flag = 'Desync Strafe Speed', Min = -15, Max = 15, Default = 10, Decimals = 1, Suffix = "m/s"}) table.insert(strafeSliders, _)
				local _ = cframeDesync:Slider({Name = "Height", Flag = 'Desync Strafe Height', Min = -15, Max = 15, Default = 0, Decimals = 1, Suffix = "m"}) table.insert(strafeSliders, _)
				-- 
				local _ = cframeDesync:Slider({Name = "Random Range", Flag = 'Desync Random Range', Min = 0, Max = 50, Default = 0, Decimals = 1, Suffix = "st"}) table.insert(randomSliders, _)
				-- 
				for _,v in pairs(customSliders) do v:SetVisible(false) end 		
				for _,v in pairs(strafeSliders) do v:SetVisible(true) end 	
				for _,v in pairs(randomSliders) do v:SetVisible(false) end 
			end 	
		end	
		-- 
		local invisDesync = Exploits:Section({Name = "Exploits", Size = 330, Side = "Right"}) do
			local loop; 
			invisDesync:Toggle({Name = "Invis Desync", Flag = "Invis Desync"}):Keybind({Name = "Invisible Desync", Flag = "Invis Desync Key", Mode = "Toggle", Callback = function()
				if flags["Invis Desync"] and flags["Invis Desync Key"] then 
					if flags["Invis Desync Key"] then 
						setfflag("S2PhysicsSenderRate", 2)
						loop = RunService.Heartbeat.Connect(RunService.Heartbeat, framework.desyncInit);
					end
				else 
					-- skibidi sigma rizz
					if loop then 
						loop:Disconnect()
						loop = nil 
						setfflag("S2PhysicsSenderRate", 15) 
					end 
				end 
			end})
			-- 
			invisDesync:Toggle({Name = "Destroy Cheaters", Flag = "Destroy Cheaters"}):Keybind({Name = "Destroy Cheaters", Flag = "Destroy Cheaters Key", Mode = "Toggle"})
			flags["Destroy Cheaters Key"] = true 
		end 
		-- 
		local fastFlags = Exploits:Section({Name = "Fast Flags", Size = 330, Side = "Right"}) do
			fastFlags:Toggle({Name = "Enabled", Flag = "Fast Flags", Callback = function()
				setfflag("S2PhysicsSenderRate", 15)
			end})
			fastFlags:Slider({Name = "Amount", Flag = 'Fast Flags Amount', Min = 1, Max = 15, Default = 2, Decimals = 0.01})
			-- 
			fastFlags:Toggle({Name = "Network Desync", Flag = "Network Desync", Callback = function()
				sethiddenproperty(LocalPlayer.Character.HumanoidRootPart, "NetworkIsSleeping", false)
			end})
			fastFlags:Slider({Name = "Delay", Flag = 'Network Delay', Suffix = "s", Min = 0.01, Max = 15, Default = 2, Decimals = 0.01})
		end 
	end 
	-- // Settings
	local Config = Window:Page({Name = "Settings"}) do
		local Menu = Config:Section({Name = "Menu", Size = 120})
		local Cfgs = Config:Section({Name = "Configs", Size = 200, Side = "Right"})
		--
		local abc = false 
		Menu:Keybind({Name = "Menu key", Flag = "MenuKey", Default = Enum.KeyCode.End, Mode = "Toggle", Callback = function() abc = not abc Library:SetOpen(abc) end})
		Menu:Dropdown({Name = "Notification Position", Flag = "Notification Position", Options = {"Top Left", "Middle"}, Default = "Top Left"})
		Menu:Label({Centered = true, Name = "Credits: \nPortal : User Interface"})
		--
		local CFGList = Cfgs:Dropdown({Name = "Cfg List", Flag = "SettingConfigurationList", Options = {}})
		Cfgs:Textbox({Flag = "SettingsConfigurationName", Placeholder = "Config name"})
		--
		local CurrentList = {};
		if not isfolder("Lunar") then 
			makefolder("Lunar")
		end 
		if not isfolder("Lunar/Configs") then 
			makefolder("Lunar/Configs")
		end 
		local function UpdateConfigList()
			local List = {};
			for idx, file in ipairs(listfiles("Lunar/Configs")) do
				local FileName = file:gsub("Lunar/Configs\\", ""):gsub(".cfg", "")
				List[#List + 1] = FileName;
			end;

			local IsNew = #List ~= #CurrentList
			if not IsNew then
				for idx, file in ipairs(List) do
					if file ~= CurrentList[idx] then
						IsNew = true;
						break;
					end;
				end;
			end;

			if IsNew then
				CurrentList = List;
				CFGList:Refresh(CurrentList);
			end;
		end;
		--
		Cfgs:Button({Name = "Create", Callback = function()
			local ConfigName = flags.SettingsConfigurationName;
			if ConfigName == "" or isfile("Lunar/Configs/" .. ConfigName .. ".cfg") then
				return;
			end;
			writefile("Lunar/Configs/" .. ConfigName .. ".cfg", Library:GetConfig());
			UpdateConfigList();
		end})
		Cfgs:Button({Name = "Save", Callback = function()
			local SelectedConfig = flags.SettingConfigurationList;
			if SelectedConfig then
				writefile("Lunar/Configs/" .. SelectedConfig .. ".cfg", Library:GetConfig())
			end;
		end})
		Cfgs:Button({Name = "Load", Callback = function()
			local SelectedConfig = flags.SettingConfigurationList;
			if SelectedConfig then
				Library:LoadConfig(readfile("Lunar/Configs/" .. SelectedConfig .. ".cfg"))
			end
		end})
		Cfgs:Button({Name = "Delete", Callback = function()
			local SelectedConfig = flags.SettingConfigurationList;
			if SelectedConfig then
				delfile("Lunar/Configs/" .. SelectedConfig .. ".cfg")
			end
			UpdateConfigList();
		end})
		Cfgs:Button({Name = "Refresh", Callback = function()
			UpdateConfigList();
		end})
		Cfgs:Toggle({Name = "Keybind List", Flag = "Keybind List", Callback = function(Bool)
			PlaceHolderUI.Enabled = Bool
		end})
		UpdateConfigList();
	end
end 

-- // Framework
do 
	getgenv().offset = nil; 
	local Origin; 
	local Position, OnScreen, PreviousGun, PreviousAmmo, Sine, Radians = nil, nil, nil, nil, 0, 1; 
	local NetworkTick, Networking = 0, false; 
	local chatTick = 0; 
	-- // Loops
	do
		framework["connections"]["Main Loop"] = RunService.Heartbeat:Connect(LPH_NO_VIRTUALIZE(function(Fps)
			-- // Framework Calls
			do 
				framework:aimAssist() 
				framework:worldVisuals()
			end 
			--// Auto Armor
			do 
				if flags["Auto Armor"] then 
					if LocalPlayer.Character.BodyEffects.Armor.Value < 100 then 
						local Pos = LocalPlayer.Character.HumanoidRootPart.CFrame
						LocalPlayer.Character.HumanoidRootPart.CFrame = workspace.Ignored.Shop["[High-Medium Armor] - $2440"].Head.CFrame
						fireclickdetector(workspace.Ignored.Shop["[High-Medium Armor] - $2440"].ClickDetector)
						RunService.RenderStepped:Wait()
						LocalPlayer.Character.HumanoidRootPart.CFrame = Pos 
					end 
				end 
			end 
			-- // No Slow Down 
			do 
				if flags["No Slow"] then 
					if LocalPlayer.Character.BodyEffects.Reload.Value then
						LocalPlayer.Character.BodyEffects.Reload.Value = false
					end
					--
					local Slowdowns = LocalPlayer.Character.BodyEffects.Movement:FindFirstChild('NoJumping') or LocalPlayer.Character.BodyEffects.Movement:FindFirstChild('NoWalkSpeed') or LocalPlayer.Character.BodyEffects.Movement:FindFirstChild('ReduceWalk')
					if Slowdowns then
						Slowdowns:Destroy()
					end
				end 
			end 
			-- // Target Framework
			do 
				if utility.target and utility:ValidateClient(utility.target) and flags["Silent_Bind"] then
					Position, OnScreen = Camera:WorldToViewportPoint(utility.target.Character.HumanoidRootPart.Position);
					prediction = framework:selectPrediction()
					-- 
					if flags["Target Auto Select"] then 
						framework:autoSelect()
					end 
					--
					if flags["Resolver"] then 
						offset = framework:calculateResolverOffset(utility.target); 
					end      
					--
					if flags["Highlight Enabled"] then 
						targetHighlight.Enabled = true 
						targetHighlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
						targetHighlight.FillColor = flags["Highlight Fill Color"].Color
						targetHighlight.OutlineColor = flags["Highlight Outline Color"].Color
						targetHighlight.Adornee = utility.target.Character
						targetHighlight.OutlineTransparency = flags["Highlight Outline Color"].Transparency
						targetHighlight.FillTransparency = flags["Highlight Fill Color"].Transparency 
					else 
						targetHighlight.Enabled = false 
					end 
					-- 
					if flags["Nearest Part"] then 
						partClosest = framework:calculateNearestPart(utility.target, flags["Closest Hit Part"]).Name
					end 
					--
					checks = framework:getChecks(utility.target, table.find(flags["Silent Checks"], "Friend Check"), table.find(flags["Silent Checks"], "Wall Check"), table.find(flags["Silent Checks"], "Knocked Check"), table.find(flags["Silent Checks"], "Grabbed Check"));
					-- 
					if flags["Line Enabled"] then 
						utility.drawings["Tracer"].Visible = OnScreen and true or false  
						utility.drawings["Tracer"].From = NewVector2(Mouse.X, Mouse.Y + Offset)
						utility.drawings["Tracer"].To = NewVector2(Position.X, Position.Y)
						utility.drawings["Tracer"].Color = flags["Line Settings"].Color
						utility.drawings["Tracer"].Transparency = flags["Line Settings"].Transparency
					end
					--
					if flags["Target Strafe Enabled"] then 
						utility.angle = utility.angle + flags["Target Strafe Speed"]
						local strafe = utility.target.Character.HumanoidRootPart.CFrame * CFrame.Angles(0, math.rad(utility.angle), 0) * NewCFrame(0, flags["Target Strafe Height"], flags["Target Strafe Distance"])
						-- 
						LocalPlayer.Character.HumanoidRootPart.CFrame = strafe
					end 
					-- 
					if flags["Back Track Enabled"] and flags["Back Track Method"] == "Follow" then 
						for _, Part in pairs(utility.folders["Part Chams"]:GetChildren()) do 
							if Part:IsA("BasePart") and table.find(utility.bodyParts, Part.Name) then 
								Part.Position = utility.target.Character[Part.Name].Position + utility.target.Character.HumanoidRootPart.Velocity * 0.1413
								Part.Rotation = utility.target.Character[Part.Name].Rotation
							end     
						end 
					end 
					-- 
					if flags["Look At"] then 
						LocalPlayer.Character.Humanoid.AutoRotate = false;
						local OldCframe = LocalPlayer.Character.PrimaryPart;
						local NearestRoot = utility.target.Character.HumanoidRootPart
						local NearestPos = NewCFrame(LocalPlayer.Character.PrimaryPart.Position, Vector3.new(NearestRoot.Position.X, OldCframe.Position.Y, NearestRoot.Position.Z));
						LocalPlayer.Character:SetPrimaryPartCFrame(NearestPos);
					end 
					-- 
					if flags["Auto Shoot"] then 
						local Tool = utility:getHeld(); 
						if Tool then 
							Tool:Activate()
						end 
					end 
				else 
					-- 
					if (utility.drawings["Tracer"].Visible == true) then 
						utility.drawings["Tracer"].Visible = false 
					end 
					-- 
					targetHighlight.Enabled = false 
				end 
			end 
			-- // Anti Cheat Bypass
			do 
				if tick() - antiCheattick > 1 and LocalPlayer.Character then 
					antiCheattick = tick() 
					-- 
					for _, Script in pairs(LocalPlayer.Character:GetChildren()) do
						if Script:IsA("Script") and Script.Name ~= "Health" and Script.Name ~= "Sound" and Script:FindFirstChild("LocalScript") then
							Script:Destroy()
						end
					end
				end 	
			end 
			-- // Movement
			do 
				if LocalPlayer.Character and not (flags["Desync"] and flags["Desync Key"]) then 
					framework:cframeSpeed() 
					framework:fly(Fps)			
				end 
			end 
			-- // Physics and Network shits
			do 
				if flags["Fast Flags"] and getfflag("S2PhysicsSenderRate") ~= flags["Fast Flags Amount"] then 
					setfflag("S2PhysicsSenderRate", flags["Fast Flags Amount"])
				end 
				-- 
				if flags["Network Desync"] then 
					if tick() - NetworkTick > flags["Network Delay"] then 
						NetworkTick = tick() 
						Networking = not Networking
						sethiddenproperty(LocalPlayer.Character.HumanoidRootPart, "NetworkIsSleeping", Networking)
					end 
				end 
			end 
			-- // Chat Spam
			do 
				if flags["Chat Spam"] then 
					if tick() - chatTick > flags["Chat Spam Delay"] then 
						chatTick = tick()
						local Message = framework:chatSpam(flags["Chat Spam Type"], flags["Repeat"], flags["Emojis"], flags["Symbol"])
						ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(Message, "All")
					end 
				end 
			end 
		end))
		framework["connections"]["Desync"] = RunService.Heartbeat:Connect(LPH_NO_VIRTUALIZE(function(delta)
			-- // Desync
			do 
				if ((flags["Desync"] and flags["Desync Key"]) or (flags["Destroy Cheaters"] and flags["Destroy Cheaters Key"]) and LocalPlayer.Character) then 
					C_Desync["OldPosition"] = LocalPlayer.Character.HumanoidRootPart.CFrame
					local Origin = (flags["Attach Target"] and checks and utility.target and utility.target.Character and utility.target.Character.HumanoidRootPart) or LocalPlayer.Character.HumanoidRootPart
					local randomRange = flags["Desync Random Range"]
					Radians += flags["Desync Strafe Speed"]
					local calculatedPositions = {
						["Random"] = (NewCFrame(Origin.Position) + Vector3.new(Random(-randomRange, randomRange), Random(-randomRange, randomRange), Random(-randomRange, randomRange))) * CFrame.Angles(Rad(Random(-180, 180)), Rad(Random(-180, 180)), Rad(Random(-180, 180))),
						["Roll"] = Origin.CFrame * NewCFrame(0, -4 ,0) * CFrame.Angles(0, Rad(Random(1, 360)), Rad(-180)),
						["Target Strafe"] = Origin.CFrame * CFrame.Angles(0, Rad(Radians), 0) * NewCFrame(0, flags["Desync Strafe Height"], flags["Desync Strafe Radius"]),
						["Custom"] = Origin.CFrame * NewCFrame(flags["Desync X"], flags["Desync Y"], flags["Desync Z"]) * CFrame.Angles(Rad(flags["Rotation X"]), Rad(flags["Rotation Y"]), Rad(flags["Rotation Z"])), 
						["Destroy Cheaters"] = Origin.CFrame * NewCFrame(9e9, 0/0, math.huge)
					}
					--
					C_Desync["PredictedPosition"] = flags["Destroy Cheaters"] and flags["Destroy Cheaters Key"] and calculatedPositions["Destroy Cheaters"] or calculatedPositions[flags["Desync Type"]]
					-- 
					LocalPlayer.Character.HumanoidRootPart.CFrame = C_Desync["PredictedPosition"]
					-- 
					if flags["Desync Visualize"] then 
						bodyClone:SetPrimaryPartCFrame(LocalPlayer.Character.HumanoidRootPart.CFrame)	
						visualizeChams.FillColor = flags["Desync Visualize Fill"].Color;
						visualizeChams.FillTransparency = flags["Desync Visualize Fill"].Transparency; 
						visualizeChams.OutlineColor = flags["Desync Visualize Outline"].Color; 
						visualizeChams.OutlineTransparency = flags["Desync Visualize Outline"].Transparency; 			
					end  		
					-- 
					game:GetService("RunService").RenderStepped:Wait()
					-- 	
					LocalPlayer.Character.HumanoidRootPart.CFrame = C_Desync["OldPosition"]
					--
					framework:cframeSpeed() 
					framework:fly(delta)	
				else 
					bodyClone:SetPrimaryPartCFrame(NewCFrame(9999,9999,9999))	
				end 
			end
		end)) 
		framework["connections"]["ESP Loop"] = RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function(Fps)
			for Index, Base in pairs(Visuals.Bases) do
				Base:Update()
			end 
			-- // Crosshair Visuals
			do 
				crosshair_SpinAngle = flags["Crosshair Always Rotating"] and crosshair_SpinAngle + math.rad((flags["Crosshair Speed"] * 10) * Fps) or 0;  
				-- // Crosshair 
				do 
					if flags["Crosshair"] then 
						local Radius = flags["Crosshair Length"] * 5
						local Gap = flags["Crosshair Gap Size"] 
						--
						if flags["Attach to target"] and utility.target ~= nil and utility.target.Character and OnScreen then 
							Origin = NewVector2(Position.X, Position.Y)
						else 
							Origin = NewVector2(Mouse.X, Mouse.Y + Offset)
						end 
						-- 
						CursorSize += 0.025
						-- 
						local SmoothAngle = flags["Crosshair Speed Easing Style"] ~= "Off" and Tween.EasingStyles[Enum.EasingStyle[flags["Crosshair Speed Easing Style"]]][Enum.EasingDirection.InOut](utility:Shift(crosshair_SpinAngle)) * (Pi * Pi/2) or crosshair_SpinAngle
						local Dynamic = Cos(CursorSize)
						local SmoothSize =  flags["Crosshair Sizing Easing Style"] ~= "Off" and ((Radius / 2) * (Tween.EasingStyles[Enum.EasingStyle[flags["Crosshair Sizing Easing Style"]]][Enum.EasingDirection.In](utility:Shift(Dynamic)))) or 0 
						local localRadius = Radius - SmoothSize
						--
						for i = 1, #crosshair_Lines do 
							local Positions = NewVector2(Cos(SmoothAngle + crosshair_lineOffsets[i]), (Sin(SmoothAngle + crosshair_lineOffsets[i])))
							-- 
							crosshair_Lines[i].From = Origin + NewVector2(Positions.X, Positions.Y) * Gap 
							crosshair_Lines[i].To = crosshair_Lines[i].From + NewVector2(Positions.X, Positions.Y) * localRadius
							-- 
							crosshair_Outlines[i].From = Origin + NewVector2(Positions.X, Positions.Y) * (Gap - 1)
							crosshair_Outlines[i].To = crosshair_Lines[i].From + NewVector2(Positions.X, Positions.Y) * (localRadius + 1)
							-- 
							crosshair_Lines[i].Visible = true 
							crosshair_Outlines[i].Visible = true 
						end 
					end 
				end 
				-- // Crosshair Text 
				do
					if flags["Script Name"] then 
						local sub = utility.drawings["Sub"]
						local domain = utility.drawings["Domain"]
						-- 
						local yOffset = flags["Crosshair"] and ((flags["Crosshair Length"] * 5) + flags["Crosshair Gap Size"]) or 30
						-- 
						local textOrigin; 
						if flags["Attach to target"] and utility.target ~= nil and utility.target.Character and OnScreen then 
							textOrigin = NewVector2(Position.X - 23, Position.Y + yOffset)
						else 
							textOrigin = NewVector2(Mouse.X - 23, Mouse.Y + Offset + yOffset)
						end 
						-- 
						sub.Visible = true 
						domain.Visible = true    
						-- 
						sub.Position = textOrigin
						domain.Position = sub.Position + NewVector2(sub.TextBounds.X, 0)
					end 
					-- 
					if flags["Pulse"] and flags["Script Name"] then 
						local sub = utility.drawings["Sub"]
						-- 
						Sine = flags["Pulse"] and math.abs(math.sin(tick() * 4)) or 1 
						sub.Transparency = Sine
					end 
				end
				-- // In-Game Crosshair Shit 
				do 
					if flags["In-Game Crosshair Spin"] and not flags["In-Game Crosshair Invisible"] then 
						LocalPlayer.PlayerGui.MainScreenGui.Aim.Rotation += flags["In-Game Crosshair Spin Speed"]
					end 
					-- 
					if flags["In-Game Crosshair Invisible"] and LocalPlayer.PlayerGui.MainScreenGui.Aim.Visible == true then 
						Players.LocalPlayer.PlayerGui.MainScreenGui.Aim.Visible = false 
					end 
				end 
			end 
			-- // Hit Detection 
			do 
				local Gun = LocalPlayer.Character:FindFirstChildWhichIsA("Tool")
				local Connection = framework["connections"]["Hit Detection"]
				
				if Gun ~= PreviousGun and Connection then
					PreviousGun = Gun
					PreviousAmmo = 999
					Connection:Disconnect()
					framework["connections"]["Hit Detection"] = nil
				end
			
				if not framework["connections"]["Hit Detection"] and Gun and Gun.Ammo.Value then
					framework["connections"]["Hit Detection"] = Gun.Ammo:GetPropertyChangedSignal("Value"):Connect(function()
						local CurrentAmmo = Gun.Ammo.Value
						if CurrentAmmo < PreviousAmmo then
							local ChildrenAdded = 0;
							local ChildAdded;
							local IgnoreList = {LocalPlayer.Character, Gun.Handle};
							ChildAdded = Workspace.Ignored.Siren.Radius.ChildAdded:Connect(function(Object)
								if Object.Name == "BULLET_RAYS" then
									ChildrenAdded += 1;
									if (table.find({"[Double-Barrel SG]", "[TacticalShotgun]", "[Shotgun]"}, Gun.Name) and ChildrenAdded <= 5) or (ChildrenAdded == 1) then
										local Pos = Object.CFrame.Position
										local LookVector = Object.CFrame.LookVector
										-- 
										local RayCastParams = RaycastParams.new()
										RayCastParams.FilterType = Enum.RaycastFilterType.Exclude
										RayCastParams.IgnoreWater = true
										RayCastParams.FilterDescendantsInstances = IgnoreList
										local Ray = Workspace:Raycast(Pos, LookVector * 1000, RayCastParams)
										if not Ray then return end 
										local HitPosition = Ray.Position
										local HitInstance = Ray.Instance
										-- 	
										delay(0.001, function()
											if flags["Bullet Tracers"] then 	
												Object:Destroy() 	
												utility:CreateBeam(Pos, HitPosition, flags["Bullet Tracers Color"].Color, flags["Face Camera"], flags["Bullet Size"], flags["Bullet Speed"], flags["Bullet Brightness"])
											end 
											-- 
											if flags["Bullet Impacts"] then 
												local Impact = Instance.new("Part")
												Impact.Anchored = true 
												Impact.CanCollide = false 
												Impact.Parent = game.Workspace
												Impact.Material = "Neon"
												Impact.Shape = Enum.PartType.Block 
												Impact.Transparency = flags["Bullet Impacts Color"].Transparency
												Impact.Color = flags["Bullet Impacts Color"].Color
												Impact.Size = NewVector3(flags["Impact Size"], flags["Impact Size"], flags["Impact Size"])
												Impact.CFrame = NewCFrame(HitPosition)
												delay(3, function()
													Impact:Destroy()
												end)
											end 
											-- 
											if HitInstance then
												local InstanceHit = HitInstance:FindFirstAncestorOfClass('Model')
												if not InstanceHit then return end 
												
												if InstanceHit:FindFirstChild("Humanoid") and InstanceHit:FindFirstChild("HumanoidRootPart") then 
													if flags["Hit Sounds"] then 
														HitReg:HitSound(sfx[flags["Hit Sounds Sound"]], flags["Hit Sounds Volume"], flags["Hit Sounds Pitch"])
													end 
													-- 
													if flags["Hit Chams"] then 
														local Model = Instance.new("Model", utility.folders["Hit Chams"]) 
														utility:characterClone(Players[InstanceHit.Name], flags["Hit Chams Settings"].Color, flags["Hit Chams Material"], flags["Hit Chams Settings"].Transparency, Model);
														delay(flags["Hit Chams Fading Time"], function()
															Model:Destroy()
														end)
													end
													-- 
													if flags["Hit Notify"] then 
														local Text = string.format("You Hit %s in the %s!", Players[InstanceHit.Name].Name, HitInstance.Name)
														Library:Notification(Text, 3, Library.Accent, flags["Notification Position"])
													end 
													-- 
													if flags["Hit Marker"] then 
														HitReg:HitMarker(4, flags["Hit Marker Settings"].Color, flags["Hit Markers Time"])
													end 
													-- 
													if flags["3D Hit Marker"] then 
														HitReg:HitMarker3D(4, flags["3D Hit Marker Settings"].Color, flags["Hit Markers Time"], HitPosition) 
													end 
													-- 
													if flags["Hit Effects"] then 
														HitReg:HitEffect(flags["Hit Effects Option"], Players[InstanceHit.Name].Character)
													end 
												end 
											end 
											ChildAdded:Disconnect()
										end)
									end
								else
									ChildAdded:Disconnect()
								end
							end)
						end
						PreviousAmmo = CurrentAmmo
					end)
				end
			end 
		end)) 
		framework["connections"]["Typing Check"] = InputService.InputBegan:Connect(function(_, Chatting)
			Typing = Chatting
		end)
		framework["connections"]["Text"] = InputService.InputChanged:Connect(function(_)
			if utility.drawings["Aim Assist FOV"].Visible then 
				utility.drawings["Aim Assist FOV"].Position = NewVector2(Mouse.X, Mouse.Y + Offset)
			end 
		end) 
		framework["connections"]["ESP Player Find Loop"] = Players.PlayerAdded:Connect(LPH_NO_VIRTUALIZE(function(Player)
			if flags["PlayerESP_Enabled"] then 
				Visuals:Create({Player = Player})
			end 
		end))
	end 
	-- // Gun Handling
	do  
		local function Aimbot() 
			utility:calculateAimViewerEndPoint()
		end 	
		-- 	
		local function Ammo()
			framework:autoReload()            
		end 	
		-- 
		framework["connections"]["Anti Aim Viewer"] = {} 
		framework["connections"]["auto reload >_< :3"] = {}
		for i, v in pairs(LocalPlayer.Backpack:GetChildren()) do
			if v:IsA("Tool") and v:FindFirstChild("Ammo") then
				if not framework["connections"]["Anti Aim Viewer"][v] then 
					framework["connections"]["Anti Aim Viewer"][v] = v.Activated:Connect(Aimbot)
				end 
				--
				if not framework["connections"]["auto reload >_< :3"][v] then 
					framework["connections"]["auto reload >_< :3"][v] = v.Ammo:GetPropertyChangedSignal("Value"):Connect(Ammo)
				end 
			end
		end
		for i, v in pairs(LocalPlayer.Character:GetChildren()) do
			if v:IsA("Tool") and v:FindFirstChild("Ammo") then
				if not framework["connections"]["Anti Aim Viewer"][v] then 
					framework["connections"]["Anti Aim Viewer"][v] = v.Activated:Connect(Aimbot)
				end 
				--
				if not framework["connections"]["auto reload >_< :3"][v] then 
					framework["connections"]["auto reload >_< :3"][v] = v.Ammo:GetPropertyChangedSignal("Value"):Connect(Ammo)
				end 
			end
		end
		LocalPlayer.Character.ChildAdded:connect(function(v)
			if v:IsA("Tool") and v:FindFirstChild("Ammo") then
				if not framework["connections"]["Anti Aim Viewer"][v] then 
					framework["connections"]["Anti Aim Viewer"][v] = v.Activated:Connect(Aimbot)
				end 
				--
				if not framework["connections"]["auto reload >_< :3"][v] then 
					framework["connections"]["auto reload >_< :3"][v] = v.Ammo:GetPropertyChangedSignal("Value"):Connect(Ammo)
				end 
			end
		end)
		LocalPlayer.CharacterAdded:connect(function(v)
			for i = 1, #framework["connections"]["Anti Aim Viewer"], 1 do
				framework["connections"]["Anti Aim Viewer"][i]:Disconnect()
				framework["connections"]["Anti Aim Viewer"][i] = nil
				framework["connections"]["auto reload >_< :3"][i]:Disconnect()
				framework["connections"]["auto reload >_< :3"][i] = nil
			end
			v.ChildAdded:connect(function(v)
				if v:IsA("Tool") and v:FindFirstChild("Ammo") then
					if not framework["connections"]["Anti Aim Viewer"][v] then 
						framework["connections"]["Anti Aim Viewer"][v] = v.Activated:Connect(Aimbot)
					end 
					--
					if not framework["connections"]["auto reload >_< :3"][v] then 
						framework["connections"]["auto reload >_< :3"][v] = v.Ammo:GetPropertyChangedSignal("Value"):Connect(Ammo)
					end 
				end
			end)
		end)
	end 	
	-- // Target Back Track
	do 
		task.spawn(function()
			while true do 
				task.wait(flags["Back Track Delay"]/2)
				if utility.target and utility:ValidateClient(utility.target) then 
					if flags["Back Track Enabled"] and flags["Back Track Method"] == "Clone" then
						utility:characterClone(utility.target, flags["Back Track Settings"].Color, flags["Back Track Material"], flags["Back Track Settings"].Transparency, utility.folders["Part Chams"]);
						task.wait(flags["Back Track Delay"]/2)
						utility.folders["Part Chams"]:ClearAllChildren(); 
					end     
				end 
			end 
		end)
	end 
	-- // Hooks 
	do 
		local Old; 
		Old = hookmetamethod(game, "__namecall", LPH_NO_VIRTUALIZE(function(self, ...)
			if tostring(self.Name) == "MainEvent" then 
				local Args = {...}
				-- 
				if getnamecallmethod() == "FireServer" and Args[1] == "UpdateMousePos" and not flags["Aim Viewer Bypass"] then 
					if utility.target and utility.target.Character and flags["Silent_Bind"] then 
						local part = (flags["Jump Prediction"] and utility.target.Character.Humanoid.FloorMaterial == Enum.Material.Air and "RightFoot") or (flags["Nearest Part"] and partClosest) or flags["Single Hit Part"]
						local yOffset = utility.target.Character.Humanoid.FloorMaterial == Enum.Material.Air and flags["Manual Offset Value"] or 0 
						--
						if (checks == true) then 
							if flags["Resolver"] then  
								Args[2] = utility.target.Character[tostring(part)].Position + offset + NewVector3(0, yOffset, 0)
							else 
								Args[2] = utility.target.Character[tostring(part)].Position + (utility.target.Character.HumanoidRootPart.Velocity * prediction) + NewVector3(0, yOffset, 0)
							end   
						end   
					end 
				end 
				--
				return Old(self, unpack(Args))
			end 
			-- 
			return Old(self, ...)
		end))

		--[[local IndexThing
		IndexThing = hookmetamethod(game, "__index", function(self, k)
			if (self:IsA("Mouse") and (k == "Hit" or k == "Target")) then 
				if utility.target and utility.target.Character and flags["Silent_Bind"] and LocalPlayer.Character then 
					local part = (flags["Jump Prediction"] and utility.target.Character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall and flags["Air Hit Part"]) or (flags["Nearest Part"] and partClosest) or flags["Single Hit Part"]
					local yOffset = utility.target.Character.Humanoid.FloorMaterial == Enum.Material.Air and flags["Manual Offset Value"] or 0 
					--
					if (checks == true) then 
						if flags["Resolver"] then  
							getgenv().Hit = utility.target.Character[tostring(part)].Position + offset + NewVector3(0, yOffset, 0)
						else 
							getgenv().Hit = utility.target.Character[tostring(part)].Position + (utility.target.Character.HumanoidRootPart.Velocity * prediction) + NewVector3(0, yOffset, 0)
						end  
						return (k == "Hit" and CFrame.new(getgenv().Hit)) 
					end   
				end 	
			end
			return IndexThing(self, k)
		end)]]

		local old
		old = hookmetamethod(game, "__index", LPH_NO_VIRTUALIZE(function(self, key)
			if not checkcaller() then
				if key == "CFrame" and LocalPlayer.Character and self == LocalPlayer.Character.HumanoidRootPart and ((flags["Desync"] and flags["Desync Key"]) or (flags["Destroy Cheaters Key"] and flags["Destroy Cheaters"])) and C_Desync["OldPosition"] ~= nil and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer.Character:FindFirstChild("Humanoid") and LocalPlayer.Character:FindFirstChild("Humanoid").Health > 0 then
					return C_Desync["OldPosition"]
				end
			end 
			return old(self, key)
		end))
	end 
end 

Library:Notification("Loaded lunar.vip in " .. Floor((tick() - loadingTime) * 1000)  .."ms", 3, Library.Accent, flags["Notification Position"])







































































--[[

NICE TRY POORON >_< :3333

]]

New Paste


Do not write anything in this field if you're a human.

Go to most recent paste.