if not LPH_OBFUSCATED then local rprint = rconsoleprint and clonefunction(rconsoleprint); rconsoleprint = function(msg) if typeof(msg) ~= 'string' then msg = tostring(msg); end; if msg:sub(-1) ~= "\n" then msg = msg .. "\n"; end; return rprint(msg); end; LPH_JIT = function(...) return ... end LPH_JIT_MAX = LPH_JIT LPH_NO_VIRTUALIZE = LPH_JIT; LPH_NO_UPVALUES = function(f) return function(...) return f(...) end end LPH_ENCSTR = LPH_JIT; LPH_ENCNUM = LPH_JIT; LPH_CRASH = function() return print(debug.traceback()) end LRM_INIT_SCRIPT = function(f) return f() end LRM_SecondsLeft = math.huge; LRM_ScriptVersion = "1.0.1" LRM_UserNote = "LRM_UserNote nigga!"; LRM_LinkedDiscordID = "Unknown"; LRM_TotalExecutions = 99; LRM_IsUserPremium = true Type = "[Developer]" local assert = assert local type = type local setfenv = setfenv LPH_ENCNUM = function(toEncrypt, ...) assert(type(toEncrypt) == "number" and #{...} == 0, "LPH_ENCNUM only accepts a single constant double or integer as an argument.") return toEncrypt end LPH_NUMENC = LPH_ENCNUM LPH_ENCSTR = function(toEncrypt, ...) assert(type(toEncrypt) == "string" and #{...} == 0, "LPH_ENCSTR only accepts a single constant string as an argument.") return toEncrypt end LPH_STRENC = LPH_ENCSTR LPH_ENCFUNC = function(toEncrypt, encKey, decKey, ...) assert(type(toEncrypt) == "function" and type(encKey) == "string" and #{...} == 0, "LPH_ENCFUNC accepts a constant function, constant string, and string variable as arguments.") return toEncrypt end LPH_FUNCENC = LPH_ENCFUNC LPH_JIT = function(f, ...) assert(type(f) == "function" and #{...} == 0, "LPH_JIT only accepts a single constant function as an argument.") return f end LPH_JIT_MAX = LPH_JIT LPH_NO_VIRTUALIZE = function(f, ...) assert(type(f) == "function" and #{...} == 0, "LPH_NO_VIRTUALIZE only accepts a single constant function as an argument.") return f end LPH_NO_UPVALUES = function(f, ...) assert(type(setfenv) == "function", "LPH_NO_UPVALUES can only be used on Lua versions with getfenv & setfenv") assert(type(f) == "function" and #{...} == 0, "LPH_NO_UPVALUES only accepts a single constant function as an argument.") return f end LPH_CRASH = function(...) assert(#{...} == 0, "LPH_CRASH does not accept any arguments.") end end; LRM_INIT_SCRIPT(function() local Players = cloneref(game:GetService("Players")) local LocalPlayer = Players.LocalPlayer if not getgenv then return task.wait(9e9), LocalPlayer:Kick("nex.lol | Get a better executor!") end if not getgenv().isfunctionhooked then return task.wait(9e9), LocalPlayer:Kick("nex.lol | Get a better executor!") end if not getgenv().restorefunction then return task.wait(9e9), LocalPlayer:Kick("nex.lol | Get a better executor!") end if typeof(getgenv().isfunctionhooked) ~= "function" then return task.wait(9e9), LocalPlayer:Kick("nex.lol | You're a bad boy!") end if typeof(getgenv().restorefunction) ~= "function" then return task.wait(9e9), LocalPlayer:Kick("nex.lol | You're a bad boy!") end pcall(restorefunction, isfunctionhooked) if isfunctionhooked(game.HttpGet) then return task.wait(9e9), LocalPlayer:Kick("nex.lol | You're a bad boy!") end if isfunctionhooked(game.Shutdown) then return task.wait(9e9), LocalPlayer:Kick("nex.lol | You're a bad boy!") end if isfunctionhooked(getgenv().hookfunction) then return task.wait(9e9), LocalPlayer:Kick("nex.lol | You're a bad boy!") end end) local Services = setmetatable({}, { __index = function(Self, Name) return cloneref(game:GetService(Name)) end }); local LoadingTick = LoadingTick or os.clock() local Players = Services.Players local Client = Players.LocalPlayer if getfenv().script_key then writefile("nexlol.txt", getfenv().script_key) end local Workspace = Services.Workspace local ReplicatedStorage = Services.ReplicatedStorage local RunService = Services.RunService local UserInputService = Services.UserInputService local TweenService = Services.TweenService local StarterGui = Services.StarterGui local CurrentCamera = nil local function getCamera() if CurrentCamera and CurrentCamera.Parent then return CurrentCamera end local cam = Workspace.CurrentCamera if not cam then local waited = 0 while not cam and waited < 5 do task.wait(0.1) waited += 0.1 cam = Workspace.CurrentCamera end end CurrentCamera = cam return cam end Workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() CurrentCamera = Workspace.CurrentCamera end) CurrentCamera = Workspace.CurrentCamera -- \\ Bypass spawn(function() local getgc = getgc or debug.getgc local hookfunction = hookfunction local getrenv = getrenv local debugInfo = (getrenv and getrenv().debug and getrenv().debug.info) or debug.info local newcclosure = newcclosure or function(f) return f end if not (getgc and hookfunction and getrenv and debugInfo) then return end local ECSHookComponent = {} ECSHookComponent.__index = ECSHookComponent function ECSHookComponent.new(methodTable) return setmetatable({ methodTable = methodTable }, ECSHookComponent) end function ECSHookComponent:Hook(methodName, fn) local target = self.methodTable[methodName] if typeof(target) == "function" then hookfunction(target, newcclosure(fn)) end end local AdonisDetectorSystem = {} AdonisDetectorSystem.__index = AdonisDetectorSystem function AdonisDetectorSystem.new() return setmetatable({ detected = nil, kill = nil, debugMode = false }, AdonisDetectorSystem) end function AdonisDetectorSystem:Scan() for _, v in getgc(true) do if typeof(v) == "table" then local hasDetected = typeof(rawget(v, "Detected")) == "function" local hasKill = typeof(rawget(v, "Kill")) == "function" local hasVars = rawget(v, "Variables") ~= nil local hasProcess = rawget(v, "Process") ~= nil if hasDetected and not self.detected then self.detected = rawget(v, "Detected") end if hasKill and hasVars and hasProcess and not self.kill then self.kill = rawget(v, "Kill") end end end end function AdonisDetectorSystem:Bypass() if self.detected then local comp = ECSHookComponent.new({ Detected = self.detected }) comp:Hook("Detected", function(name, func) if name ~= "_" and self.debugMode then end return true end) end if self.kill then local comp = ECSHookComponent.new({ Kill = self.kill }) comp:Hook("Kill", function(func) if self.debugMode then end end) end end function AdonisDetectorSystem:BypassDebugInfo() if debugInfo and self.detected then local original; original = hookfunction(debugInfo, newcclosure(function(...) if (...) == self.detected then if self.debugMode then end return coroutine.yield(coroutine.running()) end return original(...) end)) end end local adonis = AdonisDetectorSystem.new() adonis:Scan() if adonis.detected or adonis.kill then adonis:Bypass() adonis:BypassDebugInfo() else end end) local function Character() if Client.Character then return Client.Character end Client.CharacterAdded:Wait() return Character() end -- \\ Configuration Configuration = { ["Connections"] = {}, ["Threads"] = {}, ["Mobile User"] = UserInputService.TouchEnabled, ["Target Player"] = nil, ["Regular Head Size"] = Character():WaitForChild("Head").Size, ["Player Adjustments"] = { ["Instant Interact"] = { ["Enabled"] = false }, ["Infinite Stamina"] = { ["Enabled"] = false }, ["Infinite Jump"] = { ["Enabled"] = false }, ["Anti Combat"] = { ["Enabled"] = false }, ["Anti Knockout"] = { ["Enabled"] = false }, ["Anti Climb"] = { ["Enabled"] = false }, ["Anti On Camera"] = { ["Enabled"] = false }, ["No Clip"] = { ["Enabled"] = false }, ["Infinite Hunger"] = { ["Enabled"] = false }, ["Walkspeed"] = { ["Enabled"] = false, ["Value"] = 1, }, ["Fly"] = { ["Enabled"] = false, ["Speed"] = 75, }, ["Click Teleport"] = { ["Enabled"] = false, ["Keybind"] = Enum.KeyCode.E, ["Distance"] = 50, }, ["Spinbot"] = { ["Enabled"] = false, ["Speed"] = 20, }, }, ["World Visuals"] = { ["Full Bright"] = false, ["No Fog"] = false, ["Change Saturation"] = false, ["Saturation Value"] = .5, ["Change Ambiency"] = false, ["Ambiency Color"] = Color3.fromRGB(255, 0, 0), }, ["Target Menu"] = { ["Selected Player"] = nil, ["Auto Kill"] = false, ["Kill"] = nil, ["Bring"] = false, }, ["Inventory Searcher"] = { ["Searching Mode"] = "Selected Player", ["Search Key Word"] = "", }, ["Silent Aim FOV"] = { ["Enabled"] = false, ["Draw"] = false, ["Fill"] = false, ["Radius"] = 130, ["NumSides"] = 100, }, ["Aimbot FOV"] = { ["Enabled"] = false, ["Draw"] = false, ["Fill"] = false, ["Radius"] = 130, ["NumSides"] = 100, }, ["Field Of View Circle"] = { ["Outline"] = nil, ["Main"] = nil, ["Fill"] = nil, }, ["Target Checks"] = { ["Closest Player"] = true, ["Health Check"] = false, ["Minimum Health"] = 5, ["Friend Check"] = false, ["Visible Check"] = false, ["Distance Check"] = false, ["Maximum Distance"] = 350, ["Safezone Check"] = false, }, ["Silent Aim"] = { ["Enable Silent Aim"] = false, ["Hit Chance"] = 50, ["Hit Parts"] = { "Head", "UpperTorso", "HumanoidRootPart" }, ["Highlight Target"] = false, ["Highlight Color"] = Color3.fromRGB(255, 255, 255), ["Highlight Transparency"] = .5, ["Draw Snapline"] = false, ["Snapline Color"] = Color3.fromRGB(255, 255, 255), ["Snapline Thickness"] = 2, }, ["Aimlock"] = { ["Enable Aimlock"] = false, ["Keybind"] = Enum.KeyCode.E, ["Mode"] = "Hold", ["Aimlock Smoothness"] = .5, ["Hit Part"] = "Head", ["Highlight Target"] = false, ["Highlight Color"] = Color3.fromRGB(255, 255, 255), ["Highlight Transparency"] = .5, ["Draw Snapline"] = false, ["Snapline Color"] = Color3.fromRGB(255, 255, 255), ["Snapline Thickness"] = 2, }, ["Head Expander"] = { ["Enable Head Expander"] = false, ["Head Size Multiplier"] = 1, ["Enable Head Transparency"] = false, ["Head Transparency"] = .5, ["Ignore Dead People"] = false, ["Friend Check"] = false, ["Visible Check"] = false, ["Distance Check"] = false, ["Safezone Check"] = false, ["Maximum Distance"] = 350, }, ["Kill Aura"] = { ["Enable Kill Aura"] = false, ["Hit Part"] = "Head", ["Friend Check"] = false, ["Visible Check"] = false, ["Distance Check"] = false, ["Safezone Check"] = false, ["Maximum Distance"] = 350, ["Delay"] = 0.1, }, ["Selected Location"] = nil, ["Selected Car"] = nil, ["Selected House"] = nil, ["Selected ATM"] = nil, ["Selected Gun"] = nil, ["Selected Ammo"] = nil, ["Gun Modifications"] = { ["Full Auto"] = false, ["One Shot Damage"] = false, ["No Recoil"] = false, ["Recoil Percentage"] = 0, ["No Spread"] = false, ["Spread Percentage"] = 0, ["Multi Shot"] = false, ["Multi Shot Count"] = 5, ["Rapid Fire"] = false, ["Rapid Fire Multiplier"] = 0.1, }, } -- // OpenLua UI Library — dark / orange restyle if getgenv().Library then pcall(function() getgenv().Library:Unload() end) end local Library do local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local HttpService = game:GetService("HttpService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local CoreGui = cloneref and cloneref(game:GetService("CoreGui")) or game:GetService("CoreGui") gethui = gethui or function() return CoreGui end local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local Mouse = LocalPlayer:GetMouse() local FromRGB = Color3.fromRGB local FromHSV = Color3.fromHSV local FromHex = Color3.fromHex local RGBSequence = ColorSequence.new local RGBSequenceKeypoint = ColorSequenceKeypoint.new local NumSequence = NumberSequence.new local NumSequenceKeypoint = NumberSequenceKeypoint.new local UDim2New = UDim2.new local UDimNew = UDim.new local Vector2New = Vector2.new local InstanceNew = Instance.new local TweenInfoNew = TweenInfo.new local RectNew = Rect.new local MathClamp, MathFloor, MathAbs, MathSin, MathCos, MathRad = math.clamp, math.floor, math.abs, math.sin, math.cos, math.rad local TableInsert, TableFind, TableRemove, TableConcat, TableClone, TableUnpack = table.insert, table.find, table.remove, table.concat, table.clone, table.unpack local StringFormat, StringFind, StringGSub, StringLower, StringUpper, StringSub = string.format, string.find, string.gsub, string.lower, string.upper, string.sub Library = { Flags = { }, SetFlags = { }, MenuKeybind = tostring(Enum.KeyCode.Z), Tween = { Time = 0.18, Style = Enum.EasingStyle.Quad, Direction = Enum.EasingDirection.Out }, Folders = { Directory = "zoophack", Configs = "zoophack/Configs", Assets = "zoophack/Assets", Themes = "zoophack/Themes" }, Images = { ["Saturation"] = { "Saturation.png", "https://github.com/sametexe001/images/blob/main/saturation.png?raw=true" }, ["Value"] = { "Value.png", "https://github.com/sametexe001/images/blob/main/value.png?raw=true" }, ["Hue"] = { "Hue.png", "https://github.com/sametexe001/images/blob/main/horizontalhue.png?raw=true" }, ["Checkers"] = { "Checkers.png", "https://github.com/sametexe001/images/blob/main/checkers.png?raw=true" }, ["Scrollbar"] = { "Scrollbar.png", "https://github.com/sametexe001/images/blob/main/scrollbar.png?raw=true" }, }, -- named procedural icons can be swapped for image assets here -- e.g. Library.IconImages["Crosshair"] = "rbxassetid://1234567890" IconImages = { }, -- Ignore below Pages = { }, Sections = { }, Connections = { }, Threads = { }, Keybinds = { }, ThemeMap = { }, ThemeItems = { }, Themes = { }, CurrentFrames = { }, ThemeColorpickers = { }, UnnamedConnections = 0, UnnamedFlags = 0, Holder = nil, UnusedHolder = nil, NotifHolder = nil, Font = nil, BoldFont = nil, } local Keys = { ["Unknown"] = "Unknown", ["Backspace"] = "Back", ["Tab"] = "Tab", ["Clear"] = "Clear", ["Return"] = "Return", ["Pause"] = "Pause", ["Escape"] = "Escape", ["Space"] = "Space", ["QuotedDouble"] = '"', ["Hash"] = "#", ["Dollar"] = "$", ["Percent"] = "%", ["Ampersand"] = "&", ["Quote"] = "'", ["LeftParenthesis"] = "(", ["RightParenthesis"] = " )", ["Asterisk"] = "*", ["Plus"] = "+", ["Comma"] = ",", ["Minus"] = "-", ["Period"] = ".", ["Slash"] = "`", ["Three"] = "3", ["Seven"] = "7", ["Eight"] = "8", ["Colon"] = ":", ["Semicolon"] = ";", ["LessThan"] = "<", ["GreaterThan"] = ">", ["Question"] = "?", ["Equals"] = "=", ["At"] = "@", ["LeftBracket"] = "LeftBracket", ["RightBracket"] = "RightBracked", ["BackSlash"] = "BackSlash", ["Caret"] = "^", ["Underscore"] = "_", ["Backquote"] = "`", ["LeftCurly"] = "{", ["Pipe"] = "|", ["RightCurly"] = "}", ["Tilde"] = "~", ["Delete"] = "Delete", ["End"] = "End", ["KeypadZero"] = "Keypad0", ["KeypadOne"] = "Keypad1", ["KeypadTwo"] = "Keypad2", ["KeypadThree"] = "Keypad3", ["KeypadFour"] = "Keypad4", ["KeypadFive"] = "Keypad5", ["KeypadSix"] = "Keypad6", ["KeypadSeven"] = "Keypad7", ["KeypadEight"] = "Keypad8", ["KeypadNine"] = "Keypad9", ["KeypadPeriod"] = "KeypadP", ["KeypadDivide"] = "KeypadD", ["KeypadMultiply"] = "KeypadM", ["KeypadMinus"] = "KeypadM", ["KeypadPlus"] = "KeypadP", ["KeypadEnter"] = "KeypadE", ["KeypadEquals"] = "KeypadE", ["Insert"] = "Insert", ["Home"] = "Home", ["PageUp"] = "PageUp", ["PageDown"] = "PageDown", ["RightShift"] = "RightShift", ["LeftShift"] = "LeftShift", ["RightControl"] = "RightControl", ["LeftControl"] = "LeftControl", ["LeftAlt"] = "LeftAlt", ["RightAlt"] = "RightAlt" } Library.__index = Library Library.Pages.__index = Library.Pages Library.Sections.__index = Library.Sections -- folders + local assets for _, Path in { Library.Folders.Directory, Library.Folders.Configs, Library.Folders.Assets, Library.Folders.Themes } do pcall(function() if not isfolder(Path) then makefolder(Path) end end) end for _, Image in Library.Images do pcall(function() local Path = Library.Folders.Assets .. "/" .. Image[1] if not isfile(Path) then local Data = game:HttpGet(Image[2]) if type(Data) == "string" and #Data > 0 then writefile(Path, Data) end end end) end local AssetCache = { } local Themes = { ["Default"] = { ["Background"] = FromRGB(16, 16, 18), ["Inline"] = FromRGB(21, 22, 25), ["Card"] = FromRGB(21, 22, 25), ["Card Header"] = FromRGB(28, 29, 33), ["Element"] = FromRGB(31, 32, 37), ["Off"] = FromRGB(58, 59, 65), ["Border"] = FromRGB(38, 39, 45), ["Text"] = FromRGB(255, 255, 255), ["SubText"] = FromRGB(122, 126, 134), ["Image"] = FromRGB(255, 255, 255), ["Accent"] = FromRGB(224, 138, 43), ["Light Accent"] = FromRGB(255, 169, 77), ["Accent Dim"] = FromRGB(85, 52, 16), } } Library.Theme = TableClone(Themes["Default"]) Library.Themes = Themes -- Accepts either a raw Instance or an Instances wrapper table local function Raw(Item) if typeof(Item) == "Instance" then return Item elseif type(Item) == "table" then return Item.Instance end return Item end -- Tweening local Tween = { } do Tween.__index = Tween Tween.Create = function(self, Item, Info, Goal, IsRawItem) Item = IsRawItem and Item or Item.Instance Info = Info or TweenInfoNew(Library.Tween.Time, Library.Tween.Style, Library.Tween.Direction) local NewTween = { Tween = TweenService:Create(Item, Info, Goal), Info = Info, Goal = Goal, Item = Item } NewTween.Tween:Play() setmetatable(NewTween, Tween) return NewTween end Tween.Get = function(self) if not self.Tween then return end return self.Tween, self.Info, self.Goal end Tween.Pause = function(self) if not self.Tween then return end self.Tween:Pause() end Tween.Play = function(self) if not self.Tween then return end self.Tween:Play() end Tween.Clean = function(self) if not self.Tween then return end self.Tween:Pause() self = nil end end -- Instances local Instances = { } do Instances.__index = Instances Instances.Create = function(self, Class, Properties) local NewItem = { Instance = InstanceNew(Class), Properties = Properties or { }, Class = Class } setmetatable(NewItem, Instances) for Property, Value in pairs(NewItem.Properties) do if Value ~= nil then NewItem.Instance[Property] = Value end end return NewItem end Instances.AddToTheme = function(self, Properties) if not self.Instance then return end Library:AddToTheme(self, Properties) return self end Instances.ChangeItemTheme = function(self, Properties) if not self.Instance then return end Library:ChangeItemTheme(self, Properties) return self end Instances.Set = function(self, Properties) if not self.Instance then return end for Property, Value in pairs(Properties) do if Value ~= nil then self.Instance[Property] = Value end end return self end Instances.Connect = function(self, Event, Callback, Name) if not self.Instance then return end if not self.Instance[Event] then return end return Library:Connect(self.Instance[Event], Callback, Name) end Instances.Tween = function(self, Info, Goal) if not self.Instance then return end return Tween:Create(self, Info, Goal) end Instances.Disconnect = function(self, Name) if not self.Instance then return end return Library:Disconnect(Name) end Instances.Clean = function(self) if not self.Instance then return end self.Instance:Destroy() self = nil end Instances.MakeDraggable = function(self, Regions) if not self.Instance then return end local RawGui = self local Gui = self.Instance local RegionList = { } if type(Regions) == "table" and Regions.Instance == nil then for _, Region in Regions do local RawRegion = Raw(Region) if RawRegion then TableInsert(RegionList, RawRegion) end end else TableInsert(RegionList, Raw(Regions) or Gui) end local Dragging = false local DragStart local StartPosition local ParentScale = 1 pcall(function() local Parent = Gui.Parent if Parent then local ScaleObject = Parent:FindFirstChildOfClass("UIScale") if ScaleObject then ParentScale = ScaleObject.Scale end end end) if ParentScale <= 0 then ParentScale = 1 end local function IsControl(Target, Stop) local Node = Target local Guard = 0 while Node and Node ~= Stop and Guard < 16 do if Node:IsA("TextButton") or Node:IsA("ImageButton") or Node:IsA("TextBox") then return true end Node = Node.Parent Guard += 1 end return false end local function Set(Input) local DragDelta = Input.Position - DragStart Gui.Position = UDim2New(StartPosition.X.Scale, StartPosition.X.Offset + (DragDelta.X / ParentScale), StartPosition.Y.Scale, StartPosition.Y.Offset + (DragDelta.Y / ParentScale)) end for _, Region in RegionList do Library:Connect(Region.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then if Input.Target and IsControl(Input.Target, Region) then return end Dragging = true DragStart = Input.Position StartPosition = Gui.Position RawGui.Debounce = true end end) Library:Connect(Region.InputEnded, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = false RawGui.Debounce = false end end) end -- legacy Mouse fallback: independent of GUI input routing local function ControlUnderPoint(X, Y) for _, Item in ipairs(Gui:GetDescendants()) do if Item:IsA("TextButton") or Item:IsA("ImageButton") or Item:IsA("TextBox") then if Item.Visible and Item.AbsoluteSize.X > 0 and Item.AbsoluteSize.Y > 0 then local Position = Item.AbsolutePosition local Size = Item.AbsoluteSize if X >= Position.X and X <= Position.X + Size.X and Y >= Position.Y and Y <= Position.Y + Size.Y then return true end end end end return false end Library:Connect(Mouse.Button1Down, function() local X, Y = Mouse.X, Mouse.Y local Position = Gui.AbsolutePosition local Size = Gui.AbsoluteSize if X < Position.X or X > Position.X + Size.X or Y < Position.Y or Y > Position.Y + Size.Y then return end if ControlUnderPoint(X, Y) then return end Dragging = true DragStart = Vector3.new(X, Y, 0) StartPosition = Gui.Position RawGui.Debounce = true end) Library:Connect(Mouse.Move, function() if not Dragging then return end local Delta = Vector3.new(Mouse.X, Mouse.Y, 0) - DragStart Gui.Position = UDim2New(StartPosition.X.Scale, StartPosition.X.Offset + (Delta.X / ParentScale), StartPosition.Y.Scale, StartPosition.Y.Offset + (Delta.Y / ParentScale)) end) Library:Connect(Mouse.Button1Up, function() Dragging = false RawGui.Debounce = false end) -- global fallback: works even when the press target is a frame that does not pass input up Library:Connect(UserInputService.InputBegan, function(Input, Processed) if Processed then return end if Input.UserInputType ~= Enum.UserInputType.MouseButton1 and Input.UserInputType ~= Enum.UserInputType.Touch then return end local Target = Input.Target if not Target or not Target:IsDescendantOf(Gui) then return end if Target ~= Gui and IsControl(Target, Gui) then return end Dragging = true DragStart = Input.Position StartPosition = Gui.Position RawGui.Debounce = true end) Library:Connect(UserInputService.InputEnded, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = false RawGui.Debounce = false end end) Library:Connect(UserInputService.InputChanged, function(Input) if not Dragging then return end if Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch then RawGui.Debounce = true Set(Input) end end) return Dragging end Instances.MakeResizeable = function(self, Minimum, Maximum) if not self.Instance then return end local RawGui = self local Gui = self.Instance local Resizing = false local Start = UDim2New() local Delta = UDim2New() local ResizeButton = Instances:Create("TextButton", { Parent = Gui, AnchorPoint = Vector2New(1, 1), Size = UDim2New(0, 12, 0, 12), Position = UDim2New(1, 0, 1, 0), Name = "\0", BackgroundTransparency = 1, AutoButtonColor = false, ZIndex = 2000, Visible = true, Text = "" }) ResizeButton:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Resizing = true Start = Gui.Size - UDim2New(0, Input.Position.X, 0, Input.Position.Y) end end) ResizeButton:Connect("InputEnded", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Resizing = false end end) Library:Connect(UserInputService.InputChanged, function(Input) if (Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch) and Resizing then local ResizeMax = Maximum or Gui.Parent.AbsoluteSize - Gui.AbsoluteSize Delta = Start + UDim2New(0, Input.Position.X, 0, Input.Position.Y) Delta = UDim2New(0, MathClamp(Delta.X.Offset, Minimum.X, ResizeMax.X), 0, MathClamp(Delta.Y.Offset, Minimum.Y, ResizeMax.Y)) Gui.Size = Delta end end) return Resizing end Instances.OnHover = function(self, Function) if not self.Instance then return end return Library:Connect(self.Instance.MouseEnter, Function) end Instances.OnHoverLeave = function(self, Function) if not self.Instance then return end return Library:Connect(self.Instance.MouseLeave, Function) end end -- Fonts local function SafeAsset(Path) local Ok, Result = pcall(function() return getcustomasset(Path) end) if Ok then return Result end return nil end Library.GetImage = function(self, Image) if AssetCache[Image] then return AssetCache[Image] end local ImageData = self.Images[Image] if not ImageData then return nil end local Path = SafeAsset(self.Folders.Assets .. "/" .. ImageData[1]) if Path then AssetCache[Image] = Path end return Path end local CustomFont = { } do local function Load(Name, Weight, Style, Url) local JsonPath = Library.Folders.Assets .. "/" .. Name .. ".json" local TtfPath = Library.Folders.Assets .. "/" .. Name .. ".ttf" if not isfile(JsonPath) then local Ok = pcall(function() if not isfile(TtfPath) then local Data = game:HttpGet(Url) if type(Data) ~= "string" or #Data == 0 then error("empty font download") end writefile(TtfPath, Data) end local FontData = { name = Name, faces = { { name = "Regular", weight = Weight, style = Style, assetId = getcustomasset(TtfPath) } } } writefile(JsonPath, HttpService:JSONEncode(FontData)) end) if not Ok then return false end end return true end function CustomFont:New(Name, Weight, Style, Data) if Load(Name, Weight, Style, Data.Url) then local Path = SafeAsset(Library.Folders.Assets .. "/" .. Name .. ".json") if Path then local Ok, Face = pcall(function() return Font.new(Path) end) if Ok then return Face end end end return nil end function CustomFont:Get(Name) local Path = SafeAsset(Library.Folders.Assets .. "/" .. Name .. ".json") if not Path then return nil end local Ok, Face = pcall(function() return Font.new(Path) end) if Ok then return Face end return nil end end local function FallbackFont(Weight) local Ok, Face = pcall(function() return Font.new("rbxasset://fonts/families/GothamSSm.json", Weight) end) if Ok then return Face end return Font.fromEnum(Enum.Font.GothamMedium) end CustomFont:New("Jakarta", 400, "Regular", { Url = "https://raw.githubusercontent.com/tokotype/PlusJakartaSans/master/fonts/ttf/PlusJakartaSans-Regular.ttf" }) CustomFont:New("JakartaMedium", 500, "Regular", { Url = "https://raw.githubusercontent.com/tokotype/PlusJakartaSans/master/fonts/ttf/PlusJakartaSans-Medium.ttf" }) CustomFont:New("JakartaBold", 700, "Bold", { Url = "https://raw.githubusercontent.com/tokotype/PlusJakartaSans/master/fonts/ttf/PlusJakartaSans-SemiBold.ttf" }) Library.Font = CustomFont:Get("JakartaMedium") or CustomFont:Get("Jakarta") or FallbackFont(Enum.FontWeight.Medium) Library.BoldFont = CustomFont:Get("JakartaBold") or FallbackFont(Enum.FontWeight.Bold) -- Icons (procedural, 16x16 design grid) local Icons = { } do local function Ctx(Holder, Size, Color, ZIndex) local K = Size / 16 local function Add(Class, Props) local Item = InstanceNew(Class) for Property, Value in pairs(Props) do if Value ~= nil then Item[Property] = Value end end Item.Parent = Holder return Item end local function Rect(X, Y, W, H, Radius, Rotation) local Item = Add("Frame", { AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0, X * K, 0, Y * K), Size = UDim2New(0, W * K, 0, H * K), BackgroundColor3 = Color, BorderSizePixel = 0, Rotation = Rotation or 0, ZIndex = ZIndex }) if Radius then Add("UICorner", { CornerRadius = UDimNew(Radius, 0) }) end return Item end local function Ring(X, Y, Diameter, Thickness) local Item = Add("Frame", { AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0, X * K, 0, Y * K), Size = UDim2New(0, Diameter * K, 0, Diameter * K), BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = ZIndex }) Add("UICorner", { CornerRadius = UDimNew(1, 0) }) Add("UIStroke", { Color = Color, Thickness = (Thickness or 1.4) * K, ApplyStrokeMode = Enum.ApplyStrokeMode.Border }) return Item end local function Oval(X, Y, W, H, Thickness) local Item = Add("Frame", { AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0, X * K, 0, Y * K), Size = UDim2New(0, W * K, 0, H * K), BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = ZIndex }) Add("UICorner", { CornerRadius = UDimNew(0.5, 0) }) Add("UIStroke", { Color = Color, Thickness = (Thickness or 1.4) * K, ApplyStrokeMode = Enum.ApplyStrokeMode.Border }) return Item end return { Rect = Rect, Ring = Ring, Oval = Oval, K = K } end local Builders = { } Builders["Crosshair"] = function(C) C.Ring(8, 8, 10, 1.4) C.Rect(8, 8, 1.8, 1.8, 1) C.Rect(8, 2.4, 1.4, 2.8, 0.7) C.Rect(8, 13.6, 1.4, 2.8, 0.7) C.Rect(2.4, 8, 2.8, 1.4, 0.7) C.Rect(13.6, 8, 2.8, 1.4, 0.7) end Builders["Eye"] = function(C) C.Oval(8, 8, 15, 9.5, 1.4) C.Rect(8, 8, 4.4, 4.4, 1) end Builders["Globe"] = function(C) C.Ring(8, 8, 13, 1.4) C.Oval(8, 8, 6.4, 13, 1.3) C.Rect(8, 8, 13, 1.4, 0.7) end Builders["Person"] = function(C) C.Ring(8, 5.4, 4.8, 1.4) C.Rect(8, 12.6, 10.6, 6.6, 0.5) end Builders["People"] = function(C) C.Ring(6, 5.6, 4.2, 1.3) C.Rect(6, 12.6, 9, 6.2, 0.5) C.Ring(12.4, 6.4, 3.4, 1.2) C.Rect(12.4, 12, 6.4, 5.2, 0.5) end Builders["Car"] = function(C) C.Rect(8, 9.8, 15, 5, 1.2) C.Rect(8, 6.6, 7.6, 3.6, 1) C.Rect(5, 13, 3, 3, 1) C.Rect(11, 13, 3, 3, 1) end Builders["Settings"] = function(C) for Index = 1, 8 do local Angle = Index * 45 C.Rect(8 + MathCos(MathRad(Angle)) * 6, 8 + MathSin(MathRad(Angle)) * 6, 2.2, 3.6, 1, Angle) end C.Ring(8, 8, 8.6, 1.5) C.Ring(8, 8, 2.4, 1.4) end Builders["Folder"] = function(C) C.Rect(8, 9.4, 14.4, 9.4, 1.6) C.Rect(6.4, 4.4, 6, 3, 0.9) end Builders["Search"] = function(C) C.Ring(7, 7, 10.4, 1.5) C.Rect(12.4, 12.4, 1.6, 5.4, 0.8, -45) end Builders["Keyboard"] = function(C) C.Rect(8, 7.6, 15, 10, 1.6) C.Rect(4.6, 6.4, 1.4, 1.4, 0.7) C.Rect(8, 6.4, 1.4, 1.4, 0.7) C.Rect(11.4, 6.4, 1.4, 1.4, 0.7) C.Rect(8, 9.4, 6.4, 1.3, 0.6) end Builders["Cart"] = function(C) C.Rect(3.4, 4.2, 3.6, 1.4, 0.7, 32) C.Rect(9.2, 9.6, 11.2, 6.6, 1.2) C.Rect(6.8, 13.8, 2.2, 2.2, 1) C.Rect(11.6, 13.8, 2.2, 2.2, 1) end Builders["Check"] = function(C) C.Rect(5.3, 10.6, 2, 4.8, 1, -45) C.Rect(9.7, 9.2, 2, 8.8, 1, 45) end Builders["Chevron"] = function(C) C.Rect(6.4, 9, 1.5, 4.2, 0.75, -45) C.Rect(9.6, 9, 1.5, 4.2, 0.75, 45) end Builders["Dots"] = function(C) C.Rect(4.6, 8, 1.8, 1.8, 1) C.Rect(8, 8, 1.8, 1.8, 1) C.Rect(11.4, 8, 1.8, 1.8, 1) end Builders["Bolt"] = function(C) C.Rect(8.4, 5.2, 2.4, 7, 0.9, 22) C.Rect(7.6, 10.8, 2.4, 7, 0.9, 22) end Builders["Shield"] = function(C) C.Rect(8, 8, 11, 12, 1.6) C.Ring(8, 8, 5, 1.4) end Builders["Sword"] = function(C) C.Rect(8.4, 7, 1.8, 12, 0.9, 45) C.Rect(4.8, 11.2, 1.6, 5, 0.8, -45) end Builders["Bug"] = function(C) C.Ring(8, 8, 7.4, 1.4) C.Rect(8, 3.6, 1.4, 3, 0.7, -30) C.Rect(8, 3.6, 1.4, 3, 0.7, 30) C.Rect(8, 8, 1.4, 8, 0.7) end function Icons.Draw(Name, Parent, Size, Color) if not Name then return nil end local Image = Library.IconImages[Name] if not Image and (StringFind(tostring(Name), "^%d") or StringFind(tostring(Name), "rbxassetid")) then Image = StringFind(tostring(Name), "rbxassetid") and Name or ("rbxassetid://" .. Name) end if Image then local Label = Instances:Create("ImageLabel", { Parent = Parent, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2New(0, Size, 0, Size), Image = Image, ImageColor3 = Color, ZIndex = (Parent.ZIndex or 1) + 1 }) return Label end local Builder = Builders[Name] if not Builder then Builder = Builders["Dots"] end local Holder = Instances:Create("Frame", { Parent = Parent, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2New(0, Size, 0, Size), ZIndex = (Parent.ZIndex or 1) + 1 }) Builder(Ctx(Holder.Instance, Size, Color, Holder.Instance.ZIndex)) return Holder end function Icons.Set(Name, Builder) Builders[Name] = Builder end Library.Icons = Icons end -- Library (core) Library.Holder = Instances:Create("ScreenGui", { Parent = gethui(), Name = "\0", ZIndexBehavior = Enum.ZIndexBehavior.Global, IgnoreGuiInset = true, ResetOnSpawn = false }) Library.UnusedHolder = Instances:Create("ScreenGui", { Parent = gethui(), Name = "\0", ZIndexBehavior = Enum.ZIndexBehavior.Global, IgnoreGuiInset = true, ResetOnSpawn = false, Enabled = false }) Library.OverlayHolder = Instances:Create("ScreenGui", { Parent = gethui(), Name = "\0", ZIndexBehavior = Enum.ZIndexBehavior.Global, IgnoreGuiInset = false, ResetOnSpawn = false, DisplayOrder = 100 }) Library.OverlayHolder.Instance:SetAttribute("OpenLuaUI", true) Library.NotifHolder = Instances:Create("Frame", { Parent = Library.OverlayHolder.Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(1, 1), Position = UDim2New(1, -16, 1, -16), Size = UDim2New(0, 280, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BorderSizePixel = 0, ZIndex = 5000 }) Instances:Create("UIListLayout", { Parent = Library.NotifHolder.Instance, Padding = UDimNew(0, 8), SortOrder = Enum.SortOrder.LayoutOrder, VerticalAlignment = Enum.VerticalAlignment.Bottom }) Instances:Create("UIPadding", { Parent = Library.NotifHolder.Instance, PaddingLeft = UDimNew(0, 10) }) Library.Holder.Instance:SetAttribute("OpenLuaUI", true) Library.UnusedHolder.Instance:SetAttribute("OpenLuaUI", true) Library.Round = function(self, Number, Float) Number = tonumber(Number) or 0 local Multiplier = 10 ^ (tonumber(Float) or 1) return MathFloor(Number * Multiplier + 0.5) / Multiplier end local function GuiSpace(X, Y) local Inset = Vector2New(0, 0) pcall(function() local GuiInset = game:GetService("GuiService"):GetGuiInset() Inset = Vector2New(GuiInset.X, GuiInset.Y) end) return X + Inset.X, Y + Inset.Y end Library.GuiSpace = GuiSpace Library.PopupParent = function(Self) local Window = Self.CurrentWindow if Window and Window.Items and Window.Items["MainFrame"] then return Window.Items["MainFrame"].Instance end return Self.Holder.Instance end Library.ShadowAsset = "rbxassetid://112971167999062" Library.AddShadow = function(self, Target, Options) Options = Options or { } Target = Raw(Target) if not Target then return nil end local Shadow = Instances:Create("ImageLabel", { Parent = Target, Name = "\0", AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0.5, 0, 0.5, 0), Size = UDim2New(1, Options.Spread or 24, 1, Options.Spread or 24), BackgroundTransparency = 1, BorderSizePixel = 0, Image = Options.Image or "rbxassetid://112971167999062", ImageColor3 = Options.Color or Color3.new(0, 0, 0), ImageTransparency = Options.Transparency or 0.6, SliceCenter = RectNew(Vector2New(112, 112), Vector2New(147, 147)), ScaleType = Enum.ScaleType.Slice, SliceScale = Options.SliceScale or 0.6, ZIndex = Options.ZIndex or (Target.ZIndex - 1), Visible = true, BackgroundColor3 = FromRGB(255, 255, 255) }) if Options.Theme then Shadow:AddToTheme({ ImageColor3 = Options.Theme }) end return Shadow end Library.AddGlow = function(self, Target, Options) Options = Options or { } Options.Color = Options.Color or self.Theme.Accent Options.Transparency = Options.Transparency or 0.55 Options.Spread = Options.Spread or 14 Options.SliceScale = Options.SliceScale or 0.75 Options.Theme = Options.Theme or "Accent" return self:AddShadow(Target, Options) end Library.HookChipHover = function(self, Chip, BasePadding, Label, StateColor) if not Chip or not Chip.Instance then return end local Padding = Chip.Instance:FindFirstChildOfClass("UIPadding") local Stroke = Chip.Instance:FindFirstChildOfClass("UIStroke") local Base = BasePadding or 7 local Info = TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local function Apply(Hover) Chip:ChangeItemTheme({ BackgroundColor3 = "Element" }) Chip:Tween(Info, { BackgroundColor3 = Hover and self.Theme.Element:Lerp(Color3.new(1, 1, 1), 0.08) or self.Theme.Element }) if Stroke then Stroke:Tween(Info, { Transparency = Hover and 0.1 or 0.35 }) end if Padding then Padding:Tween(Info, { PaddingLeft = UDimNew(0, Hover and Base + 4 or Base), PaddingRight = UDimNew(0, Hover and Base + 4 or Base) }) end if Label then Label:ChangeItemTheme({ TextColor3 = "Text" }) Label:Tween(Info, { TextColor3 = Hover and Color3.new(1, 1, 1) or (StateColor and StateColor() or self.Theme.Text) }) end end Chip:Connect("MouseEnter", function() Apply(true) end) Chip:Connect("MouseLeave", function() Apply(false) end) end Library.LocalPosition = function(Self, Gui, AbsX, AbsY) local Scale = 1 local Window = Self.CurrentWindow if Window and Window.Items and Window.Items["Scale"] then Scale = Window.Items["Scale"].Instance.Scale or 1 end if Scale <= 0 then Scale = 1 end return (AbsX - Gui.AbsolutePosition.X) / Scale, (AbsY - Gui.AbsolutePosition.Y) / Scale end Library.IsMouseOverFrame = function(self, Frame) Frame = Raw(Frame) local AbsolutePosition = Frame.AbsolutePosition local AbsoluteSize = Frame.AbsoluteSize local MouseX, MouseY = Mouse.X, Mouse.Y if MouseY < 0 and UserInputService.TouchEnabled then local Touch = UserInputService:GetMouseLocation() MouseX, MouseY = Touch.X, Touch.Y end if MouseX >= AbsolutePosition.X and MouseX <= AbsolutePosition.X + AbsoluteSize.X and MouseY >= AbsolutePosition.Y and MouseY <= AbsolutePosition.Y + AbsoluteSize.Y then return true end return false end Library.Unload = function(self) for _, Value in self.Connections do pcall(function() Value.Connection:Disconnect() end) end for _, Value in self.Threads do pcall(function() coroutine.close(Value) end) end if self.Holder then self.Holder:Clean() end if self.UnusedHolder then self.UnusedHolder:Clean() end if self.OverlayHolder then self.OverlayHolder:Clean() end self.Connections = { } self.Threads = { } getgenv().Library = nil Library = nil end Library.Thread = function(self, Function) local NewThread = coroutine.create(Function) coroutine.wrap(function() local Success, Error = coroutine.resume(NewThread) if not Success and Error then warn("[Library] thread error: " .. tostring(Error)) end end)() TableInsert(self.Threads, NewThread) return NewThread end Library.SafeCall = function(self, Function, ...) local Arguments = { ... } local Success, Result = pcall(Function, TableUnpack(Arguments)) if not Success then Library:Notification("Error", tostring(Result), 5) return false end return Success end Library.Connect = function(self, Event, Callback, Name) if not Event or not Callback then return end self.UnnamedConnections += 1 local NewConnection = { Event = Event, Callback = Callback, Name = Name or StringFormat("Connection_%s", self.UnnamedConnections), Connection = nil } NewConnection.Connection = Event:Connect(Callback) TableInsert(self.Connections, NewConnection) return NewConnection end Library.Disconnect = function(self, Name) for _, Connection in self.Connections do if Connection.Name == Name then pcall(function() Connection.Connection:Disconnect() end) break end end end Library.MenuKeybindMode = "Toggle" Library.SetMenuKeybind = function(self, Key, Mode) if Key == nil then return self.MenuKeybind end if Mode == "Hold" or Mode == "Toggle" or Mode == "Always" then self.MenuKeybindMode = Mode end local Name = tostring(Key) if typeof(Key) == "EnumItem" then Name = tostring(Key) elseif type(Key) == "string" and not StringFind(Name, "Enum") then if StringFind(Name, "Mouse") or StringFind(Name, "Touch") or StringFind(Name, "Gamepad") then Name = "Enum.UserInputType." .. Name else Name = "Enum.KeyCode." .. Name end end self.MenuKeybind = Name return self.MenuKeybind end Library.NextFlag = function(self) self.UnnamedFlags += 1 return StringFormat("Flag %s", self.UnnamedFlags) end Library.AddToTheme = function(self, Item, Properties) Item = Raw(Item) local ThemeData = { Item = Item, Properties = Properties, } for Property, Value in pairs(ThemeData.Properties) do if type(Value) == "string" then Item[Property] = self.Theme[Value] or Item[Property] else Item[Property] = Value end end TableInsert(self.ThemeItems, ThemeData) self.ThemeMap[Item] = ThemeData return ThemeData end Library.ChangeItemTheme = function(self, Item, Properties) Item = Raw(Item) local ThemeData = self.ThemeMap[Item] if not ThemeData then return end for Property, Value in pairs(Properties) do ThemeData.Properties[Property] = Value end for Property, Value in pairs(ThemeData.Properties) do if type(Value) == "string" then Item[Property] = self.Theme[Value] or Item[Property] end end end Library.ChangeTheme = function(self, Theme, Color) self.Theme[Theme] = Color for _, Item in self.ThemeItems do if Item.Item and Item.Item.Parent then for Property, Value in pairs(Item.Properties) do if type(Value) == "string" and Value == Theme then Item.Item[Property] = Color end end end end if self.RefreshTheme then self:RefreshTheme() end end Library.GetTransparencyPropertyFromItem = function(self, Item) if Item:IsA("Frame") then return {"BackgroundTransparency"} elseif Item:IsA("TextLabel") or Item:IsA("TextButton") or Item:IsA("TextBox") then return { "TextTransparency", "BackgroundTransparency" } elseif Item:IsA("ImageLabel") or Item:IsA("ImageButton") then return { "BackgroundTransparency", "ImageTransparency" } elseif Item:IsA("ScrollingFrame") then return { "BackgroundTransparency", "ScrollBarImageTransparency" } elseif Item:IsA("UIStroke") then return { "Transparency" } end return nil end Library.FadeItem = function(self, Item, Property, Visibility, Speed) local OldTransparency = Item[Property] Item[Property] = Visibility and 1 or OldTransparency local NewTween = Tween:Create(Item, TweenInfoNew(Speed or Library.Tween.Time, Library.Tween.Style, Library.Tween.Direction), { [Property] = Visibility and OldTransparency or 1 }, true) Library:Connect(NewTween.Tween.Completed, function() if not Visibility then task.wait() Item[Property] = OldTransparency end end) return NewTween end Library.Fade = function(self, Gui, Visibility, Speed) Gui = Raw(Gui) if Visibility then Gui.Visible = true end local Descendants = Gui:GetDescendants() TableInsert(Descendants, Gui) local NewTween for _, Value in Descendants do local ValueIndex = Library:GetTransparencyPropertyFromItem(Value) if not ValueIndex then continue end if type(ValueIndex) == "table" then for _, Property in ValueIndex do NewTween = Library:FadeItem(Value, Property, Visibility, Speed) end else NewTween = Library:FadeItem(Value, ValueIndex, Visibility, Speed) end end return NewTween end -- Configs Library.GetConfig = function(self) local Config = { } for Index, Value in self.Flags do if type(Value) == "table" and Value.Key then Config[Index] = { Key = tostring(Value.Key), Mode = Value.Mode, Toggled = Value.Toggled } elseif type(Value) == "table" and Value.Color then Config[Index] = { Color = Value.HexValue, Alpha = Value.Alpha } else Config[Index] = Value end end return HttpService:JSONEncode(Config) end Library.LoadConfig = function(self, Config) local Success, Decoded = pcall(function() return HttpService:JSONDecode(Config) end) if not Success then self:Notification("Error", "Invalid config file", 5) return end for Index, Value in Decoded do local SetFunction = self.SetFlags[Index] if not SetFunction then continue end if type(Value) == "table" and Value.Key then SetFunction(Value) elseif type(Value) == "table" and Value.Color then SetFunction(Value.Color, Value.Alpha) else SetFunction(Value) end end end Library.DeleteConfig = function(self, Config) if not Config then return end local Path = self.Folders.Configs .. "/" .. Config if not StringFind(Config, "%.json$") then Path = Path .. ".json" end local Ok = pcall(function() if isfile(Path) then delfile(Path) end end) if Ok then self:Notification("Config", "Deleted " .. Config, 3) end end Library.SaveConfig = function(self, Config) if not Config or Config == "" then return end local Path = self.Folders.Configs .. "/" .. Config if not StringFind(Config, "%.json$") then Path = Path .. ".json" end local Ok = pcall(writefile, Path, self:GetConfig()) if Ok then self:Notification("Config", "Saved " .. Config, 3) else self:Notification("Error", "Failed to save " .. Config, 3) end end Library.RefreshConfigsList = function(self, Element) local List = { } local Ok, Files = pcall(function() return listfiles(self.Folders.Configs) end) if Ok and Files then for _, Full in Files do local Name = StringGSub(tostring(Full), "^.*[\\/]", "") Name = StringGSub(Name, "%.json$", "") if Name ~= "" then TableInsert(List, Name) end end end if Element then Element:Refresh(List) end return List end -- Notifications Library.Notification = function(self, Text, Description, Duration) Duration = Duration or 4 local Items = { } Items["Notification"] = Instances:Create("Frame", { Parent = Library.NotifHolder.Instance, Name = "\0", Size = UDim2New(1, 0, 0, 54), BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, ZIndex = 5001, BackgroundTransparency = 1 }) Items["Notification"]:AddToTheme({ BackgroundColor3 = "Inline" }) Instances:Create("UICorner", { Parent = Items["Notification"].Instance, CornerRadius = UDimNew(0, 8) }) Instances:Create("UIStroke", { Parent = Items["Notification"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 1, Name = "NotifStroke" }):AddToTheme({ Color = "Border" }) local Stroke = Instances:Create("UIStroke", { Parent = Items["Notification"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 1 }) Stroke:AddToTheme({ Color = "Border" }) Items["Accent"] = Instances:Create("Frame", { Parent = Items["Notification"].Instance, Size = UDim2New(0, 2, 1, -20), Position = UDim2New(0, 10, 0, 10), BackgroundColor3 = FromRGB(224, 138, 43), BorderSizePixel = 0, ZIndex = 5002, BackgroundTransparency = 1 }) Items["Accent"]:AddToTheme({ BackgroundColor3 = "Accent" }) Instances:Create("UICorner", { Parent = Items["Accent"].Instance, CornerRadius = UDimNew(1, 0) }) Items["Title"] = Instances:Create("TextLabel", { Parent = Items["Notification"].Instance, FontFace = Library.BoldFont, Text = tostring(Text), Name = "\0", TextSize = 13, TextColor3 = FromRGB(255, 255, 255), TextTransparency = 1, BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 16, 0, 18), Size = UDim2New(1, -30, 0, 16), BorderSizePixel = 0, ZIndex = 5002, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Title"]:AddToTheme({ TextColor3 = "Text" }) Items["Description"] = Instances:Create("TextLabel", { Parent = Items["Notification"].Instance, FontFace = Library.Font, Text = tostring(Description or ""), Name = "\0", TextSize = 12, TextColor3 = FromRGB(122, 126, 134), TextTransparency = 1, BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 16, 0, 36), Size = UDim2New(1, -30, 0, 14), BorderSizePixel = 0, ZIndex = 5002, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Description"]:AddToTheme({ TextColor3 = "SubText" }) local FadeList = { { Item = Items["Notification"].Instance, Property = "BackgroundTransparency" }, { Item = Items["Accent"].Instance, Property = "BackgroundTransparency" }, { Item = Items["Title"].Instance, Property = "TextTransparency" }, { Item = Items["Description"].Instance, Property = "TextTransparency" }, { Item = Stroke.Instance, Property = "Transparency" }, } local function SetTransparency(Value, Speed) for _, Entry in FadeList do Tween:Create(Entry.Item, TweenInfoNew(Speed or 0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { [Entry.Property] = Value }, true) end end SetTransparency(0, 0.2) task.delay(Duration, function() SetTransparency(1, 0.25) task.wait(0.3) pcall(function() Items["Notification"]:Clean() end) end) return Items["Notification"] end -- Watermark Library.WatermarkSettings = { Enabled = false, Name = "UI Market", ShowFps = true, ShowPing = true, ShowTime = true, } local function FormatKeyName(Key) if not Key or Key == "" then return "None" end local Name = StringGSub(StringGSub(tostring(Key), "Enum.KeyCode%.", ""), "Enum.UserInputType%.", "") local Mouse = { MouseButton1 = "MB1", MouseButton2 = "MB2", MouseButton3 = "MB3" } local Symbols = { BackSlash = "\\", Slash = "/", Backquote = "`", LeftBracket = "[", RightBracket = "]", Semicolon = ";", Quote = "'", Comma = ",", Period = ".", Minus = "-", Equals = "=", Plus = "+", LeftCurly = "{", RightCurly = "}", Pipe = "|", Tilde = "~", Underscore = "_", Colon = ":", Hash = "#", Dollar = "$", Percent = "%", Ampersand = "&", Asterisk = "*", Caret = "^", At = "@", Question = "?", Exclamation = "!", LeftParenthesis = "(", RightParenthesis = ")", LessThan = "<", GreaterThan = ">", Zero = "0", One = "1", Two = "2", Three = "3", Four = "4", Five = "5", Six = "6", Seven = "7", Eight = "8", Nine = "9", } local Short = { LeftAlt = "LAlt", RightAlt = "RAlt", LeftControl = "LCtrl", RightControl = "RCtrl", LeftShift = "LShift", RightShift = "RShift", KeypadZero = "Num0", KeypadOne = "Num1", KeypadTwo = "Num2", KeypadThree = "Num3", KeypadFour = "Num4", KeypadFive = "Num5", KeypadSix = "Num6", KeypadSeven = "Num7", KeypadEight = "Num8", KeypadNine = "Num9", KeypadPeriod = "Num.", KeypadDivide = "Num/", KeypadMultiply = "Num*", KeypadMinus = "Num-", KeypadPlus = "Num+", KeypadEnter = "NumEnter", Return = "Enter", Escape = "Esc", Insert = "Ins", Delete = "Del", PageUp = "PgUp", PageDown = "PgDn", CapsLock = "Caps", } return Symbols[Name] or Mouse[Name] or Short[Name] or Name end Library.FormatKeyName = FormatKeyName local function CreateSegment(Parent, Text, Color, Order) if Order > 1 then Instances:Create("Frame", { Parent = Parent, Name = "\0", Size = UDim2New(0, 1, 0, 12), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, LayoutOrder = Order * 2 - 1, ZIndex = 5003 }):AddToTheme({ BackgroundColor3 = "Border" }) end local Label = Instances:Create("TextLabel", { Parent = Parent, FontFace = Library.Font, Text = Text, Name = "\0", TextSize = 13, TextColor3 = Color, BackgroundTransparency = 1, Size = UDim2New(0, 0, 0, 16), AutomaticSize = Enum.AutomaticSize.X, BorderSizePixel = 0, LayoutOrder = Order * 2, ZIndex = 5003, BackgroundColor3 = FromRGB(255, 255, 255) }) return Label end Library.SetWatermark = function(self, Bool, Data) Data = Data or { } self.WatermarkSettings.Enabled = Bool and true or false self.WatermarkSettings.Name = Data.Name or self.WatermarkSettings.Name local Existing = self.WatermarkHolder if Existing and Existing.Instance then Existing.Instance:Destroy() self.WatermarkHolder = nil end if not Bool then return end local Holder = Instances:Create("Frame", { Parent = Library.OverlayHolder.Instance, Name = "\0", AnchorPoint = Vector2New(0.5, 0), Position = UDim2New(0.5, 0, 0, 12), Size = UDim2New(0, 0, 0, 28), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, ZIndex = 5002, BackgroundTransparency = 0.08 }) Holder:AddToTheme({ BackgroundColor3 = "Inline" }) Instances:Create("UICorner", { Parent = Holder.Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Holder, { Spread = 26, Transparency = 0.65, ZIndex = Holder.Instance.ZIndex - 1 }) Instances:Create("UIStroke", { Parent = Holder.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.25 }):AddToTheme({ Color = "Border" }) Instances:Create("UIPadding", { Parent = Holder.Instance, PaddingLeft = UDimNew(0, 12), PaddingRight = UDimNew(0, 12), PaddingTop = UDimNew(0, 5), PaddingBottom = UDimNew(0, 5) }) Instances:Create("UIListLayout", { Parent = Holder.Instance, Padding = UDimNew(0, 8), FillDirection = Enum.FillDirection.Horizontal, VerticalAlignment = Enum.VerticalAlignment.Center, SortOrder = Enum.SortOrder.LayoutOrder }) local Segments = { Name = CreateSegment(Holder.Instance, self.WatermarkSettings.Name, Library.Theme.Accent, 1), User = CreateSegment(Holder.Instance, LocalPlayer and LocalPlayer.Name or "Player", Library.Theme.Text, 2), Fps = CreateSegment(Holder.Instance, "0 fps", Library.Theme.SubText, 3), Ping = CreateSegment(Holder.Instance, "0 ms", Library.Theme.SubText, 4), Time = CreateSegment(Holder.Instance, "00:00", Library.Theme.SubText, 5), } Segments.Name.Instance.FontFace = Library.BoldFont Segments.Name:AddToTheme({ TextColor3 = "Accent" }) Segments.User:AddToTheme({ TextColor3 = "Text" }) Segments.Fps:AddToTheme({ TextColor3 = "SubText" }) Segments.Ping:AddToTheme({ TextColor3 = "SubText" }) Segments.Time:AddToTheme({ TextColor3 = "SubText" }) self.WatermarkHolder = Holder Holder:MakeDraggable() Library:Thread(function() local Frames = 0 local Clock = 0 local RenderConnection = RunService.RenderStepped:Connect(function() Frames += 1 end) while Holder.Instance and Holder.Instance.Parent do task.wait(1) local Fps = Frames Frames = 0 Clock += 1 Segments.Fps.Instance.Text = StringFormat("%d fps", Fps) Segments.User.Instance.Text = LocalPlayer and LocalPlayer.Name or "Player" local Ping = 0 pcall(function() local Stats = game:GetService("Stats") Ping = math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue()) end) if Ping <= 0 then pcall(function() Ping = math.floor(LocalPlayer:GetNetworkPing() * 1000) end) end Segments.Ping.Instance.Text = StringFormat("%d ms", Ping) Segments.Time.Instance.Text = os.date("%H:%M") end pcall(function() RenderConnection:Disconnect() end) end) end -- UI scale Library.UIScale = 1 -- keeps a gui inside its parent after the scale changed Library.KeepOnScreen = function(self, Gui, Parent) Gui = Raw(Gui) if not Gui then return end local ParentSize = Parent.AbsoluteSize local Size = Gui.AbsoluteSize if Size.X <= 0 or Size.Y <= 0 then return end local ParentScale = 1 local ScaleObject = Parent:FindFirstChildOfClass("UIScale") if ScaleObject and ScaleObject.Scale > 0 then ParentScale = ScaleObject.Scale end local Position = Gui.AbsolutePosition local CenterX = Position.X + Size.X / 2 local CenterY = Position.Y + Size.Y / 2 local HalfX, HalfY = Size.X / 2, Size.Y / 2 local TargetX = MathClamp(CenterX, Parent.AbsolutePosition.X + HalfX, Parent.AbsolutePosition.X + ParentSize.X - HalfX) local TargetY = MathClamp(CenterY, Parent.AbsolutePosition.Y + HalfY, Parent.AbsolutePosition.Y + ParentSize.Y - HalfY) -- when the gui is bigger than the parent the clamp range inverts, keep the centre instead if Size.X > ParentSize.X then TargetX = CenterX end if Size.Y > ParentSize.Y then TargetY = CenterY end local DeltaX = (TargetX - CenterX) / ParentScale local DeltaY = (TargetY - CenterY) / ParentScale if DeltaX == 0 and DeltaY == 0 then return end Gui.Position = UDim2New(Gui.Position.X.Scale, Gui.Position.X.Offset + DeltaX, Gui.Position.Y.Scale, Gui.Position.Y.Offset + DeltaY) end Library.SetUIScale = function(self, Value) local Scale = MathClamp(tonumber(Value) or 1, 0.4, 2) self.UIScale = Scale local Window = self.CurrentWindow if Window and Window.Items and Window.Items["Scale"] then Window.Items["Scale"].Instance.Scale = Scale end if self.OverlayScale then self.OverlayScale.Instance.Scale = Scale end task.defer(function() if Window and Window.Items and Window.Items["Scale"] then Library:KeepOnScreen(Window.Items["MainFrame"], Window.Items["MainFrame"].Instance.Parent) end if Library.WatermarkHolder then Library:KeepOnScreen(Library.WatermarkHolder, Library.OverlayHolder.Instance) end if Library.KeybindHolder then Library:KeepOnScreen(Library.KeybindHolder, Library.OverlayHolder.Instance) end if Library.MobileButton then Library:KeepOnScreen(Library.MobileButton, Library.OverlayHolder.Instance) end end) return Scale end Library.FitToViewport = function(self) local Viewport = Camera.ViewportSize local Inset = 0 pcall(function() Inset = game:GetService("GuiService"):GetGuiInset().Y end) local Margin = UserInputService.TouchEnabled and 20 or 40 local Fit = math.min(1, (Viewport.X - Margin) / 800, (Viewport.Y - Inset - Margin - 40) / 520) return self:SetUIScale(Fit) end -- Floating button that opens/closes the menu (touch friendly) Library.SetMobileButton = function(self, Bool) local Existing = self.MobileButton if Existing and Existing.Instance then Existing.Instance:Destroy() self.MobileButton = nil end if not Bool then return end local Button = Instances:Create("TextButton", { Parent = Library.OverlayHolder.Instance, Name = "\0", Text = "", AutoButtonColor = false, AnchorPoint = Vector2New(1, 0), Position = UDim2New(1, -14, 0, 14), Size = UDim2New(0, 44, 0, 44), BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, ZIndex = 5000 }) Button:AddToTheme({ BackgroundColor3 = "Card" }) Instances:Create("UICorner", { Parent = Button.Instance, CornerRadius = UDimNew(0, 10) }) Library:AddShadow(Button, { Spread = 26, Transparency = 0.55, ZIndex = Button.Instance.ZIndex - 1 }) Library:AddGlow(Button, { Spread = 18, Transparency = 0.72, ZIndex = Button.Instance.ZIndex - 2 }) Instances:Create("UIStroke", { Parent = Button.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.25 }):AddToTheme({ Color = "Border" }) local IconHolder = Instances:Create("Frame", { Parent = Button.Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0.5, 0, 0.5, 0), Size = UDim2New(0, 18, 0, 18), BorderSizePixel = 0, ZIndex = 5001, BackgroundColor3 = FromRGB(255, 255, 255) }) local Icon = Icons.Draw("Cart", IconHolder.Instance, 18, Library.Theme.Accent) local PressPosition = nil Button:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then PressPosition = Input.Position end end) Button:Connect("InputEnded", function(Input) if not PressPosition then return end if Input.UserInputType ~= Enum.UserInputType.MouseButton1 and Input.UserInputType ~= Enum.UserInputType.Touch then return end local Delta = Input.Position - PressPosition PressPosition = nil if MathAbs(Delta.X) + MathAbs(Delta.Y) < 8 then local Window = Library.CurrentWindow if Window then Window:SetOpen(not Window.IsOpen) end end end) Button:Connect("MouseEnter", function() local Window = Library.CurrentWindow Button:ChangeItemTheme({ BackgroundColor3 = "Element" }) end) Button:Connect("MouseLeave", function() Button:ChangeItemTheme({ BackgroundColor3 = "Card" }) end) Button:MakeDraggable() self.MobileButton = Button self.MobileIcon = Icon return Button end -- Persistent keybind list Library.SetKeybindList = function(self, Bool, Data) Data = Data or { } local Existing = self.KeybindHolder if Existing and Existing.Instance then Existing.Instance:Destroy() self.KeybindHolder = nil end if not Bool then return end local Width = Data.Width or 224 local Holder = Instances:Create("Frame", { Parent = Library.OverlayHolder.Instance, Name = "\0", Position = UDim2New(0, 14, 0, 54), Size = UDim2New(0, Width, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, ZIndex = 5002, BackgroundTransparency = 0 }) Holder:AddToTheme({ BackgroundColor3 = "Card" }) Instances:Create("UICorner", { Parent = Holder.Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Holder, { Spread = 30, Transparency = 0.62, ZIndex = Holder.Instance.ZIndex - 1 }) Instances:Create("UIStroke", { Parent = Holder.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.45 }):AddToTheme({ Color = "Border" }) local Band = Instances:Create("Frame", { Parent = Holder.Instance, Name = "\0", Size = UDim2New(1, 0, 0, 30), Position = UDim2New(0, 0, 0, 0), BackgroundColor3 = FromRGB(28, 29, 33), BorderSizePixel = 0, ZIndex = 5003 }) Band:AddToTheme({ BackgroundColor3 = "Card Header" }) Instances:Create("UICorner", { Parent = Band.Instance, CornerRadius = UDimNew(0, 8) }) for Index = 1, 2 do local Patch = Instances:Create("Frame", { Parent = Band.Instance, Name = "\0", Size = UDim2New(0, 10, 0, 10), Position = UDim2New(Index == 1 and 0 or 1, Index == 1 and 0 or -10, 1, -10), BackgroundColor3 = FromRGB(28, 29, 33), BorderSizePixel = 0, ZIndex = 5003 }) Patch:AddToTheme({ BackgroundColor3 = "Card Header" }) end local Title = Instances:Create("TextLabel", { Parent = Holder.Instance, FontFace = Library.Font, Text = Data.Name or "Keybind List", Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 14, 0, 15), Size = UDim2New(1, -28, 0, 15), BorderSizePixel = 0, ZIndex = 5004, BackgroundColor3 = FromRGB(255, 255, 255) }) Title:AddToTheme({ TextColor3 = "SubText" }) Instances:Create("Frame", { Parent = Holder.Instance, Name = "\0", Size = UDim2New(1, 0, 0, 1), Position = UDim2New(0, 0, 0, 30), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 5004 }):AddToTheme({ BackgroundColor3 = "Border" }) local List = Instances:Create("Frame", { Parent = Holder.Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 14, 0, 44), Size = UDim2New(1, -28, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BorderSizePixel = 0, ZIndex = 5003, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIListLayout", { Parent = List.Instance, Padding = UDimNew(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }) Instances:Create("UIPadding", { Parent = Holder.Instance, PaddingBottom = UDimNew(0, 14) }) self.KeybindHolder = Holder Holder:MakeDraggable() local LastSignature = nil local function Signature() local Parts = { } for _, Data2 in Library.Keybinds do TableInsert(Parts, tostring(Data2.Name) .. ":" .. tostring(Data2.Keybind.Key) .. ":" .. tostring(Data2.Keybind.Mode)) end return TableConcat(Parts, "|") end local function Rebuild(Force) local Current = Signature() if not Force and Current == LastSignature then return end LastSignature = Current if not List.Instance or not List.Instance.Parent then return end for _, Row in ipairs(List.Instance:GetChildren()) do if Row:IsA("Frame") then Row:Destroy() end end if #Library.Keybinds == 0 then local Empty = Instances:Create("TextLabel", { Parent = List.Instance, FontFace = Library.Font, Text = "no keybinds", Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, Size = UDim2New(1, 0, 0, 16), BorderSizePixel = 0, ZIndex = 5004, BackgroundColor3 = FromRGB(255, 255, 255) }) Empty:AddToTheme({ TextColor3 = "SubText" }) return end for Index, Data2 in Library.Keybinds do local Row = Instances:Create("Frame", { Parent = List.Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 22), BorderSizePixel = 0, LayoutOrder = Index, ZIndex = 5004, BackgroundColor3 = FromRGB(255, 255, 255) }) local Label = Instances:Create("TextLabel", { Parent = Row.Instance, FontFace = Library.Font, Text = Data2.Name, Name = "\0", TextSize = 14, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -64, 0, 16), BorderSizePixel = 0, ZIndex = 5005, BackgroundColor3 = FromRGB(255, 255, 255) }) Label:AddToTheme({ TextColor3 = "SubText" }) local Chip = Instances:Create("Frame", { Parent = Row.Instance, Name = "\0", AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, 0, 0, 20), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = FromRGB(31, 32, 37), BorderSizePixel = 0, ZIndex = 5005 }) Chip:AddToTheme({ BackgroundColor3 = "Element" }) Instances:Create("UICorner", { Parent = Chip.Instance, CornerRadius = UDimNew(0, 6) }) Instances:Create("UIPadding", { Parent = Chip.Instance, PaddingLeft = UDimNew(0, 7), PaddingRight = UDimNew(0, 7) }) Instances:Create("UIStroke", { Parent = Chip.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.35 }):AddToTheme({ Color = "Border" }) local KeyLabel = Instances:Create("TextLabel", { Parent = Chip.Instance, FontFace = Library.Font, Text = FormatKeyName(Data2.Keybind.Key), Name = "\0", TextSize = 12, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Center, Size = UDim2New(0, 0, 1, 0), AutomaticSize = Enum.AutomaticSize.X, BorderSizePixel = 0, ZIndex = 5006, BackgroundColor3 = FromRGB(255, 255, 255) }) KeyLabel:AddToTheme({ TextColor3 = "Text" }) Library:HookChipHover(Chip, 7, KeyLabel) end end Rebuild(true) Library:Thread(function() while Holder.Instance and Holder.Instance.Parent do task.wait(0.25) Rebuild() end end) end -- ESP preview panel Library.EspPreviewSettings = { Enabled = false, Title = "ESP Preview", Width = 236, Height = 262, } Library.EspPreview = function(self, Options) Options = type(Options) == "table" and Options or { } local Existing = self.EspPreviewState if Existing and Existing.Frame and Existing.Frame.Instance and Existing.Frame.Instance.Parent then Existing.Frame.Instance:Destroy() end self.EspPreviewState = nil local Width = tonumber(Options.Width) or self.EspPreviewSettings.Width local Height = tonumber(Options.Height) or self.EspPreviewSettings.Height local Position = Options.Position if not Position then local Main = self.CurrentWindow and self.CurrentWindow.Items and self.CurrentWindow.Items["MainFrame"] local Scale = 1 if self.OverlayScale and self.OverlayScale.Instance.Scale > 0 then Scale = self.OverlayScale.Instance.Scale end if Main and Main.Instance then local Root = Main.Instance local RightEdge = Root.AbsolutePosition.X + Root.AbsoluteSize.X + 12 if RightEdge + Width > Camera.ViewportSize.X - 8 then Position = UDim2New(0, Root.AbsolutePosition.X / Scale, 0, (Root.AbsolutePosition.Y + Root.AbsoluteSize.Y + 10) / Scale) else Position = UDim2New(0, RightEdge / Scale, 0, Root.AbsolutePosition.Y / Scale) end else Position = UDim2New(0, Camera.ViewportSize.X - Width - 24, 0, 90) end end local Items = { } Items["Root"] = Instances:Create("Frame", { Parent = Library.OverlayHolder.Instance, Name = "\0", Position = Position, Size = UDim2New(0, Width, 0, Height), BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, ClipsDescendants = true, ZIndex = 4800 }) Items["Root"]:AddToTheme({ BackgroundColor3 = "Card" }) Instances:Create("UICorner", { Parent = Items["Root"].Instance, CornerRadius = UDimNew(0, 10) }) Library:AddShadow(Items["Root"], { Spread = 32, Transparency = 0.55, ZIndex = Items["Root"].Instance.ZIndex - 1 }) Instances:Create("UIStroke", { Parent = Items["Root"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.25 }):AddToTheme({ Color = "Border" }) Items["Band"] = Instances:Create("Frame", { Parent = Items["Root"].Instance, Name = "\0", Size = UDim2New(1, 0, 0, 32), Position = UDim2New(0, 0, 0, 0), BackgroundColor3 = FromRGB(28, 29, 33), BorderSizePixel = 0, ZIndex = 4801 }) Items["Band"]:AddToTheme({ BackgroundColor3 = "Card Header" }) Instances:Create("UICorner", { Parent = Items["Band"].Instance, CornerRadius = UDimNew(0, 8) }) for Index = 1, 2 do local Patch = Instances:Create("Frame", { Parent = Items["Band"].Instance, Name = "\0", Size = UDim2New(0, 10, 0, 10), Position = UDim2New(Index == 1 and 0 or 1, Index == 1 and 0 or -10, 1, -10), BackgroundColor3 = FromRGB(28, 29, 33), BorderSizePixel = 0, ZIndex = 4801 }) Patch:AddToTheme({ BackgroundColor3 = "Card Header" }) end Items["Title"] = Instances:Create("TextLabel", { Parent = Items["Root"].Instance, FontFace = Library.Font, Text = tostring(Options.Title or self.EspPreviewSettings.Title), Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 14, 0, 16), Size = UDim2New(1, -28, 0, 15), BorderSizePixel = 0, ZIndex = 4802, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Title"]:AddToTheme({ TextColor3 = "SubText" }) Instances:Create("Frame", { Parent = Items["Root"].Instance, Name = "\0", Size = UDim2New(1, 0, 0, 1), Position = UDim2New(0, 0, 0, 32), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 4802 }):AddToTheme({ BackgroundColor3 = "Border" }) Items["Body"] = Instances:Create("Frame", { Parent = Items["Root"].Instance, Name = "\0", Position = UDim2New(0, 10, 0, 42), Size = UDim2New(1, -20, 1, -52), BackgroundColor3 = FromRGB(17, 18, 20), BorderSizePixel = 0, ZIndex = 4801 }) Items["Body"]:AddToTheme({ BackgroundColor3 = "Inline" }) Instances:Create("UICorner", { Parent = Items["Body"].Instance, CornerRadius = UDimNew(0, 6) }) Items["Viewport"] = Instances:Create("ViewportFrame", { Parent = Items["Body"].Instance, Name = "\0", Position = UDim2New(0, 6, 0, 6), Size = UDim2New(1, -12, 1, -12), BackgroundTransparency = 1, BorderSizePixel = 0, Ambient = FromRGB(140, 140, 150), LightColor = FromRGB(255, 255, 255), LightDirection = Vector3.new(-0.4, -1, -0.6), ZIndex = 4802 }) local Camera3D = InstanceNew("Camera") Camera3D.Parent = Items["Viewport"].Instance Items["Viewport"].Instance.CurrentCamera = Camera3D local DummyColor = typeof(Options.DummyColor) == "Color3" and Options.DummyColor or FromRGB(163, 162, 165) local function MakePart(Name, Size, Pos) local Part = InstanceNew("Part") Part.Name = Name Part.Size = Size Part.CFrame = CFrame.new(Pos) Part.Color = DummyColor Part.Material = Enum.Material.Plastic Part.Anchored = true Part.CanCollide = false Part.CanQuery = false Part.CanTouch = false Part.TopSurface = Enum.SurfaceType.Smooth Part.BottomSurface = Enum.SurfaceType.Smooth return Part end local Dummy = InstanceNew("Model") Dummy.Name = "PreviewDummy" local Root = MakePart("HumanoidRootPart", Vector3.new(2, 2, 1), Vector3.new(0, 0, 0)) Root.Transparency = 1 Root.Parent = Dummy MakePart("Torso", Vector3.new(2, 2, 1), Vector3.new(0, 0, 0)).Parent = Dummy local Head = MakePart("Head", Vector3.new(2, 1, 1), Vector3.new(0, 1.5, 0)) local HeadMesh = InstanceNew("SpecialMesh") HeadMesh.MeshType = Enum.MeshType.Head HeadMesh.Scale = Vector3.new(1.25, 1.25, 1.25) HeadMesh.Parent = Head Head.Parent = Dummy MakePart("Left Arm", Vector3.new(1, 2, 1), Vector3.new(-1.5, 0, 0)).Parent = Dummy MakePart("Right Arm", Vector3.new(1, 2, 1), Vector3.new(1.5, 0, 0)).Parent = Dummy MakePart("Left Leg", Vector3.new(1, 2, 1), Vector3.new(-0.5, -2, 0)).Parent = Dummy MakePart("Right Leg", Vector3.new(1, 2, 1), Vector3.new(0.5, -2, 0)).Parent = Dummy Dummy.PrimaryPart = Root Dummy.Parent = Items["Viewport"].Instance local Center, BoundSize = Dummy:GetBoundingBox() local Distance = math.max(BoundSize.X, BoundSize.Y, BoundSize.Z) * 1.55 local Yaw, Pitch = math.pi, 0 local Dragging, LastInput = false, nil local function ApplyPose() Dummy:PivotTo(CFrame.new(Center.Position) * CFrame.fromEulerAnglesYXZ(0, Yaw, 0) * CFrame.new(-Center.Position)) local Offset = CFrame.fromEulerAnglesYXZ(Pitch, 0, 0) * CFrame.new(0, BoundSize.Y * 0.1, Distance) Camera3D.CFrame = CFrame.new((Center * Offset).Position, Center.Position) end ApplyPose() Items["Overlay"] = Instances:Create("Frame", { Parent = Items["Body"].Instance, Name = "\0", Position = Items["Viewport"].Instance.Position, Size = Items["Viewport"].Instance.Size, BackgroundTransparency = 1, BorderSizePixel = 0, ClipsDescendants = true, ZIndex = 4803, Active = false }) local BoxParts, EdgeParts = { }, { } for Index, Name in { "LeftTop", "LeftSide", "RightSide", "BottomDown" } do local Holder = Instances:Create("Frame", { Parent = Items["Overlay"].Instance, Name = "\0", BackgroundColor3 = FromRGB(255, 255, 255), BorderSizePixel = 0, Position = UDim2New(0, 0, 0, 0), Visible = false, ZIndex = 4804 }) local Edge = Instances:Create("Frame", { Parent = Holder.Instance, Name = "\0", Size = UDim2New(1, 0, 1, 0), BackgroundColor3 = FromRGB(0, 0, 0), BorderSizePixel = 0, ZIndex = 4805 }) BoxParts[Index] = Holder EdgeParts[Index] = Edge end Items["Fill"] = Instances:Create("Frame", { Parent = Items["Overlay"].Instance, Name = "\0", BackgroundColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 0.75, BorderSizePixel = 0, Visible = false, ZIndex = 4803 }) Items["BehindBar"] = Instances:Create("Frame", { Parent = Items["Overlay"].Instance, Name = "\0", BackgroundColor3 = FromRGB(0, 0, 0), BorderSizePixel = 0, Visible = false, ZIndex = 4804 }) Items["Bar"] = Instances:Create("Frame", { Parent = Items["Overlay"].Instance, Name = "\0", BackgroundColor3 = FromRGB(255, 255, 255), BorderSizePixel = 0, Visible = false, ZIndex = 4805 }) Instances:Create("UIGradient", { Parent = Items["Bar"].Instance, Enabled = true, Rotation = -90, Color = RGBSequence { RGBSequenceKeypoint(0, FromRGB(255, 0, 0)), RGBSequenceKeypoint(0.5, FromRGB(255, 140, 0)), RGBSequenceKeypoint(1, FromRGB(0, 255, 0)) } }) local function OverlayText(Name, Align) local Label = Instances:Create("TextLabel", { Parent = Items["Overlay"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(0, 200, 0, 18), AnchorPoint = Vector2New(0.5, Align == "Bottom" and 1 or 0), TextYAlignment = Align == "Bottom" and Enum.TextYAlignment.Bottom or Enum.TextYAlignment.Top, TextXAlignment = Enum.TextXAlignment.Center, FontFace = Library.Font, TextSize = 11, TextColor3 = FromRGB(255, 255, 255), TextStrokeTransparency = 0, TextStrokeColor3 = Color3.new(0, 0, 0), Text = "", Visible = false, ZIndex = 4806, BackgroundColor3 = FromRGB(255, 255, 255) }) return Label end local NameLabel = OverlayText("Name", "Bottom") local DistLabel = OverlayText("Distance", "Top") local ToolLabel = OverlayText("Weapon", "Top") local function Project(Point) local Relative = Camera3D.CFrame:PointToObjectSpace(Point) if Relative.Z >= -0.05 then return nil end local OverlaySize = Items["Overlay"].Instance.AbsoluteSize local Focal = (OverlaySize.Y / 2) / math.tan(math.rad(Camera3D.FieldOfView * 0.5)) return Vector2New((OverlaySize.X / 2) + (Relative.X / -Relative.Z) * Focal, (OverlaySize.Y / 2) - (Relative.Y / -Relative.Z) * Focal) end local function ScreenScale() local Scale = 1 local Node = Items["Overlay"].Instance while Node do for _, Child in ipairs(Node:GetChildren()) do if Child:IsA("UIScale") then Scale = Scale * Child.Scale end end if Node:IsA("ScreenGui") then break end Node = Node.Parent end if Scale <= 0 then Scale = 1 end return Scale end local function DrawPreview() local Overlay = Items["Overlay"].Instance if not Overlay.Parent or Overlay.AbsoluteSize.Y <= 8 then return end local Frag = getgenv().fragESP local Config = (Frag and Frag.config) or { } local BoxOn = Config.box ~= false local TextColor = Config.textvisible or FromRGB(255, 255, 255) local TextSize = tonumber(Config.textsize) or 11 local BarWidth = tonumber(Config.barwidth) or 2 local Extents = Frag and Frag.BodyExtents and Frag.BodyExtents(Dummy) local Points = Extents and { Extents.top, Extents.bottom, Extents.left, Extents.right } or { Center.Position + Vector3.yAxis * (BoundSize.Y / 2), Center.Position - Vector3.yAxis * (BoundSize.Y / 2), Center.Position - Camera3D.CFrame.RightVector * (math.max(BoundSize.X, BoundSize.Z) / 2), Center.Position + Camera3D.CFrame.RightVector * (math.max(BoundSize.X, BoundSize.Z) / 2), } local Hidden = function() for _, Part in BoxParts do Part.Instance.Visible = false end Items["Fill"].Instance.Visible = false Items["Bar"].Instance.Visible = false Items["BehindBar"].Instance.Visible = false NameLabel.Instance.Visible = false DistLabel.Instance.Visible = false ToolLabel.Instance.Visible = false end local Projected = { } for Index = 1, 4 do local Point = Project(Points[Index]) if not Point then Hidden() return end Projected[Index] = Point end local Scale = ScreenScale() local MinX, MaxX, MinY, MaxY = math.huge, -math.huge, math.huge, -math.huge for _, Point in Projected do MinX = math.min(MinX, Point.X) MaxX = math.max(MaxX, Point.X) MinY = math.min(MinY, Point.Y) MaxY = math.max(MaxY, Point.Y) end local LeftEdge = MinX / Scale local RightEdge = MaxX / Scale local CenterX = (LeftEdge + RightEdge) / 2 local HalfWidth = math.max((RightEdge - LeftEdge) / 2, 1.5) local TopY = MinY / Scale local BottomY = MaxY / Scale local BoxHeight = math.max(BottomY - TopY, 2) LeftEdge = CenterX - HalfWidth RightEdge = CenterX + HalfWidth local BoxColor = Config.boxcolor or TextColor local NameColor = Config.namecolor or TextColor local DistColor = Config.distancecolor or TextColor local ToolColor = Config.weaponcolor or TextColor local FillColor = Config.fillcolor or TextColor for _, Part in BoxParts do Part.Instance.BackgroundColor3 = BoxColor end for _, Edge in EdgeParts do Edge.Instance.BackgroundColor3 = BoxColor end NameLabel.Instance.TextColor3 = NameColor DistLabel.Instance.TextColor3 = DistColor ToolLabel.Instance.TextColor3 = ToolColor Items["Fill"].Instance.BackgroundColor3 = FillColor if BoxOn then for _, Part in BoxParts do Part.Instance.Visible = true end BoxParts[1].Instance.Position = UDim2New(0, LeftEdge, 0, TopY) BoxParts[1].Instance.Size = UDim2New(0, HalfWidth * 2, 0, 1) BoxParts[1].Instance.AnchorPoint = Vector2New(0, 0) BoxParts[4].Instance.Position = UDim2New(0, LeftEdge, 0, BottomY) BoxParts[4].Instance.Size = UDim2New(0, HalfWidth * 2, 0, 1) BoxParts[4].Instance.AnchorPoint = Vector2New(0, 1) BoxParts[2].Instance.Position = UDim2New(0, LeftEdge, 0, TopY) BoxParts[2].Instance.Size = UDim2New(0, 1, 0, BoxHeight) BoxParts[2].Instance.AnchorPoint = Vector2New(0, 0) BoxParts[3].Instance.Position = UDim2New(0, RightEdge, 0, TopY) BoxParts[3].Instance.Size = UDim2New(0, 1, 0, BoxHeight) BoxParts[3].Instance.AnchorPoint = Vector2New(1, 0) else for _, Part in BoxParts do Part.Instance.Visible = false end end if Config.fillbox then local Fill = Items["Fill"].Instance Fill.Visible = true Fill.Position = UDim2New(0, LeftEdge, 0, TopY) Fill.Size = UDim2New(0, HalfWidth * 2, 0, BoxHeight) Fill.BackgroundTransparency = 1 - ((tonumber(Config.fillopacity) or 25) / 100) else Items["Fill"].Instance.Visible = false end if Config.healthbar then local Bar = Items["Bar"].Instance local Behind = Items["BehindBar"].Instance local Health = math.clamp(tonumber(Config.health) or 0.68, 0, 1) Bar.Visible = true Bar.Position = UDim2New(0, LeftEdge - 5 - BarWidth, 0, TopY + BoxHeight * (1 - Health)) Bar.Size = UDim2New(0, BarWidth, 0, BoxHeight * Health) Bar.BorderColor3 = FromRGB(0, 0, 0) Behind.Visible = true Behind.Position = UDim2New(0, LeftEdge - 5 - BarWidth, 0, TopY) Behind.Size = UDim2New(0, BarWidth, 0, BoxHeight) Behind.BorderColor3 = FromRGB(0, 0, 0) else Items["Bar"].Instance.Visible = false Items["BehindBar"].Instance.Visible = false end for _, Label in { NameLabel, DistLabel, ToolLabel } do Label.Instance.TextSize = TextSize Label.Instance.Size = UDim2New(0, 200, 0, TextSize + 6) end if Config.name ~= false then NameLabel.Instance.Text = tostring(Config.targetname or Options.TargetName or (LocalPlayer and LocalPlayer.Name) or "Target") NameLabel.Instance.Position = UDim2New(0, CenterX, 0, TopY - 4) NameLabel.Instance.Visible = true else NameLabel.Instance.Visible = false end local StackY = BottomY + (tonumber(Config.gap) or 5) local Step = tonumber(Config.linegap) or 10 if Config.distance == true then DistLabel.Instance.Text = tostring(math.floor(tonumber(Config.distancevalue) or 50)) .. " studs" DistLabel.Instance.Position = UDim2New(0, CenterX, 0, StackY) DistLabel.Instance.Visible = true StackY = StackY + Step else DistLabel.Instance.Visible = false end if Config.weapon == true then local Character = LocalPlayer and LocalPlayer.Character local Tool = Character and Character:FindFirstChildOfClass("Tool") ToolLabel.Instance.Text = Tool and Tool.Name or "None" ToolLabel.Instance.Position = UDim2New(0, CenterX, 0, StackY) ToolLabel.Instance.Visible = true else ToolLabel.Instance.Visible = false end end Library:Connect(Items["Viewport"].Instance.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = true LastInput = Input.Position end end) Library:Connect(Items["Viewport"].Instance.InputEnded, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = false LastInput = nil end end) Library:Connect(UserInputService.InputChanged, function(Input) if not Dragging or not LastInput then return end if Input.UserInputType ~= Enum.UserInputType.MouseMovement and Input.UserInputType ~= Enum.UserInputType.Touch then return end local DeltaX = Input.Position.X - LastInput.X local DeltaY = Input.Position.Y - LastInput.Y LastInput = Input.Position Yaw = Yaw - DeltaX * 0.012 Pitch = MathClamp(Pitch + DeltaY * 0.012, -math.rad(78), math.rad(78)) ApplyPose() end) local Accumulator = 0 Library:Connect(RunService.RenderStepped, function(Delta) if not Items["Root"].Instance.Parent or not Dummy.Parent then return end Accumulator = Accumulator + Delta if Accumulator < 1 / 30 then return end local Step = Accumulator Accumulator = 0 if not Dragging then Yaw = Yaw + Step * 0.6 end ApplyPose() DrawPreview() end) Items["Root"]:MakeDraggable(Items["Band"]) local Preview = { Gui = Items["Root"], Frame = Items["Root"], Viewport = Items["Viewport"], Overlay = Items["Overlay"], Dummy = Dummy, Camera3D = Camera3D, Draw = DrawPreview, Items = Items, } function Preview:SetVisible(Bool) Items["Root"].Instance.Visible = Bool == true end function Preview:Destroy() if Items["Root"].Instance then Items["Root"].Instance:Destroy() end end self.EspPreviewSettings.Enabled = true self.EspPreviewState = Preview task.defer(function() Library:KeepOnScreen(Items["Root"], Library.OverlayHolder.Instance) end) return Preview end Library.SetEspPreview = function(self, Bool, Options) self.EspPreviewSettings.Enabled = Bool and true or false if Bool then return self:EspPreview(Options) end local Existing = self.EspPreviewState if Existing and Existing.Frame and Existing.Frame.Instance then Existing.Frame.Instance:Destroy() end self.EspPreviewState = nil return nil end -- Colorpicker Library.CreateColorpicker = function(self, Data) Data = Data or { } local Colorpicker = { Window = Data.Window, Tab = Data.Tab, Section = Data.Section, Flag = Data.Flag, Hue = 0, Saturation = 0, Value = 0, Alpha = 0, Color = FromRGB(255, 255, 255), HexValue = "", IsOpen = false, } Library.Flags[Colorpicker.Flag] = { } local Items = { } Items["Button"] = Instances:Create("TextButton", { Parent = Data.Parent.Instance, Text = "", Name = "\0", AutoButtonColor = false, AnchorPoint = Data.IsList and Vector2New(0, 0) or Vector2New(1, 0.5), Position = Data.IsList and UDim2New(0, 0, 0, 0) or UDim2New(1, Data.Offset or 0, 0.5, 0), LayoutOrder = Data.LayoutOrder or 0, Size = UDim2New(0, 20, 0, 20), ZIndex = 6, BorderSizePixel = 0, BackgroundColor3 = Data.Default or FromRGB(255, 255, 255) }) Instances:Create("UICorner", { Parent = Items["Button"].Instance, CornerRadius = UDimNew(0, 4) }) Instances:Create("UIStroke", { Parent = Items["Button"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border }):AddToTheme({ Color = "Border" }) Library:AddShadow(Items["Button"], { Spread = 12, Transparency = 0.6, ZIndex = 5 }) Items["Window"] = Instances:Create("Frame", { Parent = Library:PopupParent(), Name = "\0", Position = UDim2New(0, 0, 0, 0), Size = UDim2New(0, 236, 0, 214), Visible = false, ZIndex = 3000, BorderSizePixel = 0, BackgroundColor3 = FromRGB(16, 16, 18) }) Items["Window"]:AddToTheme({ BackgroundColor3 = "Background" }) Instances:Create("UICorner", { Parent = Items["Window"].Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Items["Window"], { Spread = 30, Transparency = 0.5, ZIndex = Items["Window"].Instance.ZIndex - 1 }) Instances:Create("UIStroke", { Parent = Items["Window"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border }):AddToTheme({ Color = "Border" }) Items["Palette"] = Instances:Create("TextButton", { Parent = Items["Window"].Instance, Text = "", Name = "\0", AutoButtonColor = false, Position = UDim2New(0, 10, 0, 10), Size = UDim2New(1, -20, 0, 118), ZIndex = 3001, BorderSizePixel = 0, BackgroundColor3 = FromRGB(255, 0, 0) }) Instances:Create("UICorner", { Parent = Items["Palette"].Instance, CornerRadius = UDimNew(0, 5) }) Items["SaturationLayer"] = Instances:Create("Frame", { Parent = Items["Palette"].Instance, Size = UDim2New(1, 0, 1, 0), BackgroundColor3 = FromRGB(255, 255, 255), BorderSizePixel = 0, ZIndex = 3002 }) Instances:Create("UICorner", { Parent = Items["SaturationLayer"].Instance, CornerRadius = UDimNew(0, 5) }) Instances:Create("UIGradient", { Parent = Items["SaturationLayer"].Instance, Transparency = NumSequence { NumSequenceKeypoint(0, 0), NumSequenceKeypoint(1, 1) } }) Items["ValueLayer"] = Instances:Create("Frame", { Parent = Items["Palette"].Instance, Size = UDim2New(1, 0, 1, 0), BackgroundColor3 = FromRGB(0, 0, 0), BorderSizePixel = 0, ZIndex = 3003 }) Instances:Create("UICorner", { Parent = Items["ValueLayer"].Instance, CornerRadius = UDimNew(0, 5) }) Instances:Create("UIGradient", { Parent = Items["ValueLayer"].Instance, Transparency = NumSequence { NumSequenceKeypoint(0, 1), NumSequenceKeypoint(1, 0) } }) Items["PaletteDragger"] = Instances:Create("Frame", { Parent = Items["Palette"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 10, 0, 10), Size = UDim2New(0, 10, 0, 10), AnchorPoint = Vector2New(0.5, 0.5), ZIndex = 3005, BorderSizePixel = 0, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIStroke", { Parent = Items["PaletteDragger"].Instance, Color = FromRGB(255, 255, 255), Thickness = 2, ApplyStrokeMode = Enum.ApplyStrokeMode.Border }) Instances:Create("UICorner", { Parent = Items["PaletteDragger"].Instance, CornerRadius = UDimNew(1, 0) }) Items["Hue"] = Instances:Create("ImageButton", { Parent = Items["Window"].Instance, Name = "\0", AutoButtonColor = false, Position = UDim2New(0, 10, 0, 136), Size = UDim2New(1, -20, 0, 15), ZIndex = 3001, BorderSizePixel = 0, BackgroundColor3 = FromRGB(255, 255, 255), Image = self:GetImage("Hue") }) Instances:Create("UIGradient", { Parent = Items["Hue"].Instance, Color = RGBSequence { RGBSequenceKeypoint(0, FromRGB(255, 0, 0)), RGBSequenceKeypoint(0.17, FromRGB(255, 255, 0)), RGBSequenceKeypoint(0.33, FromRGB(0, 255, 0)), RGBSequenceKeypoint(0.5, FromRGB(0, 255, 255)), RGBSequenceKeypoint(0.67, FromRGB(0, 0, 255)), RGBSequenceKeypoint(0.83, FromRGB(255, 0, 255)), RGBSequenceKeypoint(1, FromRGB(255, 0, 0)) } }) Instances:Create("UICorner", { Parent = Items["Hue"].Instance, CornerRadius = UDimNew(1, 0) }) Items["HueDragger"] = Instances:Create("Frame", { Parent = Items["Hue"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 6, 0.5, 0), Size = UDim2New(0, 12, 0, 12), AnchorPoint = Vector2New(0.5, 0.5), ZIndex = 3005, BorderSizePixel = 0, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIStroke", { Parent = Items["HueDragger"].Instance, Color = FromRGB(255, 255, 255), Thickness = 2, ApplyStrokeMode = Enum.ApplyStrokeMode.Border }) Instances:Create("UICorner", { Parent = Items["HueDragger"].Instance, CornerRadius = UDimNew(1, 0) }) Items["Alpha"] = Instances:Create("ImageButton", { Parent = Items["Window"].Instance, Name = "\0", AutoButtonColor = false, Position = UDim2New(0, 10, 0, 159), Size = UDim2New(1, -20, 0, 15), ZIndex = 3001, BorderSizePixel = 0, BackgroundColor3 = FromRGB(70, 71, 78), Image = self:GetImage("Checkers") }) Instances:Create("UICorner", { Parent = Items["Alpha"].Instance, CornerRadius = UDimNew(1, 0) }) Items["AlphaLayer"] = Instances:Create("Frame", { Parent = Items["Alpha"].Instance, Size = UDim2New(1, 0, 1, 0), BackgroundColor3 = FromRGB(255, 255, 255), BorderSizePixel = 0, ZIndex = 3002 }) Instances:Create("UICorner", { Parent = Items["AlphaLayer"].Instance, CornerRadius = UDimNew(1, 0) }) Instances:Create("UIGradient", { Parent = Items["AlphaLayer"].Instance, Transparency = NumSequence { NumSequenceKeypoint(0, 1), NumSequenceKeypoint(1, 0) } }) Items["AlphaDragger"] = Instances:Create("Frame", { Parent = Items["Alpha"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 6, 0.5, 0), Size = UDim2New(0, 12, 0, 12), AnchorPoint = Vector2New(0.5, 0.5), ZIndex = 3005, BorderSizePixel = 0, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIStroke", { Parent = Items["AlphaDragger"].Instance, Color = FromRGB(255, 255, 255), Thickness = 2, ApplyStrokeMode = Enum.ApplyStrokeMode.Border }) Instances:Create("UICorner", { Parent = Items["AlphaDragger"].Instance, CornerRadius = UDimNew(1, 0) }) Items["Rainbow"] = Instances:Create("TextButton", { Parent = Items["Window"].Instance, Name = "\0", Text = "", AutoButtonColor = false, Position = UDim2New(0, 10, 0, 182), Size = UDim2New(1, -20, 0, 18), BackgroundTransparency = 1, ZIndex = 3001, BorderSizePixel = 0, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["RainbowText"] = Instances:Create("TextLabel", { Parent = Items["Rainbow"].Instance, FontFace = Library.Font, Text = "Rainbow", Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, Size = UDim2New(1, 0, 1, 0), BorderSizePixel = 0, ZIndex = 3002, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["RainbowText"]:AddToTheme({ TextColor3 = "SubText" }) Items["RainbowTrack"] = Instances:Create("Frame", { Parent = Items["Rainbow"].Instance, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, 32, 0, 16), BackgroundColor3 = FromRGB(58, 59, 65), BorderSizePixel = 0, ZIndex = 3002 }) Items["RainbowTrack"]:AddToTheme({ BackgroundColor3 = "Off" }) Instances:Create("UICorner", { Parent = Items["RainbowTrack"].Instance, CornerRadius = UDimNew(1, 0) }) Items["RainbowKnob"] = Instances:Create("Frame", { Parent = Items["RainbowTrack"].Instance, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 2, 0.5, 0), Size = UDim2New(0, 12, 0, 12), BackgroundColor3 = FromRGB(140, 143, 150), BorderSizePixel = 0, ZIndex = 3003 }) Instances:Create("UICorner", { Parent = Items["RainbowKnob"].Instance, CornerRadius = UDimNew(1, 0) }) local SlidingPalette = false local SlidingHue = false local SlidingAlpha = false local Debounce = false local IsRainbow = false local OnRainbowToggled local SetRainbow = function(Bool) IsRainbow = Bool Library.Flags[Data.Flag .. "RainbowToggle"] = IsRainbow Items["RainbowTrack"]:ChangeItemTheme({ BackgroundColor3 = Bool and "Accent" or "Off" }) Items["RainbowKnob"]:Tween(nil, { Position = Bool and UDim2New(0, 18, 0.5, 0) or UDim2New(0, 2, 0.5, 0), BackgroundColor3 = Bool and Library.Theme.Text or FromRGB(140, 143, 150) }) Items["RainbowText"]:ChangeItemTheme({ TextColor3 = Bool and "Text" or "SubText" }) if OnRainbowToggled then OnRainbowToggled(IsRainbow) end end Items["Rainbow"]:Connect("MouseButton1Down", function() SetRainbow(not IsRainbow) end) Library.SetFlags[Data.Flag .. "RainbowToggle"] = SetRainbow function Colorpicker:SlidePalette(Input) if not Input or not SlidingPalette then return end local Palette = Items["Palette"].Instance self.Saturation = MathClamp((Input.Position.X - Palette.AbsolutePosition.X) / Palette.AbsoluteSize.X, 0, 1) self.Value = MathClamp(1 - (Input.Position.Y - Palette.AbsolutePosition.Y) / Palette.AbsoluteSize.Y, 0, 1) Items["PaletteDragger"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(self.Saturation, 0, 1 - self.Value, 0) }) self:Update() end function Colorpicker:SlideHue(Input) if not Input or not SlidingHue then return end local Hue = Items["Hue"].Instance self.Hue = MathClamp((Input.Position.X - Hue.AbsolutePosition.X) / Hue.AbsoluteSize.X, 0, 1) Items["HueDragger"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(self.Hue, 0, 0.5, 0) }) self:Update() end function Colorpicker:SlideAlpha(Input) if not Input or not SlidingAlpha then return end local Alpha = Items["Alpha"].Instance self.Alpha = MathClamp((Input.Position.X - Alpha.AbsolutePosition.X) / Alpha.AbsoluteSize.X, 0, 1) Items["AlphaDragger"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(self.Alpha, 0, 0.5, 0) }) self:Update(true) end function Colorpicker:Update(IsFromAlpha) self.Color = FromHSV(self.Hue, self.Saturation, self.Value) self.HexValue = self.Color:ToHex() Library.Flags[Data.Flag] = { Color = self.Color, HexValue = self.HexValue, Alpha = self.Alpha } Items["Palette"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = FromHSV(self.Hue, 1, 1) }) if not IsFromAlpha then Items["AlphaLayer"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = self.Color }) end if Data.Callback then Library:SafeCall(Data.Callback, self.Color, self.Alpha) end end function Colorpicker:Set(Color, Alpha) if type(Color) == "table" then Alpha = Color[4] or Alpha Color = FromRGB(Color[1], Color[2], Color[3]) elseif type(Color) == "string" then Color = FromHex(Color) end if typeof(Color) ~= "Color3" then return end self.Hue, self.Saturation, self.Value = Color:ToHSV() self.Alpha = Alpha or 0 Items["PaletteDragger"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(self.Saturation, 0, 1 - self.Value, 0) }) Items["HueDragger"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(self.Hue, 0, 0.5, 0) }) Items["AlphaDragger"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(self.Alpha, 0, 0.5, 0) }) Items["Button"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Color }) self:Update() end function Colorpicker:Get() return self.Color, self.Alpha end function Colorpicker:SetVisibility(Bool) Items["Button"].Instance.Visible = Bool end function Colorpicker:SetOpen(Bool) if Debounce then return end Colorpicker.IsOpen = Bool Debounce = true if Bool then Items["Window"].Instance.Position = Place(Items["Button"].Instance, -30) end local NewTween = Library:Fade(Items["Window"].Instance, Bool, Colorpicker.Window and Colorpicker.Window.FadeSpeed or 0.15) if NewTween then Library:Connect(NewTween.Tween.Completed, function() Debounce = false Items["Window"].Instance.Visible = Bool end) else Debounce = false Items["Window"].Instance.Visible = Bool end end local OldColor = Colorpicker.Color OnRainbowToggled = function(Bool) if Bool then OldColor = Colorpicker.Color Library:Thread(function() while task.wait() do if not IsRainbow then Colorpicker:Set(OldColor, Colorpicker.Alpha) break end local RainbowHue = MathAbs(MathSin(tick() * 0.32)) Colorpicker:Set(FromHSV(RainbowHue, 1, 1), Colorpicker.Alpha) end end) end end Items["Palette"]:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then SlidingPalette = true Colorpicker:SlidePalette(Input) Input.Changed:Connect(function() if Input.UserInputState == Enum.UserInputState.End then SlidingPalette = false end end) end end) Items["Hue"]:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then SlidingHue = true Colorpicker:SlideHue(Input) Input.Changed:Connect(function() if Input.UserInputState == Enum.UserInputState.End then SlidingHue = false end end) end end) Items["Alpha"]:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then SlidingAlpha = true Colorpicker:SlideAlpha(Input) Input.Changed:Connect(function() if Input.UserInputState == Enum.UserInputState.End then SlidingAlpha = false end end) end end) Items["Button"]:Connect("MouseButton1Down", function() Colorpicker:SetOpen(not Colorpicker.IsOpen) end) Library:Connect(UserInputService.InputChanged, function(Input) if Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch then if SlidingPalette then Colorpicker:SlidePalette(Input) elseif SlidingHue then Colorpicker:SlideHue(Input) elseif SlidingAlpha then Colorpicker:SlideAlpha(Input) end end end) Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 and Colorpicker.IsOpen and not Library:IsMouseOverFrame(Items["Window"].Instance) and not Library:IsMouseOverFrame(Items["Button"].Instance) then Colorpicker:SetOpen(false) end end) if Data.Default then Colorpicker:Set(Data.Default, Data.Alpha) else Colorpicker:Update() end Library.SetFlags[Data.Flag] = function(Color, Alpha) Colorpicker:Set(Color, Alpha) end return Colorpicker end -- Icon painting helper local function PaintIcon(Icon, Color) if not Icon then return end if Icon.Instance and Icon.Instance:IsA("ImageLabel") then Icon:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageColor3 = Color }) elseif Icon.Instance then for _, Part in Icon.Instance:GetDescendants() do if Part:IsA("Frame") then Part.BackgroundColor3 = Color elseif Part:IsA("UIStroke") then Part.Color = Color end end end end -- Window Library.Window = function(self, Data) Data = Data or { } local Window = { Logo = Data.Logo or Data.logo or "Cart", Title = Data.Title or Data.title or "UI Market", Size = Data.Size or Data.size or UDim2New(0, 800, 0, 520), FadeSpeed = Data.FadeSpeed or Data.fadespeed or 0.16, SidebarWidth = Data.SidebarWidth or Data.sidebarwidth or 182, User = Data.User or Data.user or (LocalPlayer and LocalPlayer.Name or "Player"), Pages = { }, SubPages = { }, Items = { }, ActivePage = nil, IsOpen = false } local Items = { } do Items["MainFrame"] = Instances:Create("Frame", { Parent = Library.Holder.Instance, Name = "\0", AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0.5, 0, 0.5, 0), Size = Window.Size, Visible = false, ZIndex = 2, BorderSizePixel = 0, BackgroundColor3 = FromRGB(16, 16, 18) }) Items["MainFrame"]:AddToTheme({ BackgroundColor3 = "Background" }) Instances:Create("UICorner", { Parent = Items["MainFrame"].Instance, CornerRadius = UDimNew(0, 8) }) Items["Scale"] = Instances:Create("UIScale", { Parent = Items["MainFrame"].Instance, Scale = Library.UIScale or 1 }) Instances:Create("UIStroke", { Parent = Items["MainFrame"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.25 }):AddToTheme({ Color = "Border" }) Items["Shadow"] = Instances:Create("ImageLabel", { Parent = Items["MainFrame"].Instance, ImageColor3 = FromRGB(0, 0, 0), ImageTransparency = 0.45, AnchorPoint = Vector2New(0.5, 0.5), Image = "rbxassetid://112971167999062", ZIndex = 1, BorderSizePixel = 0, SliceCenter = RectNew(Vector2New(112, 112), Vector2New(147, 147)), ScaleType = Enum.ScaleType.Slice, BackgroundTransparency = 1, Position = UDim2New(0.5, 0, 0.5, 0), SliceScale = 0.6, Name = "\0", Size = UDim2New(1, 60, 1, 60), BackgroundColor3 = FromRGB(255, 255, 255) }) -- Sidebar Items["Sidebar"] = Instances:Create("Frame", { Parent = Items["MainFrame"].Instance, Name = "\0", Size = UDim2New(0, Window.SidebarWidth, 1, 0), BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = 3, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["SidebarLine"] = Instances:Create("Frame", { Parent = Items["Sidebar"].Instance, Name = "\0", Size = UDim2New(0, 1, 1, 0), Position = UDim2New(1, -1, 0, 0), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 3 }) Items["SidebarLine"]:AddToTheme({ BackgroundColor3 = "Border" }) Items["Logo"] = Instances:Create("Frame", { Parent = Items["Sidebar"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 62), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["LogoIcon"] = Instances:Create("Frame", { Parent = Items["Logo"].Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 18, 0.5, 0), Size = UDim2New(0, 16, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["LogoText"] = Instances:Create("TextLabel", { Parent = Items["Logo"].Instance, FontFace = Library.BoldFont, Text = Window.Title, Name = "\0", TextSize = 16, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 42, 0.5, 1), Size = UDim2New(1, -50, 0, 20), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["LogoText"]:AddToTheme({ TextColor3 = "Text" }) Items["LogoLine"] = Instances:Create("Frame", { Parent = Items["Logo"].Instance, Name = "\0", Size = UDim2New(1, 0, 0, 1), Position = UDim2New(0, 0, 1, 0), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 3 }) Items["LogoLine"]:AddToTheme({ BackgroundColor3 = "Border" }) Icons.Draw(Window.Logo, Items["LogoIcon"].Instance, 16, Library.Theme.Text) Items["Pages"] = Instances:Create("ScrollingFrame", { Parent = Items["Sidebar"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 0, 0, 62), Size = UDim2New(1, 0, 1, -128), CanvasSize = UDim2New(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, ScrollBarThickness = 0, BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIPadding", { Parent = Items["Pages"].Instance, PaddingTop = UDimNew(0, 10), PaddingBottom = UDimNew(0, 10), PaddingRight = UDimNew(0, 10), PaddingLeft = UDimNew(0, 10) }) Instances:Create("UIListLayout", { Parent = Items["Pages"].Instance, Padding = UDimNew(0, 4), SortOrder = Enum.SortOrder.LayoutOrder }) Items["Footer"] = Instances:Create("Frame", { Parent = Items["Sidebar"].Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(0, 1), Position = UDim2New(0, 0, 1, 0), Size = UDim2New(1, 0, 0, 66), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("Frame", { Parent = Items["Footer"].Instance, Name = "\0", Size = UDim2New(1, 0, 0, 1), Position = UDim2New(0, 0, 0, 0), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 3 }):AddToTheme({ BackgroundColor3 = "Border" }) Items["Avatar"] = Instances:Create("ImageLabel", { Parent = Items["Footer"].Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 16, 0.5, 1), Size = UDim2New(0, 28, 0, 28), Image = "", ScaleType = Enum.ScaleType.Fit, BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UICorner", { Parent = Items["Avatar"].Instance, CornerRadius = UDimNew(1, 0) }) pcall(function() Items["Avatar"].Instance.Image = Players:GetUserThumbnailAsync(LocalPlayer.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size100x100) end) Items["UserName"] = Instances:Create("TextLabel", { Parent = Items["Footer"].Instance, FontFace = Library.BoldFont, Text = Window.User, Name = "\0", TextSize = 13, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 54, 0.5, -8), Size = UDim2New(1, -62, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["UserName"]:AddToTheme({ TextColor3 = "Text" }) Items["UserDate"] = Instances:Create("TextLabel", { Parent = Items["Footer"].Instance, FontFace = Library.Font, Text = "Since " .. os.date("%d.%m.%Y"), Name = "\0", TextSize = 11, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 54, 0.5, 9), Size = UDim2New(1, -62, 0, 14), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["UserDate"]:AddToTheme({ TextColor3 = "SubText" }) -- Content Items["Content"] = Instances:Create("Frame", { Parent = Items["MainFrame"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, Window.SidebarWidth, 0, 0), Size = UDim2New(1, -Window.SidebarWidth, 1, 0), ClipsDescendants = true, BorderSizePixel = 0, ZIndex = 3, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Header"] = Instances:Create("Frame", { Parent = Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 62), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Tabs"] = Instances:Create("Frame", { Parent = Items["Header"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 18, 0, 0), Size = UDim2New(1, -252, 1, 0), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIListLayout", { Parent = Items["Tabs"].Instance, Padding = UDimNew(0, 6), FillDirection = Enum.FillDirection.Horizontal, VerticalAlignment = Enum.VerticalAlignment.Center, SortOrder = Enum.SortOrder.LayoutOrder }) Items["HeaderLine"] = Instances:Create("Frame", { Parent = Items["Content"].Instance, Name = "\0", Size = UDim2New(1, 0, 0, 1), Position = UDim2New(0, 0, 0, 62), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 5 }) Items["HeaderLine"]:AddToTheme({ BackgroundColor3 = "Border" }) Items["Body"] = Instances:Create("ScrollingFrame", { Parent = Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 0, 0, 63), Size = UDim2New(1, 0, 1, -63), CanvasSize = UDim2New(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, ScrollingDirection = Enum.ScrollingDirection.Y, ScrollBarThickness = 4, ScrollBarImageColor3 = FromRGB(224, 138, 43), ScrollBarImageTransparency = 0.1, MidImage = Library:GetImage("Scrollbar"), TopImage = Library:GetImage("Scrollbar"), BottomImage = Library:GetImage("Scrollbar"), BorderSizePixel = 0, ClipsDescendants = true, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Body"]:AddToTheme({ ScrollBarImageColor3 = "Accent" }) end local SearchBox = Instances:Create("TextBox", { Parent = Items["Header"].Instance, Name = "\0", Text = "", PlaceholderText = "Search", PlaceholderColor3 = FromRGB(122, 126, 134), FontFace = Library.Font, TextSize = 12, TextColor3 = FromRGB(255, 255, 255), ClearTextOnFocus = false, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, -16, 0.5, 0), Size = UDim2New(0, 212, 0, 32), BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, Visible = true, ZIndex = 6 }) SearchBox:AddToTheme({ BackgroundColor3 = "Inline", TextColor3 = "Text" }) Instances:Create("UICorner", { Parent = SearchBox.Instance, CornerRadius = UDimNew(0, 8) }) Instances:Create("UIStroke", { Parent = SearchBox.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.35 }):AddToTheme({ Color = "Border" }) Instances:Create("UIPadding", { Parent = SearchBox.Instance, PaddingLeft = UDimNew(0, 12), PaddingRight = UDimNew(0, 12) }) local ActiveSearch = nil local function RunSearch(Query) Query = StringLower(Query or "") if not ActiveSearch or not ActiveSearch.SearchItems then return end for _, Value in ActiveSearch.SearchItems do local Element = Value.Element local Row = Value.Row or (Element.Instance and Element.Instance.Parent) or nil if Query == "" then if Row then Row.Visible = true end Element:ChangeItemTheme({ TextColor3 = "Text" }) else local IsMatch = StringFind(StringLower(Value.Name or ""), Query, 1, true) ~= nil if Row then Row.Visible = IsMatch end Element:ChangeItemTheme({ TextColor3 = IsMatch and "Accent" or "SubText" }) end end for _, Section in ActiveSearch.Sections do local Content = Section.Items and Section.Items["Content"] if not Content then continue end local VisibleRows = 0 for _, Row in Content.Instance:GetChildren() do if Row:IsA("GuiObject") and Row.Visible then VisibleRows += 1 end end Section:SetVisibility(Query == "" or VisibleRows > 0) end end SearchBox.Instance:GetPropertyChangedSignal("Text"):Connect(function() RunSearch(SearchBox.Instance.Text) end) Window.Items = Items Window.SearchBox = SearchBox Window.RunSearch = function(Self, Query) RunSearch(Query) end Window.SetActiveSearch = function(Self, SubPage) ActiveSearch = SubPage RunSearch(SearchBox.Instance.Text) end Items["MainFrame"]:MakeDraggable({ Items["Sidebar"], Items["Content"] }) Items["MainFrame"]:MakeResizeable(Vector2New(Window.Size.X.Offset, Window.Size.Y.Offset), Vector2New(3000, 3000)) local Debounce = false function Window:SetOpen(Bool) if Debounce then return end Window.IsOpen = Bool Debounce = true if Bool then Items["MainFrame"].Instance.Visible = true end local Descendants = Items["MainFrame"].Instance:GetDescendants() TableInsert(Descendants, Items["MainFrame"].Instance) local NewTween for _, Value in Descendants do local ValueIndex = Library:GetTransparencyPropertyFromItem(Value) if not ValueIndex then continue end if type(ValueIndex) == "table" then for _, Property in ValueIndex do NewTween = Library:FadeItem(Value, Property, Bool, Window.FadeSpeed) end else NewTween = Library:FadeItem(Value, ValueIndex, Bool, Window.FadeSpeed) end end if NewTween then Library:Connect(NewTween.Tween.Completed, function() Debounce = false Items["MainFrame"].Instance.Visible = Bool end) else Debounce = false Items["MainFrame"].Instance.Visible = Bool end end Window.RefreshTabs = function(Self) for _, SubPage in Window.SubPages do if SubPage.Items and SubPage.Items["Tab"] then SubPage.Items["Tab"].Instance.Visible = (SubPage.Page == Window.ActivePage) end if SubPage.Page ~= Window.ActivePage and SubPage.Active then SubPage:Turn(false) end end end Library:Connect(UserInputService.InputBegan, function(Input, Gpe) if Gpe then return end if Library:IsMenuKey(Input) then if Library.MenuKeybindMode == "Hold" then Window:SetOpen(true) else Window:SetOpen(not Window.IsOpen) end end end) Library:Connect(UserInputService.InputEnded, function(Input) if Library.MenuKeybindMode == "Hold" and Library:IsMenuKey(Input) then Window:SetOpen(false) end end) Window:SetOpen(true) Window.Items = Items Library.CurrentWindow = Window if not Library.OverlayScale then Library.OverlayScale = Instances:Create("UIScale", { Parent = Library.OverlayHolder.Instance, Scale = Library.UIScale or 1 }) end if not Library.Scaled then Library.Scaled = true Library:FitToViewport() if UserInputService.TouchEnabled then Library:SetMobileButton(true) end Library:Connect(UserInputService:GetPropertyChangedSignal("TouchEnabled"), function() if UserInputService.TouchEnabled and not Library.MobileButton then Library:SetMobileButton(true) end end) end return setmetatable(Window, Library) end -- Sidebar group label Library.Seperator = function(self, Text) local Holder = Instances:Create("Frame", { Parent = self.Items["Pages"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) local Label = Instances:Create("TextLabel", { Parent = Holder.Instance, FontFace = Library.Font, Text = StringUpper(tostring(Text or "")), Name = "\0", TextSize = 11, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, Size = UDim2New(1, 0, 0, 12), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Label:AddToTheme({ TextColor3 = "SubText" }) Instances:Create("UIPadding", { Parent = Holder.Instance, PaddingTop = UDimNew(0, 10), PaddingBottom = UDimNew(0, 6), PaddingLeft = UDimNew(0, 10) }) return Holder end -- Sidebar page Library.Page = function(self, Data) Data = Data or { } local Page = { Window = self, Name = Data.Name or Data.name or nil, Icon = Data.Icon or Data.icon or "Settings", Search = Data.Search or Data.search or false, SubPages = { }, Items = { }, Active = false, ActiveSub = nil, } local Items = { } do Items["Button"] = Instances:Create("TextButton", { Parent = Page.Window.Items["Pages"].Instance, Name = "\0", Text = "", AutoButtonColor = false, Size = UDim2New(1, 0, 0, 36), BackgroundColor3 = FromRGB(31, 32, 37), BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = 5, }) Instances:Create("UICorner", { Parent = Items["Button"].Instance, CornerRadius = UDimNew(0, 8) }) Items["NavShadow"] = Library:AddShadow(Items["Button"], { Spread = 20, Transparency = 1, ZIndex = 4 }) Items["NavGlow"] = Library:AddGlow(Items["Button"], { Spread = 14, Transparency = 1, ZIndex = 3 }) Items["Icon"] = Instances:Create("Frame", { Parent = Items["Button"].Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 12, 0.5, 0), Size = UDim2New(0, 16, 0, 16), BorderSizePixel = 0, ZIndex = 6, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Button"].Instance, FontFace = Library.Font, Text = Page.Name or "", Name = "\0", TextSize = 14, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 40, 0.5, 0), Size = UDim2New(1, -48, 0, 16), BorderSizePixel = 0, ZIndex = 6, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["IconRef"] = Icons.Draw(Page.Icon, Items["Icon"].Instance, 16, Library.Theme.SubText) end local function SetIconColor(Color) PaintIcon(Items["IconRef"], Color) end function Page:Turn(Bool) if Bool then Page.Window.ActivePage = Page for _, Other in Page.Window.Pages do if Other ~= Page then Other:Turn(false) end end end Page.Active = Bool if Bool then Items["Button"]:ChangeItemTheme({ BackgroundColor3 = "Element" }) Items["Button"]:Tween(nil, { BackgroundTransparency = 0, BackgroundColor3 = Library.Theme.Element }) Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.Text }) SetIconColor(Library.Theme.Accent) Items["NavShadow"]:Tween(TweenInfoNew(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 0.55 }) Items["NavGlow"]:Tween(TweenInfoNew(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 0.78 }) else Items["Button"]:Tween(nil, { BackgroundTransparency = 1 }) Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.SubText }) SetIconColor(Library.Theme.SubText) Items["NavShadow"]:Tween(TweenInfoNew(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 1 }) Items["NavGlow"]:Tween(TweenInfoNew(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 1 }) end Page.Window.RefreshTabs(Page.Window) if Bool then local Target = Page.ActiveSub if not Target or Target.Page ~= Page then Target = Page.SubPages[1] end if Target then Target:Turn(true) end end end Items["Button"]:Connect("MouseEnter", function() if not Page.Active then Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.Text }) SetIconColor(Library.Theme.Image) end end) Items["Button"]:Connect("MouseLeave", function() if not Page.Active then Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.SubText }) SetIconColor(Library.Theme.SubText) end end) Items["Button"]:Connect("MouseButton1Down", function() Page:Turn(true) end) Page.Items = Items if #Page.Window.Pages == 0 then Page:Turn(true) end TableInsert(Page.Window.Pages, Page) return setmetatable(Page, Library.Pages) end -- Top tab Library.Pages.SubPage = function(self, Data) Data = Data or { } local SubPage = { Window = self.Window, Page = self, Name = Data.Name or Data.name or "SubPage", Icon = Data.Icon or Data.icon or nil, Items = { }, SearchItems = { }, Sections = { }, Active = false, } local Items = { } do Items["Tab"] = Instances:Create("TextButton", { Parent = SubPage.Window.Items["Tabs"].Instance, Name = "\0", Text = "", AutoButtonColor = false, Size = UDim2New(0, 0, 0, 34), AutomaticSize = Enum.AutomaticSize.X, BackgroundColor3 = FromRGB(31, 32, 37), BackgroundTransparency = 1, Visible = false, BorderSizePixel = 0, ZIndex = 6, }) Instances:Create("UICorner", { Parent = Items["Tab"].Instance, CornerRadius = UDimNew(0, 8) }) Items["TabShadow"] = Library:AddShadow(Items["Tab"], { Spread = 18, Transparency = 1, ZIndex = 5 }) Instances:Create("UIPadding", { Parent = Items["Tab"].Instance, PaddingLeft = UDimNew(0, 14), PaddingRight = UDimNew(0, 15) }) Instances:Create("UIListLayout", { Parent = Items["Tab"].Instance, Padding = UDimNew(0, 7), FillDirection = Enum.FillDirection.Horizontal, VerticalAlignment = Enum.VerticalAlignment.Center, SortOrder = Enum.SortOrder.LayoutOrder }) Items["Icon"] = Instances:Create("Frame", { Parent = Items["Tab"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(0, 15, 0, 15), BorderSizePixel = 0, LayoutOrder = 1, ZIndex = 7, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Tab"].Instance, FontFace = Library.Font, Text = SubPage.Name, Name = "\0", TextSize = 14, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, Size = UDim2New(0, 0, 0, 16), AutomaticSize = Enum.AutomaticSize.X, BorderSizePixel = 0, LayoutOrder = 2, ZIndex = 7, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["IconRef"] = Icons.Draw(SubPage.Icon or "Dots", Items["Icon"].Instance, 15, Library.Theme.SubText) Items["PageContent"] = Instances:Create("Frame", { Parent = SubPage.Window.Items["Body"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 0, 0, 0), Size = UDim2New(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Visible = false, BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Left"] = Instances:Create("Frame", { Parent = Items["PageContent"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 20, 0, 16), Size = UDim2New(0.5, -36, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIListLayout", { Parent = Items["Left"].Instance, Padding = UDimNew(0, 22), SortOrder = Enum.SortOrder.LayoutOrder }) Items["Right"] = Instances:Create("Frame", { Parent = Items["PageContent"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0.5, 14, 0, 16), Size = UDim2New(0.5, -36, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIListLayout", { Parent = Items["Right"].Instance, Padding = UDimNew(0, 22), SortOrder = Enum.SortOrder.LayoutOrder }) Items["Bottom"] = Instances:Create("Frame", { Parent = Items["PageContent"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 0, 0, 0), Size = UDim2New(1, 0, 0, 26), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) end local function SetIconColor(Color) PaintIcon(Items["IconRef"], Color) end function SubPage:Turn(Bool) SubPage.Active = Bool if Bool then SubPage.Page.ActiveSub = SubPage for _, Other in SubPage.Page.SubPages do if Other ~= SubPage then Other:Turn(false) end end end local NewTween = Library:Fade(Items["PageContent"].Instance, Bool, SubPage.Window.FadeSpeed) Items["PageContent"].Instance.Visible = Bool if Bool then SubPage.Window.SetActiveSearch(SubPage.Window, SubPage) Items["Tab"]:ChangeItemTheme({ BackgroundColor3 = "Element" }) Items["Tab"]:Tween(nil, { BackgroundTransparency = 0, BackgroundColor3 = Library.Theme.Element }) Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.Text }) SetIconColor(Library.Theme.Accent) Items["TabShadow"]:Tween(TweenInfoNew(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 0.6 }) else Items["Tab"]:Tween(nil, { BackgroundTransparency = 1 }) Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.SubText }) SetIconColor(Library.Theme.SubText) Items["TabShadow"]:Tween(TweenInfoNew(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 1 }) end end Items["Tab"]:Connect("MouseEnter", function() if not SubPage.Active then Items["Tab"]:Tween(nil, { BackgroundTransparency = 0.55, BackgroundColor3 = Library.Theme.Element }) Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.Text }) SetIconColor(Library.Theme.Image) end end) Items["Tab"]:Connect("MouseLeave", function() if not SubPage.Active then Items["Tab"]:Tween(nil, { BackgroundTransparency = 1 }) Items["Text"]:Tween(nil, { TextColor3 = Library.Theme.SubText }) SetIconColor(Library.Theme.SubText) end end) Items["Tab"]:Connect("MouseButton1Down", function() if not SubPage.Active then SubPage:Turn(true) end end) SubPage.Items = Items TableInsert(SubPage.Page.SubPages, SubPage) TableInsert(SubPage.Window.SubPages, SubPage) if SubPage.Page.Active then SubPage.Window.RefreshTabs(SubPage.Window) if #SubPage.Page.SubPages == 1 then SubPage:Turn(true) end end return setmetatable(SubPage, Library.Pages) end -- Re-applies state dependent colours after a theme change Library.RefreshTheme = function(self) local Window = self.CurrentWindow if not Window or not Window.Items then return end for _, Page in Window.Pages do local Items = Page.Items if Items then PaintIcon(Items["IconRef"], Page.Active and self.Theme.Accent or self.Theme.SubText) if Items["Text"] then Items["Text"].Instance.TextColor3 = Page.Active and self.Theme.Text or self.Theme.SubText end if Items["Button"] then Items["Button"].Instance.BackgroundColor3 = self.Theme.Element end end end for _, SubPage in Window.SubPages do local Items = SubPage.Items if Items then PaintIcon(Items["IconRef"], SubPage.Active and self.Theme.Accent or self.Theme.SubText) if Items["Text"] then Items["Text"].Instance.TextColor3 = SubPage.Active and self.Theme.Text or self.Theme.SubText end if Items["Tab"] then Items["Tab"].Instance.BackgroundColor3 = self.Theme.Element end end end end -- Column section Library.Pages.Section = function(self, Data) Data = Data or { } local Section = { Window = self.Window, Page = self, Name = Data.Name or Data.name or "Section", Side = Data.Side or Data.side or "Left", Items = { }, } local Side = StringLower(tostring(Section.Side)) local Parent = (Side == "left") and Section.Page.Items["Left"].Instance or Section.Page.Items["Right"].Instance local Items = { } do Items["Section"] = Instances:Create("Frame", { Parent = Parent, Name = "\0", BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, Size = UDim2New(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, ZIndex = 4 }) Items["Section"]:AddToTheme({ BackgroundColor3 = "Card" }) Instances:Create("UICorner", { Parent = Items["Section"].Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Items["Section"], { Spread = 24, Transparency = 0.72, ZIndex = 3 }) Instances:Create("UIStroke", { Parent = Items["Section"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.45 }):AddToTheme({ Color = "Border" }) Items["Band"] = Instances:Create("Frame", { Parent = Items["Section"].Instance, Name = "\0", BackgroundColor3 = FromRGB(28, 29, 33), BorderSizePixel = 0, Size = UDim2New(1, 0, 0, 32), Position = UDim2New(0, 0, 0, 0), ZIndex = 4 }) Items["Band"]:AddToTheme({ BackgroundColor3 = "Card Header" }) Instances:Create("UICorner", { Parent = Items["Band"].Instance, CornerRadius = UDimNew(0, 6) }) for Index = 1, 2 do local Patch = Instances:Create("Frame", { Parent = Items["Band"].Instance, Name = "\0", Size = UDim2New(0, 10, 0, 10), Position = UDim2New(Index == 1 and 0 or 1, Index == 1 and 0 or -10, 1, -10), BackgroundColor3 = FromRGB(28, 29, 33), BorderSizePixel = 0, ZIndex = 4 }) Patch:AddToTheme({ BackgroundColor3 = "Card Header" }) end Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Section"].Instance, FontFace = Library.Font, Text = Section.Name, Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 14, 0, 16), Size = UDim2New(1, -28, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"]:AddToTheme({ TextColor3 = "SubText" }) Items["Divider"] = Instances:Create("Frame", { Parent = Items["Section"].Instance, Name = "\0", Size = UDim2New(1, 0, 0, 1), Position = UDim2New(0, 0, 0, 32), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 5 }) Items["Divider"]:AddToTheme({ BackgroundColor3 = "Border" }) Items["Content"] = Instances:Create("Frame", { Parent = Items["Section"].Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 0, 0, 33), Size = UDim2New(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIListLayout", { Parent = Items["Content"].Instance, Padding = UDimNew(0, 10), SortOrder = Enum.SortOrder.LayoutOrder }) Instances:Create("UIPadding", { Parent = Items["Content"].Instance, PaddingTop = UDimNew(0, 12), PaddingBottom = UDimNew(0, 16), PaddingLeft = UDimNew(0, 14), PaddingRight = UDimNew(0, 14) }) end function Section:SetVisibility(Bool) Items["Section"].Instance.Visible = Bool end Section.Items = Items TableInsert(self.Sections, Section) return setmetatable(Section, Library.Sections) end -- Small rounded chip used for keybind keys and modes local function CreateChip(Parent, Width, Height, Text, ZIndex, IsButton, Auto) local Chip = Instances:Create(IsButton and "TextButton" or "Frame", { Parent = Parent, Name = "\0", Text = IsButton and "" or nil, AutoButtonColor = IsButton and false or nil, AnchorPoint = Vector2New(1, 0.5), Size = Auto and UDim2New(0, Width, 0, Height) or UDim2New(0, Width, 0, Height), AutomaticSize = Auto and Enum.AutomaticSize.X or nil, BackgroundColor3 = FromRGB(31, 32, 37), BorderSizePixel = 0, ZIndex = ZIndex }) Chip:AddToTheme({ BackgroundColor3 = "Element" }) if Auto then Instances:Create("UIPadding", { Parent = Chip.Instance, PaddingLeft = UDimNew(0, 7), PaddingRight = UDimNew(0, 7) }) end Instances:Create("UICorner", { Parent = Chip.Instance, CornerRadius = UDimNew(0, 5) }) Instances:Create("UIStroke", { Parent = Chip.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.35 }):AddToTheme({ Color = "Border" }) Library:AddShadow(Chip, { Spread = 12, Transparency = 0.7, ZIndex = ZIndex - 1 }) local Label = Instances:Create("TextLabel", { Parent = Chip.Instance, FontFace = Library.Font, Text = Text, Name = "\0", TextSize = 12, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Center, Size = Auto and UDim2New(0, 0, 1, 0) or UDim2New(1, 0, 1, 0), AutomaticSize = Auto and Enum.AutomaticSize.X or nil, BorderSizePixel = 0, ZIndex = ZIndex + 1, BackgroundColor3 = FromRGB(255, 255, 255) }) Label:AddToTheme({ TextColor3 = "Text" }) return Chip, Label end local function TuneChip(Chip, Label, Padding, TextSize) local Pad = Chip and Chip.Instance and Chip.Instance:FindFirstChildOfClass("UIPadding") if Pad then Pad.PaddingLeft = UDimNew(0, Padding) Pad.PaddingRight = UDimNew(0, Padding) end if Label then Label.Instance.TextSize = TextSize end end local KeybindModes = { "Toggle", "Hold", "Always" } local ModePopup = nil local ModePopupConnection = nil local function CloseModePopup() if ModePopupConnection then pcall(function() ModePopupConnection.Connection:Disconnect() end) ModePopupConnection = nil end if ModePopup and ModePopup.Instance then ModePopup.Instance:Destroy() end ModePopup = nil end local function ShowModePopup(Anchor, CurrentMode, OnPick) CloseModePopup() local Host = Library:PopupParent() if not Host then return end local X, Y = Library:LocalPosition(Host, Anchor.AbsolutePosition.X, Anchor.AbsolutePosition.Y + Anchor.AbsoluteSize.Y + 4) local Holder = Instances:Create("Frame", { Parent = Host, Name = "\0", Position = UDim2New(0, X, 0, Y), Size = UDim2New(0, 104, 0, 3 * 27 + 10), BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, ZIndex = 6000 }) Holder:AddToTheme({ BackgroundColor3 = "Inline" }) Instances:Create("UICorner", { Parent = Holder.Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Holder, { Spread = 26, Transparency = 0.5, ZIndex = 5999 }) Instances:Create("UIStroke", { Parent = Holder.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border }):AddToTheme({ Color = "Border" }) Instances:Create("UIPadding", { Parent = Holder.Instance, PaddingTop = UDimNew(0, 5), PaddingBottom = UDimNew(0, 5), PaddingLeft = UDimNew(0, 5), PaddingRight = UDimNew(0, 5) }) Instances:Create("UIListLayout", { Parent = Holder.Instance, Padding = UDimNew(0, 3), SortOrder = Enum.SortOrder.LayoutOrder }) for Index, Mode in KeybindModes do local Row = Instances:Create("TextButton", { Parent = Holder.Instance, FontFace = Library.Font, Text = Mode, Name = "\0", TextSize = 13, TextColor3 = Mode == CurrentMode and Library.Theme.Accent or Library.Theme.SubText, AutoButtonColor = false, Size = UDim2New(1, 0, 0, 24), BackgroundTransparency = Mode == CurrentMode and 0 or 1, BackgroundColor3 = Mode == CurrentMode and Library.Theme.Element:Lerp(Color3.new(1, 1, 1), 0.08) or FromRGB(31, 32, 37), BorderSizePixel = 0, TextXAlignment = Enum.TextXAlignment.Left, LayoutOrder = Index, ZIndex = 6001 }) Row:AddToTheme({ TextColor3 = Mode == CurrentMode and "Accent" or "SubText" }) if Mode ~= CurrentMode then Row:AddToTheme({ BackgroundColor3 = "Element" }) end Instances:Create("UICorner", { Parent = Row.Instance, CornerRadius = UDimNew(0, 5) }) local Padding = Instances:Create("UIPadding", { Parent = Row.Instance, PaddingLeft = UDimNew(0, 8) }) local BaseColor = Mode == CurrentMode and "Accent" or "SubText" local Info = TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) Row:Connect("MouseEnter", function() Padding.Instance.PaddingLeft = UDimNew(0, 12) Row:ChangeItemTheme({ TextColor3 = "Text" }) Row:Tween(Info, { TextColor3 = Library.Theme.Text }) end) Row:Connect("MouseLeave", function() Padding.Instance.PaddingLeft = UDimNew(0, 8) Row:ChangeItemTheme({ TextColor3 = BaseColor }) Row:Tween(Info, { TextColor3 = Library.Theme[BaseColor] }) end) Row:Connect("MouseButton1Down", function() local Picker = OnPick CloseModePopup() if Picker then Picker(Mode) end end) end ModePopup = Holder ModePopupConnection = Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType ~= Enum.UserInputType.MouseButton1 and Input.UserInputType ~= Enum.UserInputType.MouseButton2 then return end local Target = Input.Target if Target and (Target:IsDescendantOf(Holder.Instance) or Target == Anchor) then return end CloseModePopup() end) end Library.ShowModePopup = function(Self, Anchor, Mode, OnPick) ShowModePopup(Anchor, Mode, OnPick) end Library.IsMenuKey = function(Self, Input) return tostring(Input.KeyCode) == Self.MenuKeybind or tostring(Input.UserInputType) == Self.MenuKeybind end local function HookKeybindChip(Chip, OpenMenu, Pick) local LongPressed = false local PressStart = nil Chip:Connect("MouseButton2Down", function() OpenMenu() end) Chip:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.Touch then PressStart = tick() LongPressed = false task.delay(0.55, function() if PressStart and not LongPressed and (tick() - PressStart) >= 0.5 then LongPressed = true OpenMenu() end end) end end) Chip:Connect("InputEnded", function(Input) if Input.UserInputType == Enum.UserInputType.Touch then PressStart = nil end end) Chip:Connect("MouseButton1Click", function() if LongPressed then LongPressed = false return end Pick() end) end -- Toggle Library.Sections.Toggle = function(self, Data) Data = Data or { } local Toggle = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Toggle", Flag = Data.Flag or Data.flag or Library:NextFlag(), Default = Data.Default or Data.default or false, Callback = Data.Callback or Data.callback or function() end, Value = false, Count = 0, Used = 0, ExtraCount = 0, TextLimit = 70 } local Items = { } do Items["Toggle"] = Instances:Create("TextButton", { Parent = Toggle.Section.Items["Content"].Instance, Name = "\0", Text = "", AutoButtonColor = false, Size = UDim2New(1, 0, 0, 26), BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Toggle"].Instance, FontFace = Library.Font, Text = Toggle.Name, Name = "\0", TextSize = 14, TextYAlignment = Enum.TextYAlignment.Center, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -70, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"]:AddToTheme({ TextColor3 = "SubText" }) Items["Extras"] = Instances:Create("Frame", { Parent = Items["Toggle"].Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, -42, 0.5, 0), Size = UDim2New(0, 0, 0, 22), AutomaticSize = Enum.AutomaticSize.X, BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Instances:Create("UIListLayout", { Parent = Items["Extras"].Instance, Padding = UDimNew(0, 8), FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, VerticalAlignment = Enum.VerticalAlignment.Center, SortOrder = Enum.SortOrder.LayoutOrder }) Items["Track"] = Instances:Create("Frame", { Parent = Items["Toggle"].Instance, Name = "\0", AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, 32, 0, 16), BackgroundColor3 = FromRGB(58, 59, 65), BorderSizePixel = 0, ZIndex = 6 }) Items["Track"]:AddToTheme({ BackgroundColor3 = "Off" }) Instances:Create("UICorner", { Parent = Items["Track"].Instance, CornerRadius = UDimNew(1, 0) }) Items["Glow"] = Instances:Create("ImageLabel", { Parent = Items["Track"].Instance, Name = "\0", AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0.5, 0, 0.5, 0), Size = UDim2New(1, 16, 1, 16), ImageColor3 = FromRGB(224, 138, 43), ImageTransparency = 1, Image = "rbxassetid://112971167999062", BackgroundTransparency = 1, SliceCenter = RectNew(Vector2New(112, 112), Vector2New(147, 147)), ScaleType = Enum.ScaleType.Slice, SliceScale = 0.6, BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Glow"]:AddToTheme({ ImageColor3 = "Accent" }) Items["TrackStroke"] = Instances:Create("UIStroke", { Parent = Items["Track"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.5, Thickness = 1 }) Items["TrackStroke"]:AddToTheme({ Color = "Border" }) Items["Knob"] = Instances:Create("Frame", { Parent = Items["Track"].Instance, Name = "\0", AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 2, 0.5, 0), Size = UDim2New(0, 12, 0, 12), BackgroundColor3 = FromRGB(140, 143, 150), BorderSizePixel = 0, ZIndex = 7 }) Instances:Create("UICorner", { Parent = Items["Knob"].Instance, CornerRadius = UDimNew(1, 0) }) Items["KnobGlow"] = Library:AddGlow(Items["Knob"], { Spread = 16, Transparency = 0.35, ZIndex = 6, SliceScale = 0.9 }) Items["FillGlow"] = Library:AddGlow(Items["Accent"], { Spread = 12, Transparency = 0.72, ZIndex = 5, SliceScale = 0.9 }) end function Toggle:Get() return Toggle.Value end function Toggle:Set(Value, IsKeybind) if IsKeybind then Value = IsKeybind.Toggled end Toggle.Value = Value and true or false Library.Flags[Toggle.Flag] = Toggle.Value if Toggle.Value then Items["Track"]:ChangeItemTheme({ BackgroundColor3 = "Accent" }) Items["Track"]:Tween(TweenInfoNew(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Library.Theme.Accent }) Items["Knob"]:Tween(TweenInfoNew(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(0, 18, 0.5, 0), BackgroundColor3 = Color3.new(1, 1, 1) }) Items["Glow"]:Tween(TweenInfoNew(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 0.45 }) Items["Glow"]:ChangeItemTheme({ ImageColor3 = "Accent" }) Items["TrackStroke"]:ChangeItemTheme({ Color = "Light Accent" }) Items["TrackStroke"]:Tween(TweenInfoNew(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Transparency = 0.3 }) Items["Text"]:ChangeItemTheme({ TextColor3 = "Text" }) else Items["Track"]:ChangeItemTheme({ BackgroundColor3 = "Off" }) Items["Track"]:Tween(TweenInfoNew(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Library.Theme.Off }) Items["Knob"]:Tween(TweenInfoNew(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(0, 2, 0.5, 0), BackgroundColor3 = FromRGB(140, 143, 150) }) Items["Glow"]:Tween(TweenInfoNew(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { ImageTransparency = 1 }) Items["TrackStroke"]:ChangeItemTheme({ Color = "Border" }) Items["TrackStroke"]:Tween(TweenInfoNew(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Transparency = 0.5 }) Items["Text"]:ChangeItemTheme({ TextColor3 = "SubText" }) end if Toggle.Callback then Library:SafeCall(Toggle.Callback, Toggle.Value) end end function Toggle:SetVisibility(Bool) Items["Toggle"].Instance.Visible = Bool end function Toggle:AddExtra(Item, Order) Toggle.ExtraCount += 1 Item.Instance.Parent = Items["Extras"].Instance Item.Instance.AnchorPoint = Vector2New(0, 0) Item.Instance.Position = UDim2New(0, 0, 0, 0) Item.Instance.LayoutOrder = Order or Toggle.ExtraCount task.defer(function() if not Items["Extras"].Instance or not Items["Text"].Instance then return end local Width = Items["Extras"].Instance.AbsoluteSize.X Items["Text"].Instance.Size = UDim2New(1, -(Width + 54), 0, 16) end) return Item end function Toggle:NextOffset(Width) Width = Width or 20 local Offset = 44 + Toggle.Used Toggle.Used = Toggle.Used + Width + 6 Toggle.TextLimit = math.max(Toggle.TextLimit, Offset + Width + 6) Items["Text"].Instance.Size = UDim2New(1, -Toggle.TextLimit, 0, 16) return -Offset end function Toggle:Colorpicker(Data) Data = Data or { } local Colorpicker = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Colorpicker", Flag = Data.Flag or Data.flag or Library:NextFlag(), Default = Data.Default or Data.default or Color3.new(1, 1, 1), Callback = Data.Callback or Data.callback or function() end, Alpha = Data.Alpha or Data.alpha or 0, Parent = Items["Extras"], IsList = true, LayoutOrder = 1, IsToggle = true, } local SearchData = { Name = Toggle.Name, Element = Items["Text"], Section = Colorpicker.Section } TableInsert(Colorpicker.Page.SearchItems, SearchData) return Library:CreateColorpicker(Colorpicker) end function Toggle:Keybind(Data) Data = Data or { } local Keybind = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Keybind", Flag = Data.Flag or Data.flag or Library:NextFlag(), Default = Data.Default or Data.default or Enum.KeyCode.RightShift, Mode = Data.Mode or Data.mode or "Toggle", Callback = Data.Callback or Data.callback or function() end, Key = nil, Picking = false, Value = "", Toggled = false, } local SubItems = { } do SubItems["KeyButton"], SubItems["KeyText"] = CreateChip(Items["Toggle"].Instance, 0, 17, "None", 6, true, true) TuneChip(SubItems["KeyButton"], SubItems["KeyText"], 6, 11) Toggle:AddExtra(SubItems["KeyButton"], 2) Library:HookChipHover(SubItems["KeyButton"], 6, SubItems["KeyText"], function() return Keybind.Picking and Library.Theme.Accent or Library.Theme.Text end) end function Keybind:Get() return Keybind.Toggled, Keybind.Key end function Keybind:SetVisibility(Bool) SubItems["KeyButton"].Instance.Visible = Bool end function Keybind:Set(Key) if StringFind(tostring(Key), "Enum") then Keybind.Key = tostring(Key) local TextToDisplay = Key.Name == "Backspace" and "None" or FormatKeyName(Keybind.Key) Keybind.Value = TextToDisplay SubItems["KeyText"].Instance.Text = TextToDisplay Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end elseif TableFind({"Hold", "Toggle", "Always"}, Key) then Keybind.Mode = Key Keybind:SetMode(Keybind.Mode) elseif type(Key) == "table" then local RealKey = tostring(Key.Key) local ShortKey = RealKey if StringFind(RealKey, "Enum") then ShortKey = StringGSub(StringGSub(RealKey, "Enum.KeyCode.", ""), "Enum.UserInputType.", "") end Keybind.Key = RealKey Keybind.Mode = Key.Mode or "Toggle" if Key.Mode then Keybind:SetMode(Key.Mode) else Keybind.Toggled = Key.Toggled or false end local TextToDisplay = FormatKeyName(ShortKey) Keybind.Value = TextToDisplay SubItems["KeyText"].Instance.Text = TextToDisplay Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end end Keybind.Picking = false SubItems["KeyText"]:ChangeItemTheme({ TextColor3 = "Text" }) SubItems["KeyText"]:Tween(nil, { TextColor3 = Library.Theme.Text }) end function Keybind:SetMode(Mode) Keybind.Mode = Mode Keybind.Toggled = Mode == "Always" Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end end function Keybind:Press(Bool) if Keybind.Mode == "Toggle" then Keybind.Toggled = not Keybind.Toggled elseif Keybind.Mode == "Hold" then Keybind.Toggled = Bool elseif Keybind.Mode == "Always" then Keybind.Toggled = true end Toggle:Set(nil, Keybind) Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end end local function OpenModeMenu() ShowModePopup(SubItems["KeyButton"].Instance, Keybind.Mode, function(Mode) Keybind:SetMode(Mode) end) end local function PickKey() if Keybind.Picking then return end Keybind.Picking = true SubItems["KeyText"]:ChangeItemTheme({ TextColor3 = "Accent" }) SubItems["KeyText"]:Tween(nil, { TextColor3 = Library.Theme.Accent }) local KeyConnection, ClickConnection local function EndPick() Keybind.Picking = false SubItems["KeyText"]:ChangeItemTheme({ TextColor3 = "Text" }) SubItems["KeyText"]:Tween(nil, { TextColor3 = Library.Theme.Text }) for _, Connection in { KeyConnection, ClickConnection } do if Connection then pcall(function() Connection.Connection:Disconnect() end) end end KeyConnection, ClickConnection = nil, nil end KeyConnection = Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.Keyboard or Input.UserInputType == Enum.UserInputType.MouseButton2 then EndPick() if Input.UserInputType == Enum.UserInputType.Keyboard then Keybind:Set(Input.KeyCode) else Keybind:Set(Input.UserInputType) end end end) ClickConnection = Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 and Input.Target ~= SubItems["KeyButton"].Instance then EndPick() Keybind:Set(Keybind.Key or "None") end end) end HookKeybindChip(SubItems["KeyButton"], OpenModeMenu, PickKey) Library:Connect(UserInputService.InputBegan, function(Input) if Keybind.Value == "None" or Keybind.Value == "" then return end if tostring(Input.KeyCode) == Keybind.Key or tostring(Input.UserInputType) == Keybind.Key then if Keybind.Mode == "Toggle" then Keybind:Press() elseif Keybind.Mode == "Hold" then Keybind:Press(true) end end end) Library:Connect(UserInputService.InputEnded, function(Input) if Keybind.Value == "None" or Keybind.Value == "" then return end if tostring(Input.KeyCode) == Keybind.Key or tostring(Input.UserInputType) == Keybind.Key then if Keybind.Mode == "Hold" then Keybind:Press(false) end end end) TableInsert(Library.Keybinds, { Name = Keybind.Name, Keybind = Keybind, Display = function() return Keybind.Value, Keybind.Mode end }) if Keybind.Default then Keybind:Set({ Key = Keybind.Default, Mode = Keybind.Mode or "Toggle" }) end Library.SetFlags[Keybind.Flag] = function(Value) Keybind:Set(Value) end return Keybind end local SearchData = { Name = Toggle.Name, Element = Items["Text"], Section = Toggle.Section, } TableInsert(Toggle.Page.SearchItems, SearchData) Items["Toggle"]:Connect("MouseButton1Down", function() Toggle:Set(not Toggle.Value) end) if Toggle.Default then Toggle:Set(Toggle.Default) else Toggle:Set(false) end Library.SetFlags[Toggle.Flag] = function(Value) Toggle:Set(Value) end return Toggle end -- Button Library.Sections.Button = function(self, Data) Data = Data or { } local Button = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Button", Callback = Data.Callback or Data.callback or function() end, Style = Data.Style or Data.style or "Accent", Icon = Data.Icon or Data.icon or "Check", } local IsDim = StringLower(tostring(Button.Style)) == "dim" or StringLower(tostring(Button.Style)) == "secondary" local ThemeKey = IsDim and "Accent Dim" or "Accent" local BaseColor = Library.Theme[ThemeKey] local TextColor = IsDim and FromRGB(196, 196, 196) or Color3.new(1, 1, 1) local Items = { } do Items["Button"] = Instances:Create("TextButton", { Parent = Button.Section.Items["Content"].Instance, Name = "\0", Text = "", AutoButtonColor = false, Size = UDim2New(1, 0, 0, 36), BackgroundColor3 = BaseColor, BorderSizePixel = 0, ZIndex = 4, }) Instances:Create("UICorner", { Parent = Items["Button"].Instance, CornerRadius = UDimNew(0, 8) }) if IsDim then Items["ButtonShadow"] = Library:AddShadow(Items["Button"], { Spread = 20, Transparency = 0.55, ZIndex = 3 }) else Items["ButtonGlow"] = Library:AddGlow(Items["Button"], { Spread = 22, Transparency = 0.55, ZIndex = 3 }) end Items["Button"]:AddToTheme({ BackgroundColor3 = ThemeKey }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Button"].Instance, FontFace = Library.Font, Text = Button.Name, Name = "\0", TextSize = 13, TextColor3 = TextColor, BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Center, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0.5, 0, 0.5, 0), Size = UDim2New(1, -24, 0, 16), BorderSizePixel = 0, ZIndex = 6, BackgroundColor3 = FromRGB(255, 255, 255) }) end function Button:Press() local Current = Library.Theme[ThemeKey] local Pressed = Current:Lerp(Color3.new(1, 1, 1), 0.16) Items["Button"]:Tween(TweenInfoNew(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Pressed }) task.wait(0.1) Items["Button"]:Tween(TweenInfoNew(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Library.Theme[ThemeKey] }) Library:SafeCall(Button.Callback) end function Button:SetVisibility(Bool) Items["Button"].Instance.Visible = Bool end function Button:SubButton(Data2) Data2 = Data2 or { } local SubButton = { Window = self.Window, Page = self.Page, Section = self, Name = Data2.Name or Data2.name or "Button", Callback = Data2.Callback or Data2.callback or function() end, } local SubHolder = Instances:Create("Frame", { Parent = Button.Section.Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 36), BorderSizePixel = 0, LayoutOrder = (Items["Button"].Instance.LayoutOrder + 1), ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Button"].Instance.Parent = SubHolder.Instance Items["Button"].Instance.Size = UDim2New(0.49, 0, 1, 0) local SubItems = { } do SubItems["SubButton"] = Instances:Create("TextButton", { Parent = SubHolder.Instance, Name = "\0", Text = "", AutoButtonColor = false, AnchorPoint = Vector2New(1, 0), Position = UDim2New(1, 0, 0, 0), Size = UDim2New(0.49, 0, 1, 0), BackgroundColor3 = BaseColor, BorderSizePixel = 0, ZIndex = 4, }) Instances:Create("UICorner", { Parent = SubItems["SubButton"].Instance, CornerRadius = UDimNew(0, 8) }) if IsDim then Library:AddShadow(SubItems["SubButton"], { Spread = 18, Transparency = 0.55, ZIndex = 3 }) else Library:AddGlow(SubItems["SubButton"], { Spread = 18, Transparency = 0.55, ZIndex = 3 }) end SubItems["SubButton"]:AddToTheme({ BackgroundColor3 = ThemeKey }) SubItems["Text"] = Instances:Create("TextLabel", { Parent = SubItems["SubButton"].Instance, FontFace = Library.Font, Text = SubButton.Name, Name = "\0", TextSize = 13, TextColor3 = TextColor, BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Center, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0.5, 0, 0.5, 0), Size = UDim2New(1, -16, 0, 16), BorderSizePixel = 0, ZIndex = 6, BackgroundColor3 = FromRGB(255, 255, 255) }) end function SubButton:Press() SubItems["SubButton"]:Tween(TweenInfoNew(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Library.Theme[ThemeKey]:Lerp(Color3.new(1, 1, 1), 0.16) }) task.wait(0.1) SubItems["SubButton"]:Tween(TweenInfoNew(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundColor3 = Library.Theme[ThemeKey] }) Library:SafeCall(SubButton.Callback) end function SubButton:SetVisibility(Bool) SubItems["SubButton"].Instance.Visible = Bool end TableInsert(SubButton.Page.SearchItems, { Name = SubButton.Name, Element = SubItems["Text"], Row = SubItems["SubButton"].Instance, Section = SubButton.Section }) SubItems["SubButton"]:Connect("MouseButton1Down", function() SubButton:Press() end) return SubButton end TableInsert(Button.Page.SearchItems, { Name = Button.Name, Element = Items["Text"], Row = Items["Button"].Instance, Section = Button.Section }) Items["Button"]:Connect("MouseButton1Down", function() Button:Press() end) return Button end -- Slider Library.Sections.Slider = function(self, Data) Data = Data or { } local Slider = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Slider", Flag = Data.Flag or Data.flag or Library:NextFlag(), Min = Data.Min or Data.min or 0, Default = Data.Default or Data.default or 0, Max = Data.Max or Data.max or 100, Suffix = Data.Suffix or Data.suffix or "", Decimals = Data.Decimals or Data.decimals or 1, Callback = Data.Callback or Data.callback or function() end, Value = 0, Sliding = false } local Items = { } do Items["Slider"] = Instances:Create("Frame", { Parent = Slider.Section.Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 24), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Slider"].Instance, FontFace = Library.Font, Text = Slider.Name, Name = "\0", TextSize = 13, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -176, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"]:AddToTheme({ TextColor3 = "Text" }) Items["Value"] = Instances:Create("TextLabel", { Parent = Items["Slider"].Instance, FontFace = Library.Font, Text = "0", Name = "\0", TextSize = 12, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Right, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, -112, 0.5, 0), Size = UDim2New(0, 46, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Value"]:AddToTheme({ TextColor3 = "SubText" }) Items["ValueEdit"] = Instances:Create("TextButton", { Parent = Items["Slider"].Instance, Name = "\0", Text = "", AutoButtonColor = false, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, -112, 0.5, 0), Size = UDim2New(0, 46, 0, 24), BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = 6, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["RealSlider"] = Instances:Create("TextButton", { Parent = Items["Slider"].Instance, Name = "\0", Text = "", AutoButtonColor = false, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, 104, 0, 24), BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Track"] = Instances:Create("Frame", { Parent = Items["RealSlider"].Instance, Name = "\0", AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, 0, 0, 3), BackgroundColor3 = FromRGB(31, 32, 37), BorderSizePixel = 0, ZIndex = 5 }) Items["Track"]:AddToTheme({ BackgroundColor3 = "Element" }) Instances:Create("UICorner", { Parent = Items["Track"].Instance, CornerRadius = UDimNew(1, 0) }) Items["Accent"] = Instances:Create("Frame", { Parent = Items["RealSlider"].Instance, Name = "\0", AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(0, 0, 0, 3), BackgroundColor3 = FromRGB(224, 138, 43), BorderSizePixel = 0, ZIndex = 6 }) Items["Accent"]:AddToTheme({ BackgroundColor3 = "Accent" }) Instances:Create("UICorner", { Parent = Items["Accent"].Instance, CornerRadius = UDimNew(1, 0) }) Items["Knob"] = Instances:Create("Frame", { Parent = Items["RealSlider"].Instance, Name = "\0", AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(0, 11, 0, 11), BackgroundColor3 = FromRGB(255, 255, 255), BorderSizePixel = 0, ZIndex = 7 }) Instances:Create("UICorner", { Parent = Items["Knob"].Instance, CornerRadius = UDimNew(1, 0) }) end function Slider:Get() return Slider.Value end function Slider:Set(Value) Slider.Value = MathClamp(Library:Round(tonumber(Value) or Slider.Min, Slider.Decimals), Slider.Min, Slider.Max) Library.Flags[Slider.Flag] = Slider.Value local Scale = (Slider.Max ~= Slider.Min) and ((Slider.Value - Slider.Min) / (Slider.Max - Slider.Min)) or 0 Items["Accent"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = UDim2New(Scale, 0, 0, 3) }) Items["Knob"]:Tween(TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = UDim2New(Scale, 0, 0.5, 0) }) Items["Value"].Instance.Text = StringFormat("%s%s", tostring(Slider.Value), Slider.Suffix) if Slider.Callback then Library:SafeCall(Slider.Callback, Slider.Value) end end function Slider:SetVisibility(Bool) Items["Slider"].Instance.Visible = Bool end TableInsert(Slider.Page.SearchItems, { Name = Slider.Name, Element = Items["Text"], Section = Slider.Section, }) local Editing = false local EditBuffer = "" local EditConnection = nil local DigitKeys = { [Enum.KeyCode.Zero] = "0", [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.KeypadZero] = "0", [Enum.KeyCode.KeypadOne] = "1", [Enum.KeyCode.KeypadTwo] = "2", [Enum.KeyCode.KeypadThree] = "3", [Enum.KeyCode.KeypadFour] = "4", [Enum.KeyCode.KeypadFive] = "5", [Enum.KeyCode.KeypadSix] = "6", [Enum.KeyCode.KeypadSeven] = "7", [Enum.KeyCode.KeypadEight] = "8", [Enum.KeyCode.KeypadNine] = "9", } local function StopEdit(Commit) if not Editing then return end Editing = false if EditConnection then pcall(function() EditConnection.Connection:Disconnect() end) EditConnection = nil end Items["Value"]:ChangeItemTheme({ TextColor3 = "SubText" }) local Typed = Commit and tonumber(EditBuffer) if Typed then Slider:Set(Typed) else Slider:Set(Slider.Value) end end local function StartEdit() if Editing then return end Editing = true EditBuffer = tostring(Slider.Value) Items["Value"]:ChangeItemTheme({ TextColor3 = "Accent" }) Items["Value"].Instance.Text = EditBuffer EditConnection = Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then if not (Input.Target and Input.Target == Items["ValueEdit"].Instance) then StopEdit(true) end return end if Input.UserInputType ~= Enum.UserInputType.Keyboard then return end local Key = Input.KeyCode local Digit = DigitKeys[Key] if Digit then EditBuffer = EditBuffer .. Digit elseif Key == Enum.KeyCode.Backspace then EditBuffer = StringSub(EditBuffer, 1, math.max(0, #EditBuffer - 1)) elseif Key == Enum.KeyCode.Period or Key == Enum.KeyCode.KeypadPeriod then EditBuffer = EditBuffer .. "." elseif Key == Enum.KeyCode.Minus then EditBuffer = EditBuffer .. "-" elseif Key == Enum.KeyCode.Return or Key == Enum.KeyCode.KeypadEnter then StopEdit(true) return elseif Key == Enum.KeyCode.Escape then StopEdit(false) return else return end Items["Value"].Instance.Text = EditBuffer end) end Items["ValueEdit"]:Connect("MouseButton1Down", function() if Editing then StopEdit(true) else StartEdit() end end) local function FromInput(Input) local Track = Items["RealSlider"].Instance local Scale = MathClamp((Input.Position.X - Track.AbsolutePosition.X) / Track.AbsoluteSize.X, 0, 1) Slider:Set((Slider.Max - Slider.Min) * Scale + Slider.Min) end Items["RealSlider"]:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Slider.Sliding = true FromInput(Input) Input.Changed:Connect(function() if Input.UserInputState == Enum.UserInputState.End then Slider.Sliding = false end end) end end) Library:Connect(UserInputService.InputChanged, function(Input) if Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch then if Slider.Sliding then FromInput(Input) end end end) Slider:Set(Slider.Default) Library.SetFlags[Slider.Flag] = function(Value) Slider:Set(Value) end return Slider end -- Dropdown Library.Sections.Dropdown = function(self, Data) Data = Data or { } local Dropdown = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Dropdown", Flag = Data.Flag or Data.flag or Library:NextFlag(), Items = Data.Items or Data.items or { "One", "Two", "Three" }, Default = Data.Default or Data.default or nil, MaxSize = Data.MaxSize or Data.maxsize or 90, Callback = Data.Callback or Data.callback or function() end, Multi = Data.Multi or Data.multi or false, Value = { }, IsOpen = false, Options = { }, } local Width = 112 local Items = { } do Items["Dropdown"] = Instances:Create("Frame", { Parent = Dropdown.Section.Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 26), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Dropdown"].Instance, FontFace = Library.Font, Text = Dropdown.Name, Name = "\0", TextSize = 14, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -(Width + 10), 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"]:AddToTheme({ TextColor3 = "Text" }) Items["RealDropdown"] = Instances:Create("TextButton", { Parent = Items["Dropdown"].Instance, Name = "\0", Text = "", AutoButtonColor = false, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, Width, 0, 26), BackgroundColor3 = FromRGB(31, 32, 37), BorderSizePixel = 0, ZIndex = 5, }) Items["RealDropdown"]:AddToTheme({ BackgroundColor3 = "Element" }) Instances:Create("UICorner", { Parent = Items["RealDropdown"].Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Items["RealDropdown"], { Spread = 16, Transparency = 0.68, ZIndex = 4 }) local DropStroke = Instances:Create("UIStroke", { Parent = Items["RealDropdown"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.35 }) DropStroke:AddToTheme({ Color = "Border" }) Items["Value"] = Instances:Create("TextLabel", { Parent = Items["RealDropdown"].Instance, FontFace = Library.Font, Text = "--", Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, Position = UDim2New(0, 11, 0, 0), Size = UDim2New(1, -30, 1, 0), BorderSizePixel = 0, ZIndex = 6, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Value"]:AddToTheme({ TextColor3 = "SubText" }) Items["Icon"] = Instances:Create("Frame", { Parent = Items["RealDropdown"].Instance, Name = "\0", BackgroundTransparency = 1, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, -9, 0.5, 0), Size = UDim2New(0, 12, 0, 12), BorderSizePixel = 0, ZIndex = 6, BackgroundColor3 = FromRGB(255, 255, 255) }) Icons.Draw("Chevron", Items["Icon"].Instance, 12, Library.Theme.SubText) Items["OptionHolder"] = Instances:Create("ScrollingFrame", { Parent = Library:PopupParent(), Name = "\0", BackgroundColor3 = FromRGB(21, 22, 25), BorderSizePixel = 0, Visible = false, Active = true, CanvasSize = UDim2New(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, ScrollBarThickness = 2, ScrollBarImageColor3 = FromRGB(224, 138, 43), ScrollBarImageTransparency = 0.35, ZIndex = 3500, }) Items["OptionHolder"]:AddToTheme({ BackgroundColor3 = "Inline", ScrollBarImageColor3 = "Accent" }) Instances:Create("UICorner", { Parent = Items["OptionHolder"].Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Items["OptionHolder"], { Spread = 26, Transparency = 0.5, ZIndex = 3499 }) local OptionStroke = Instances:Create("UIStroke", { Parent = Items["OptionHolder"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border }) OptionStroke:AddToTheme({ Color = "Border" }) Instances:Create("UIPadding", { Parent = Items["OptionHolder"].Instance, PaddingTop = UDimNew(0, 5), PaddingBottom = UDimNew(0, 5), PaddingLeft = UDimNew(0, 5), PaddingRight = UDimNew(0, 5) }) Instances:Create("UIListLayout", { Parent = Items["OptionHolder"].Instance, Padding = UDimNew(0, 3), SortOrder = Enum.SortOrder.LayoutOrder }) end local Debounce = false function Dropdown:Set(Option) if Dropdown.Multi then if type(Option) ~= "table" then return end Dropdown.Value = Option Library.Flags[Dropdown.Flag] = Dropdown.Value for _, Value in Dropdown.Options do local Index = TableFind(Option, Value.Name) Value.Selected = Index ~= nil Value:Toggle(Index and "Active" or "Inactive") end Items["Value"].Instance.Text = #Option > 0 and TableConcat(Option, ", ") or "--" else local OptionData = Dropdown.Options[Option] if not OptionData then return end Dropdown.Value = OptionData.Name Library.Flags[Dropdown.Flag] = Dropdown.Value for _, Value in Dropdown.Options do Value.Selected = (Value == OptionData) Value:Toggle(Value.Selected and "Active" or "Inactive") end Items["Value"].Instance.Text = Dropdown.Value end if Data.Callback then Library:SafeCall(Data.Callback, Dropdown.Value) end end function Dropdown:SetOpen(Bool) if Debounce then return end Dropdown.IsOpen = Bool Debounce = true if Bool then local Button = Items["RealDropdown"].Instance local Rows = 0 for _ in Dropdown.Options do Rows += 1 end local Height = math.min(Dropdown.MaxSize, Rows * 27 + 10) local Host = Library:PopupParent() local AbsX, AbsY = Button.AbsolutePosition.X, Button.AbsolutePosition.Y + Button.AbsoluteSize.Y + 4 local Bottom = AbsY + Library.GuiSpace(0, 0) + Height local Limit = Camera.ViewportSize.Y - 12 if Bottom > Limit then AbsY = AbsY - Height - Button.AbsoluteSize.Y - 8 end local X, Y = Library:LocalPosition(Host, AbsX, AbsY) Items["OptionHolder"].Instance.Position = UDim2New(0, X, 0, Y) Items["OptionHolder"].Instance.Size = UDim2New(0, Width, 0, Height) Items["OptionHolder"].Instance.Visible = true end local NewTween = Library:Fade(Items["OptionHolder"].Instance, Bool, Dropdown.Window.FadeSpeed) if NewTween then Library:Connect(NewTween.Tween.Completed, function() Debounce = false Items["OptionHolder"].Instance.Visible = Bool end) else Debounce = false Items["OptionHolder"].Instance.Visible = Bool end end function Dropdown:Remove(Option) if Dropdown.Options[Option] then Dropdown.Options[Option].Button:Clean() end Dropdown.Options[Option] = nil end function Dropdown:Refresh(List) for Index, Value in Dropdown.Options do Dropdown:Remove(Index) end Dropdown.Options = { } for _, Value in List do Dropdown:Add(Value) end end function Dropdown:Add(Option) local OptionButton = Instances:Create("TextButton", { Parent = Items["OptionHolder"].Instance, FontFace = Library.Font, Text = Option, Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), AutoButtonColor = false, Size = UDim2New(1, 0, 0, 24), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, BorderSizePixel = 0, ZIndex = 3501, BackgroundColor3 = FromRGB(31, 32, 37) }) OptionButton:AddToTheme({ TextColor3 = "SubText", BackgroundColor3 = "Element" }) Instances:Create("UICorner", { Parent = OptionButton.Instance, CornerRadius = UDimNew(0, 5) }) local Padding = Instances:Create("UIPadding", { Parent = OptionButton.Instance, PaddingLeft = UDimNew(0, 8) }) local OptionData = { Name = Option, Button = OptionButton, Padding = Padding, Selected = false } local function ApplyVisual(Hover) local Info = TweenInfoNew(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) if OptionData.Selected then OptionData.Button:ChangeItemTheme({ TextColor3 = "Accent" }) OptionData.Button:Tween(Info, { TextColor3 = Library.Theme.Accent, BackgroundTransparency = 0, TextTransparency = 0, BackgroundColor3 = Library.Theme.Element:Lerp(Color3.new(1, 1, 1), 0.08) }) Padding:Tween(Info, { PaddingLeft = UDimNew(0, 12) }) elseif Hover then OptionData.Button:ChangeItemTheme({ TextColor3 = "Text" }) OptionData.Button:Tween(Info, { TextColor3 = Library.Theme.Text, BackgroundTransparency = 1, TextTransparency = 0 }) Padding:Tween(Info, { PaddingLeft = UDimNew(0, 12) }) else OptionData.Button:ChangeItemTheme({ TextColor3 = "SubText" }) OptionData.Button:Tween(Info, { TextColor3 = Library.Theme.SubText, BackgroundTransparency = 1, TextTransparency = 0 }) Padding:Tween(Info, { PaddingLeft = UDimNew(0, 8) }) end end function OptionData:Toggle(Status) OptionData.Selected = Status == "Active" ApplyVisual(false) end OptionData.Button:Connect("MouseEnter", function() ApplyVisual(true) end) OptionData.Button:Connect("MouseLeave", function() ApplyVisual(false) end) function OptionData:Set() if Dropdown.Multi then local Index = TableFind(Dropdown.Value, OptionData.Name) if Index then TableRemove(Dropdown.Value, Index) else TableInsert(Dropdown.Value, OptionData.Name) end OptionData.Selected = Index == nil Library.Flags[Dropdown.Flag] = Dropdown.Value OptionData:Toggle(OptionData.Selected and "Active" or "Inactive") Items["Value"].Instance.Text = #Dropdown.Value > 0 and TableConcat(Dropdown.Value, ", ") or "--" else OptionData.Selected = not OptionData.Selected if OptionData.Selected then Dropdown.Value = OptionData.Name OptionData:Toggle("Active") Items["Value"].Instance.Text = OptionData.Name Library.Flags[Dropdown.Flag] = Dropdown.Value for _, Value in Dropdown.Options do if Value ~= OptionData then Value.Selected = false Value:Toggle("Inactive") end end else Dropdown.Value = nil OptionData:Toggle("Inactive") Items["Value"].Instance.Text = "--" Library.Flags[Dropdown.Flag] = Dropdown.Value end end if Data.Callback then Library:SafeCall(Data.Callback, Dropdown.Value) end end OptionData.Button:Connect("MouseButton1Down", function() OptionData:Set() end) Dropdown.Options[Option] = OptionData return OptionData end function Dropdown:SetVisibility(Bool) Items["Dropdown"].Instance.Visible = Bool end TableInsert(Dropdown.Page.SearchItems, { Name = Dropdown.Name, Element = Items["Text"], Section = Dropdown.Section }) Items["RealDropdown"]:Connect("MouseButton1Down", function() Dropdown:SetOpen(not Dropdown.IsOpen) end) Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 and Dropdown.IsOpen and not Debounce and not Library:IsMouseOverFrame(Items["OptionHolder"].Instance) and not Library:IsMouseOverFrame(Items["RealDropdown"].Instance) then Dropdown:SetOpen(false) end end) for _, Value in Dropdown.Items do Dropdown:Add(Value) end if Dropdown.Default then Dropdown:Set(Dropdown.Default) end Library.SetFlags[Dropdown.Flag] = function(Value) Dropdown:Set(Value) end return Dropdown end -- Label Library.Sections.Label = function(self, Text, Alignment) local Label = { Window = self.Window, Page = self.Page, Section = self, Name = Text or "Label", Alignment = Alignment or "Left", Count = 0 } local Items = { } do Items["Label"] = Instances:Create("Frame", { Parent = Label.Section.Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 18), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Label"].Instance, FontFace = Library.Font, Text = Label.Name, Name = "\0", TextSize = 13, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment[Label.Alignment] or Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -80, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"]:AddToTheme({ TextColor3 = "SubText" }) end function Label:Colorpicker(Data) Data = Data or { } local Colorpicker = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Colorpicker", Flag = Data.Flag or Data.flag or Library:NextFlag(), Default = Data.Default or Data.default or Color3.new(1, 1, 1), Callback = Data.Callback or Data.callback or function() end, Alpha = Data.Alpha or Data.alpha or 0, Parent = Items["Label"], Offset = -(Label.Count * 26), } Label.Count += 1 TableInsert(Colorpicker.Page.SearchItems, { Name = Label.Name, Element = Items["Text"], Section = Colorpicker.Section }) return Library:CreateColorpicker(Colorpicker) end return Label end -- Keybind (standalone row) Library.Sections.Keybind = function(self, Data) Data = Data or { } local Keybind = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Keybind", Flag = Data.Flag or Data.flag or Library:NextFlag(), Default = Data.Default or Data.default or Enum.KeyCode.RightShift, Callback = Data.Callback or Data.callback or function() end, Mode = Data.Mode or Data.mode or "Toggle", Key = nil, Value = "", Toggled = false, Picking = false } Library.Flags[Keybind.Flag] = { } local Items = { } do Items["Keybind"] = Instances:Create("Frame", { Parent = Keybind.Section.Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 26), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Keybind"].Instance, FontFace = Library.Font, Text = Keybind.Name, Name = "\0", TextSize = 14, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -100, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"]:AddToTheme({ TextColor3 = "Text" }) Items["RealKeybind"], Items["Value"] = CreateChip(Items["Keybind"].Instance, 0, 22, "None", 5, true, true) TuneChip(Items["RealKeybind"], Items["Value"], 8, 12) Items["RealKeybind"].Instance.Position = UDim2New(1, 0, 0.5, 0) Library:HookChipHover(Items["RealKeybind"], 8, Items["Value"], function() return Keybind.Picking and Library.Theme.Accent or Library.Theme.Text end) end function Keybind:Get() return Keybind.Toggled, Keybind.Key end function Keybind:SetVisibility(Bool) Items["Keybind"].Instance.Visible = Bool end function Keybind:Set(Key) if StringFind(tostring(Key), "Enum") then Keybind.Key = tostring(Key) local TextToDisplay = Key.Name == "Backspace" and "None" or FormatKeyName(Keybind.Key) Keybind.Value = TextToDisplay Items["Value"].Instance.Text = TextToDisplay Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end elseif TableFind({"Hold", "Toggle", "Always"}, Key) then Keybind:SetMode(Key) elseif type(Key) == "table" then local RealKey = tostring(Key.Key) local ShortKey = RealKey if StringFind(RealKey, "Enum") then ShortKey = StringGSub(StringGSub(RealKey, "Enum.KeyCode.", ""), "Enum.UserInputType.", "") end Keybind.Key = RealKey if Key.Mode then Keybind:SetMode(Key.Mode) else Keybind.Mode = "Toggle" Keybind.Toggled = Key.Toggled or false end local TextToDisplay = FormatKeyName(ShortKey) Keybind.Value = TextToDisplay Items["Value"].Instance.Text = TextToDisplay Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end end Keybind.Picking = false Items["Value"]:ChangeItemTheme({ TextColor3 = "SubText" }) Items["Value"]:Tween(nil, { TextColor3 = Library.Theme.SubText }) end function Keybind:SetMode(Mode) Keybind.Mode = Mode Keybind.Toggled = Mode == "Always" Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end end function Keybind:Press(Bool) if Keybind.Mode == "Toggle" then Keybind.Toggled = not Keybind.Toggled elseif Keybind.Mode == "Hold" then Keybind.Toggled = Bool elseif Keybind.Mode == "Always" then Keybind.Toggled = true end Library.Flags[Keybind.Flag] = { Mode = Keybind.Mode, Key = Keybind.Key, Toggled = Keybind.Toggled } if Keybind.Callback then Library:SafeCall(Keybind.Callback, Keybind.Toggled) end end TableInsert(Keybind.Page.SearchItems, { Name = Keybind.Name, Element = Items["Text"], Section = Keybind.Section }) local function OpenModeMenu() ShowModePopup(Items["RealKeybind"].Instance, Keybind.Mode, function(Mode) Keybind:SetMode(Mode) end) end local function PickKey() if Keybind.Picking then return end Keybind.Picking = true Items["Value"]:ChangeItemTheme({ TextColor3 = "Accent" }) Items["Value"]:Tween(nil, { TextColor3 = Library.Theme.Accent }) local KeyConnection, ClickConnection local function EndPick() Keybind.Picking = false Items["Value"]:ChangeItemTheme({ TextColor3 = "Text" }) Items["Value"]:Tween(nil, { TextColor3 = Library.Theme.Text }) for _, Connection in { KeyConnection, ClickConnection } do if Connection then pcall(function() Connection.Connection:Disconnect() end) end end KeyConnection, ClickConnection = nil, nil end KeyConnection = Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.Keyboard or Input.UserInputType == Enum.UserInputType.MouseButton2 then EndPick() if Input.UserInputType == Enum.UserInputType.Keyboard then Keybind:Set(Input.KeyCode) else Keybind:Set(Input.UserInputType) end end end) ClickConnection = Library:Connect(UserInputService.InputBegan, function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 and Input.Target ~= Items["RealKeybind"].Instance then EndPick() Keybind:Set(Keybind.Key or "None") end end) end HookKeybindChip(Items["RealKeybind"], OpenModeMenu, PickKey) Library:Connect(UserInputService.InputBegan, function(Input) if Keybind.Value == "None" or Keybind.Value == "" then return end if tostring(Input.KeyCode) == Keybind.Key or tostring(Input.UserInputType) == Keybind.Key then if Keybind.Mode == "Toggle" then Keybind:Press() elseif Keybind.Mode == "Hold" then Keybind:Press(true) end end end) Library:Connect(UserInputService.InputEnded, function(Input) if Keybind.Value == "None" or Keybind.Value == "" then return end if tostring(Input.KeyCode) == Keybind.Key or tostring(Input.UserInputType) == Keybind.Key then if Keybind.Mode == "Hold" then Keybind:Press(false) end end end) TableInsert(Library.Keybinds, { Name = Keybind.Name, Keybind = Keybind, Display = function() return Keybind.Value, Keybind.Mode end }) if Keybind.Default then Keybind:Set({ Key = Keybind.Default, Mode = Keybind.Mode or "Toggle" }) end Library.SetFlags[Keybind.Flag] = function(Value) Keybind:Set(Value) end return Keybind end -- Textbox Library.Sections.Textbox = function(self, Data) Data = Data or { } local Textbox = { Window = self.Window, Page = self.Page, Section = self, Name = Data.Name or Data.name or "Textbox", Flag = Data.Flag or Data.flag or Library:NextFlag(), Default = Data.Default or Data.default or "", Callback = Data.Callback or Data.callback or function() end, Placeholder = Data.Placeholder or Data.placeholder or "Placeholder", Value = "" } local Items = { } do Items["Textbox"] = Instances:Create("Frame", { Parent = Textbox.Section.Items["Content"].Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 26), BorderSizePixel = 0, ZIndex = 4, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"] = Instances:Create("TextLabel", { Parent = Items["Textbox"].Instance, FontFace = Library.Font, Text = Textbox.Name, Name = "\0", TextSize = 14, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, TextTruncate = Enum.TextTruncate.AtEnd, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -178, 0, 16), BorderSizePixel = 0, ZIndex = 5, BackgroundColor3 = FromRGB(255, 255, 255) }) Items["Text"]:AddToTheme({ TextColor3 = "Text" }) Items["Input"] = Instances:Create("TextBox", { Parent = Items["Textbox"].Instance, FontFace = Library.Font, Text = "", Name = "\0", TextSize = 13, TextColor3 = FromRGB(255, 255, 255), PlaceholderColor3 = FromRGB(122, 126, 134), PlaceholderText = Textbox.Placeholder, TextXAlignment = Enum.TextXAlignment.Left, ClearTextOnFocus = false, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, 164, 0, 26), BackgroundColor3 = FromRGB(31, 32, 37), BorderSizePixel = 0, ZIndex = 5 }) Items["Input"]:AddToTheme({ TextColor3 = "Text", BackgroundColor3 = "Element" }) Instances:Create("UICorner", { Parent = Items["Input"].Instance, CornerRadius = UDimNew(0, 8) }) Library:AddShadow(Items["Input"], { Spread = 16, Transparency = 0.7, ZIndex = 4 }) Instances:Create("UIStroke", { Parent = Items["Input"].Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Transparency = 0.35 }):AddToTheme({ Color = "Border" }) Instances:Create("UIPadding", { Parent = Items["Input"].Instance, PaddingLeft = UDimNew(0, 10), PaddingRight = UDimNew(0, 10) }) end function Textbox:Get() return Textbox.Value end function Textbox:Set(Value) Value = tostring(Value or "") Items["Input"].Instance.Text = Value Textbox.Value = Value Library.Flags[Textbox.Flag] = Value if Textbox.Callback then Library:SafeCall(Textbox.Callback, Textbox.Value) end end function Textbox:SetVisibility(Bool) Items["Textbox"].Instance.Visible = Bool end TableInsert(Textbox.Page.SearchItems, { Name = Textbox.Name, Element = Items["Text"], Section = Textbox.Section, }) Items["Input"]:Connect("FocusLost", function() Textbox:Set(Items["Input"].Instance.Text) end) if Textbox.Default ~= "" then Textbox:Set(Textbox.Default) else Library.Flags[Textbox.Flag] = "" end Library.SetFlags[Textbox.Flag] = function(Value) Textbox:Set(Value) end return Textbox end -- Overlays (keybind list / settings) local function CreateOverlay(Window, Title) local Items = Window.Items if Items["Overlay"] and Items["Overlay"].Instance then Items["Overlay"].Instance:Destroy() end local Overlay = Instances:Create("Frame", { Parent = Items["MainFrame"].Instance, Name = "\0", Size = UDim2New(1, 0, 1, 0), BackgroundColor3 = FromRGB(0, 0, 0), BackgroundTransparency = 0.45, BorderSizePixel = 0, ZIndex = 4500, }) Instances:Create("UICorner", { Parent = Overlay.Instance, CornerRadius = UDimNew(0, 8) }) local Panel = Instances:Create("Frame", { Parent = Overlay.Instance, Name = "\0", AnchorPoint = Vector2New(0.5, 0.5), Position = UDim2New(0.5, 0, 0.5, 0), Size = UDim2New(0, 392, 0, 348), BackgroundColor3 = FromRGB(16, 16, 18), BorderSizePixel = 0, ZIndex = 4501, }) Panel:AddToTheme({ BackgroundColor3 = "Background" }) Instances:Create("UICorner", { Parent = Panel.Instance, CornerRadius = UDimNew(0, 8) }) Instances:Create("UIStroke", { Parent = Panel.Instance, Color = FromRGB(38, 39, 45), ApplyStrokeMode = Enum.ApplyStrokeMode.Border }):AddToTheme({ Color = "Border" }) local TitleLabel = Instances:Create("TextLabel", { Parent = Panel.Instance, FontFace = Library.BoldFont, Text = Title, Name = "\0", TextSize = 14, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, Position = UDim2New(0, 16, 0, 14), Size = UDim2New(1, -60, 0, 18), BorderSizePixel = 0, ZIndex = 4502, BackgroundColor3 = FromRGB(255, 255, 255) }) TitleLabel:AddToTheme({ TextColor3 = "Text" }) local Close = Instances:Create("TextButton", { Parent = Panel.Instance, Name = "\0", Text = "", AutoButtonColor = false, AnchorPoint = Vector2New(1, 0), Position = UDim2New(1, -14, 0, 14), Size = UDim2New(0, 22, 0, 22), BackgroundColor3 = FromRGB(31, 32, 37), BorderSizePixel = 0, ZIndex = 4502, }) Close:AddToTheme({ BackgroundColor3 = "Element" }) Instances:Create("UICorner", { Parent = Close.Instance, CornerRadius = UDimNew(0, 6) }) Icons.Draw("Dots", Close.Instance, 13, Library.Theme.SubText) Instances:Create("Frame", { Parent = Panel.Instance, Name = "\0", Size = UDim2New(1, -32, 0, 1), Position = UDim2New(0, 16, 0, 44), BackgroundColor3 = FromRGB(38, 39, 45), BorderSizePixel = 0, ZIndex = 4502 }):AddToTheme({ BackgroundColor3 = "Border" }) local List = Instances:Create("ScrollingFrame", { Parent = Panel.Instance, Name = "\0", BackgroundTransparency = 1, Position = UDim2New(0, 16, 0, 54), Size = UDim2New(1, -26, 1, -66), CanvasSize = UDim2New(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, ScrollBarThickness = 3, ScrollBarImageColor3 = FromRGB(224, 138, 43), BorderSizePixel = 0, ZIndex = 4502, BackgroundColor3 = FromRGB(255, 255, 255) }) List:AddToTheme({ ScrollBarImageColor3 = "Accent" }) Instances:Create("UIListLayout", { Parent = List.Instance, Padding = UDimNew(0, 8), SortOrder = Enum.SortOrder.LayoutOrder }) Overlay:Connect("InputBegan", function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 and Input.Target == Overlay.Instance then Overlay:Clean() end end) Close:Connect("MouseButton1Down", function() Overlay:Clean() end) Items["Overlay"] = Overlay return Overlay, List, Panel end local function OverlayRow(List) local Row = Instances:Create("Frame", { Parent = List.Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 26), BorderSizePixel = 0, ZIndex = 4503, BackgroundColor3 = FromRGB(255, 255, 255) }) local Text = Instances:Create("TextLabel", { Parent = Row.Instance, FontFace = Library.Font, Text = "", Name = "\0", TextSize = 13, TextColor3 = FromRGB(255, 255, 255), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Left, AnchorPoint = Vector2New(0, 0.5), Position = UDim2New(0, 0, 0.5, 0), Size = UDim2New(1, -110, 0, 16), BorderSizePixel = 0, ZIndex = 4504, BackgroundColor3 = FromRGB(255, 255, 255) }) Text:AddToTheme({ TextColor3 = "Text" }) local Chip = Instances:Create("Frame", { Parent = Row.Instance, Name = "\0", AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, 96, 0, 24), BackgroundColor3 = FromRGB(31, 32, 37), BorderSizePixel = 0, ZIndex = 4504, BackgroundColor3 = FromRGB(31, 32, 37) }) Chip:AddToTheme({ BackgroundColor3 = "Element" }) Instances:Create("UICorner", { Parent = Chip.Instance, CornerRadius = UDimNew(0, 6) }) local ChipText = Instances:Create("TextLabel", { Parent = Chip.Instance, FontFace = Library.Font, Text = "", Name = "\0", TextSize = 12, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Center, Size = UDim2New(1, 0, 1, 0), BorderSizePixel = 0, ZIndex = 4505, BackgroundColor3 = FromRGB(255, 255, 255) }) ChipText:AddToTheme({ TextColor3 = "SubText" }) return Row, Text, Chip, ChipText end Library.KeybindList = function(self) local Window = self local Overlay, List = CreateOverlay(Window, "Keybinds") if #Library.Keybinds == 0 then local Row, Text = OverlayRow(List) Text.Instance.Text = "No keybinds configured" else for _, Data in Library.Keybinds do local Row, Text, Chip, ChipText = OverlayRow(List) local KeyName, Mode = Data.Display() Text.Instance.Text = Data.Name ChipText.Instance.Text = StringFormat("%s", tostring(KeyName or "None") .. (Mode and Mode ~= "Toggle" and (" (" .. Mode .. ")") or "")) end end return Overlay end Library.SettingsPanel = function(self) local Window = self local Overlay, List = CreateOverlay(Window, "Settings") for Name, Value in Library.Theme do local Row, Text, Chip = OverlayRow(List) Text.Instance.Text = Name Chip.Instance.Visible = false Library:CreateColorpicker({ Window = Window, Flag = "Theme" .. Name, Default = Value, Parent = Row, Offset = -4, Callback = function(Color) Library.Theme[Name] = Color Library:ChangeTheme(Name, Color) end }) end do local Row, Text = OverlayRow(List) Text.Instance.Text = "Menu Keybind" local ChipText = Instances:Create("TextLabel", { Parent = Row.Instance, FontFace = Library.Font, Text = StringGSub(Library.MenuKeybind, "Enum.KeyCode%.", ""), Name = "\0", TextSize = 12, TextColor3 = FromRGB(122, 126, 134), BackgroundTransparency = 1, TextXAlignment = Enum.TextXAlignment.Right, AnchorPoint = Vector2New(1, 0.5), Position = UDim2New(1, 0, 0.5, 0), Size = UDim2New(0, 96, 0, 16), BorderSizePixel = 0, ZIndex = 4504, BackgroundColor3 = FromRGB(255, 255, 255) }) ChipText:AddToTheme({ TextColor3 = "SubText" }) end do local Row = Instances:Create("Frame", { Parent = List.Instance, Name = "\0", BackgroundTransparency = 1, Size = UDim2New(1, 0, 0, 32), BorderSizePixel = 0, ZIndex = 4503, BackgroundColor3 = FromRGB(255, 255, 255) }) local Button = Instances:Create("TextButton", { Parent = Row.Instance, FontFace = Library.Font, Text = "Unload UI", TextSize = 13, TextColor3 = FromRGB(255, 255, 255), AutoButtonColor = false, Size = UDim2New(1, 0, 0, 32), BackgroundColor3 = Library.Theme.Accent, BorderSizePixel = 0, ZIndex = 4504, }) Instances:Create("UICorner", { Parent = Button.Instance, CornerRadius = UDimNew(0, 6) }) Button:Connect("MouseButton1Down", function() task.defer(function() Library:Unload() end) end) end return Overlay end end getgenv().Library = Library -- \\ Main Main = { ["Active Highlight"] = nil, ["Active Snapline"] = nil, ["Target Checks"] = { ["Health Check"] = LPH_NO_VIRTUALIZE(function(Target, Bypass) if not Configuration["Target Checks"]["Health Check"] and not Bypass then return true end local Hum = Target:FindFirstChildOfClass("Humanoid") if not Hum then return false end if Hum.Health < Configuration["Target Checks"]["Minimum Health"] then return false end return true end), ["Friend Check"] = LPH_NO_VIRTUALIZE(function(Target, Bypass) if not Configuration["Target Checks"]["Friend Check"] and not Bypass then return true end local Player = Players:GetPlayerFromCharacter(Target) if Player and Client:IsFriendsWith(Player.UserId) then return false end return true end), ["Visible Check"] = LPH_NO_VIRTUALIZE(function(Target, Bypass) if not Configuration["Target Checks"]["Visible Check"] and not Bypass then return true end local cam = getCamera() if not cam then return true end local HRP = Target:FindFirstChild("HumanoidRootPart") if not HRP then return false end local Target_Position = HRP.Position local Origin = cam.CFrame.Position local Parameters = RaycastParams.new() Parameters.FilterType = Enum.RaycastFilterType.Blacklist Parameters.FilterDescendantsInstances = {Character(), cam, Target} Parameters.IgnoreWater = true return not Workspace:Raycast(Origin, Target_Position - Origin, Parameters) end), ["Distance Check"] = LPH_NO_VIRTUALIZE(function(Target, Bypass) if not Configuration["Target Checks"]["Distance Check"] and not Bypass then return true end local HRP_Self = Character() and Character():FindFirstChild("HumanoidRootPart") local HRP_Target = Target:FindFirstChild("HumanoidRootPart") if not HRP_Self or not HRP_Target then return false end if (HRP_Self.Position - HRP_Target.Position).Magnitude > Configuration["Target Checks"]["Maximum Distance"] then return false end return true end), ["Safezone Check"] = LPH_NO_VIRTUALIZE(function(Target, Bypass) if not Configuration["Target Checks"]["Safezone Check"] and not Bypass then return true end local Humanoid = Target:FindFirstChildOfClass("Humanoid") if not Humanoid then return true end if (Humanoid.MaxHealth or 100) >= 999999 then return false end return true end), }, ["Kill Aura Checks"] = { ["Friend Check"] = function(Target) if not Configuration["Kill Aura"]["Friend Check"] then return true end local Player = Players:GetPlayerFromCharacter(Target) if Player and Client:IsFriendsWith(Player.UserId) then return false end return true end, ["Visible Check"] = function(Target) if not Configuration["Kill Aura"]["Visible Check"] then return true end local cam = getCamera() if not cam then return true end local HRP = Target:FindFirstChild("HumanoidRootPart") if not HRP then return false end local Origin = cam.CFrame.Position local Parameters = RaycastParams.new() Parameters.FilterType = Enum.RaycastFilterType.Blacklist Parameters.FilterDescendantsInstances = {Character(), cam, Target} Parameters.IgnoreWater = true return not Workspace:Raycast(Origin, HRP.Position - Origin, Parameters) end, ["Distance Check"] = function(Target) if not Configuration["Kill Aura"]["Distance Check"] then return true end local HRP_Self = Character() and Character():FindFirstChild("HumanoidRootPart") local HRP_Target = Target:FindFirstChild("HumanoidRootPart") if not HRP_Self or not HRP_Target then return false end return (HRP_Self.Position - HRP_Target.Position).Magnitude <= Configuration["Kill Aura"]["Maximum Distance"] end, ["Safezone Check"] = function(Target) if not Configuration["Kill Aura"]["Safezone Check"] then return true end local Humanoid = Target:FindFirstChildOfClass("Humanoid") if not Humanoid then return true end if (Humanoid.MaxHealth or 100) >= 999999 then return false end return true end, }, ["Head Expander Checks"] = { ["Friend Check"] = function(Target) if not Configuration["Head Expander"]["Friend Check"] then return true end local Player = Players:GetPlayerFromCharacter(Target) if Player and Client:IsFriendsWith(Player.UserId) then return false end return true end, ["Visible Check"] = function(Target) if not Configuration["Head Expander"]["Visible Check"] then return true end local cam = getCamera() if not cam then return true end local HRP = Target:FindFirstChild("HumanoidRootPart") if not HRP then return false end local Origin = cam.CFrame.Position local Parameters = RaycastParams.new() Parameters.FilterType = Enum.RaycastFilterType.Blacklist Parameters.FilterDescendantsInstances = {Character(), cam, Target} Parameters.IgnoreWater = true return not Workspace:Raycast(Origin, HRP.Position - Origin, Parameters) end, ["Distance Check"] = function(Target) if not Configuration["Head Expander"]["Distance Check"] then return true end local HRP_Self = Character() and Character():FindFirstChild("HumanoidRootPart") local HRP_Target = Target:FindFirstChild("HumanoidRootPart") if not HRP_Self or not HRP_Target then return false end return (HRP_Self.Position - HRP_Target.Position).Magnitude <= Configuration["Head Expander"]["Maximum Distance"] end, ["Safezone Check"] = function(Target) if not Configuration["Head Expander"]["Safezone Check"] then return true end local Humanoid = Target:FindFirstChildOfClass("Humanoid") if not Humanoid then return true end if (Humanoid.MaxHealth or 100) >= 999999 then return false end return true end, }, ["Selected Target Visuals"] = { ["Create Highlight"] = function(Target, Color, Transparency) if not Target then return end local Highlight = Instance.new("Highlight") Highlight.Name = "nex_Highlight" Highlight.Adornee = Target Highlight.Enabled = true Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop Highlight.FillColor = Color Highlight.OutlineColor = Color3.fromRGB(0, 0, 0) Highlight.FillTransparency = Transparency Highlight.OutlineTransparency = 0 local ok = pcall(function() Highlight.Parent = gethui() end) if not ok or not Highlight.Parent then Highlight.Parent = game:GetService("CoreGui") end Main["Active Highlight"] = Highlight end, ["Create Snapline"] = function(Color, Thickness) local Snapline_Outline = Drawing.new("Line") local Snapline_Main = Drawing.new("Line") Snapline_Outline.Color = Color3.fromRGB(0, 0, 0) Snapline_Main.Color = Color Snapline_Outline.Thickness = Thickness * 2 Snapline_Main.Thickness = Thickness Snapline_Outline.Visible = false Snapline_Main.Visible = false Snapline_Outline.ZIndex = 1 Snapline_Main.ZIndex = 2 Main["Active Snapline"] = {Snapline_Outline, Snapline_Main} end, }, ["Gun Mods"] = { ["Get Tool"] = function() local char = Client.Character if not char then return nil end local tool = char:FindFirstChildWhichIsA("Tool") if not tool then return nil end if not tool:FindFirstChild("firearmClient") then return nil end if not tool:FindFirstChild("Event") then return nil end return tool end, ["Apply"] = function() local Cfg = Configuration["Gun Modifications"] local Tool = Main["Gun Mods"]["Get Tool"]() if not Tool then return end local firearm = Tool:FindFirstChild("firearmClient") if not firearm then return end pcall(function() local fireMode = firearm:FindFirstChild("FireMode") or firearm:FindFirstChild("fireMode") or firearm:FindFirstChild("Mode") if fireMode and typeof(fireMode) == "ValueBase" then if Cfg["Full Auto"] then fireMode.Value = "Auto" end end end) pcall(function() local damage = firearm:FindFirstChild("Damage") or firearm:FindFirstChild("damage") or firearm:FindFirstChild("BaseDamage") if damage and typeof(damage) == "ValueBase" then if Cfg["One Shot Damage"] then damage.Value = 999999 end end end) pcall(function() local recoil = firearm:FindFirstChild("Recoil") or firearm:FindFirstChild("recoil") or firearm:FindFirstChild("RecoilAmount") if recoil and typeof(recoil) == "ValueBase" then if Cfg["No Recoil"] then recoil.Value = recoil.Value * Cfg["Recoil Percentage"] end end end) pcall(function() local spread = firearm:FindFirstChild("Spread") or firearm:FindFirstChild("spread") or firearm:FindFirstChild("SpreadAmount") if spread and typeof(spread) == "ValueBase" then if Cfg["No Spread"] then spread.Value = spread.Value * Cfg["Spread Percentage"] end end end) pcall(function() local multiShot = firearm:FindFirstChild("MultiShot") or firearm:FindFirstChild("multiShot") or firearm:FindFirstChild("BulletCount") if multiShot and typeof(multiShot) == "ValueBase" then multiShot.Value = Cfg["Multi Shot"] and Cfg["Multi Shot Count"] or 1 end end) pcall(function() local fireRate = firearm:FindFirstChild("FireRate") or firearm:FindFirstChild("fireRate") or firearm:FindFirstChild("FireDelay") if fireRate and typeof(fireRate) == "ValueBase" then if Cfg["Rapid Fire"] then fireRate.Value = fireRate.Value * Cfg["Rapid Fire Multiplier"] end end end) end, }, ["Player Adjustments"] = { ["Instant Interact"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Instant Interact"] local WS = Services.Workspace if Main["Player Adjustments"]["InstantInteractConn"] then Main["Player Adjustments"]["InstantInteractConn"]:Disconnect() Main["Player Adjustments"]["InstantInteractConn"] = nil end local function setPrompts(hold) for _, v in ipairs(WS:GetDescendants()) do if v.ClassName == "ProximityPrompt" then v.HoldDuration = hold end end end if Cfg.Enabled then setPrompts(0) Main["Player Adjustments"]["InstantInteractConn"] = WS.DescendantAdded:Connect(function(d) if d.ClassName == "ProximityPrompt" then d.HoldDuration = 0 end end) else setPrompts(0.5) end end), ["Infinite Stamina"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Infinite Stamina"] if Main["Player Adjustments"]["StaminaThread"] then task.cancel(Main["Player Adjustments"]["StaminaThread"]) Main["Player Adjustments"]["StaminaThread"] = nil end local function fire() local events = Client:FindFirstChild("Events") local energy = events and events:FindFirstChild("Energy") if energy then energy:FireServer(false) end end if Cfg.Enabled then Main["Player Adjustments"]["StaminaThread"] = task.spawn(function() while Cfg.Enabled do fire() task.wait(0.2) end end) else fire() end end), ["Infinite Jump"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Infinite Jump"] if not Cfg.Enabled then return end if Main["Player Adjustments"]["JumpConn"] then Main["Player Adjustments"]["JumpConn"]:Disconnect() Main["Player Adjustments"]["JumpConn"] = nil end Main["Player Adjustments"]["JumpConn"] = UserInputService.JumpRequest:Connect(function() if not Cfg.Enabled then return end local hum = Client.Character and Client.Character:FindFirstChildWhichIsA("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end) end), ["Anti Combat"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Anti Combat"] local s = Client:FindFirstChild("Settings") s = s and s:FindFirstChild("Settings") if not s then return end if Main["Player Adjustments"]["AntiCombatThread"] then task.cancel(Main["Player Adjustments"]["AntiCombatThread"]) Main["Player Adjustments"]["AntiCombatThread"] = nil end if Cfg.Enabled then Main["Player Adjustments"]["AntiCombatThread"] = task.spawn(function() while Cfg.Enabled do if s:GetAttribute("Combat") == true then s:SetAttribute("Combat", false) end task.wait(0.01) end end) end end), ["Anti Knockout"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Anti Knockout"] local s = Client:FindFirstChild("Settings") s = s and s:FindFirstChild("Settings") if not s then return end if Main["Player Adjustments"]["AntiKOThread"] then task.cancel(Main["Player Adjustments"]["AntiKOThread"]) Main["Player Adjustments"]["AntiKOThread"] = nil end if Cfg.Enabled then Main["Player Adjustments"]["AntiKOThread"] = task.spawn(function() while Cfg.Enabled do if s:GetAttribute("KnockedOut") == true then s:SetAttribute("KnockedOut", false) end task.wait(0.2) end end) end end), ["Anti Climb"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Anti Climb"] local folder = Services.Workspace:FindFirstChild("GateJumps") folder = folder and folder:FindFirstChild("Jumps") if not folder then return end if Main["Player Adjustments"]["AntiClimbConn"] then Main["Player Adjustments"]["AntiClimbConn"]:Disconnect() Main["Player Adjustments"]["AntiClimbConn"] = nil end local stored = Main["Player Adjustments"]["AntiClimbStored"] or {} if Cfg.Enabled then for _, jump in ipairs(folder:GetDescendants()) do if jump:IsA("BasePart") then for _, child in ipairs(jump:GetChildren()) do if child:IsA("TouchTransmitter") or child.Name == "TouchInterest" then local clone = child:Clone() child:Destroy() table.insert(stored, {part = jump, obj = clone}) end end end end Main["Player Adjustments"]["AntiClimbStored"] = stored Main["Player Adjustments"]["AntiClimbConn"] = folder.DescendantAdded:Connect(function(desc) if desc:IsA("TouchTransmitter") or desc.Name == "TouchInterest" then local clone = desc:Clone() local parent = desc.Parent desc:Destroy() table.insert(stored, {part = parent, obj = clone}) end end) else for _, data in ipairs(stored) do if data.part and data.obj and data.part:IsDescendantOf(Services.Workspace) then data.obj.Parent = data.part end end Main["Player Adjustments"]["AntiClimbStored"] = {} end end), ["Anti On Camera"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Anti On Camera"] local remote = Services.ReplicatedStorage:FindFirstChild("cameraZoneFunction") if Cfg.Enabled then if remote and remote:IsA("RemoteEvent") then remote:FireServer(false, "\xE2\x80\x8E Pr\xE2\x80\x8E 1V\xE2\x80\x8E 4t3\xE2\x80\x8E ") Main["Player Adjustments"]["AntiCamRemote"] = remote remote.Parent = nil end elseif Main["Player Adjustments"]["AntiCamRemote"] then Main["Player Adjustments"]["AntiCamRemote"].Parent = Services.ReplicatedStorage Main["Player Adjustments"]["AntiCamRemote"] = nil end end), ["No Clip"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["No Clip"] if Main["Player Adjustments"]["NoclipConn"] then Main["Player Adjustments"]["NoclipConn"]:Disconnect() Main["Player Adjustments"]["NoclipConn"] = nil end local function setCollide(character, canCollide) for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = canCollide end end end if Cfg.Enabled then if Client.Character then setCollide(Client.Character, false) end Main["Player Adjustments"]["NoclipConn"] = RunService.Stepped:Connect(function() if Client.Character then setCollide(Client.Character, false) end end) else if Client.Character then setCollide(Client.Character, true) end end end), ["Walkspeed"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Walkspeed"] if Main["Player Adjustments"]["SpeedConn"] then Main["Player Adjustments"]["SpeedConn"]:Disconnect() Main["Player Adjustments"]["SpeedConn"] = nil end if not Cfg.Enabled then return end Main["Player Adjustments"]["SpeedConn"] = RunService.RenderStepped:Connect(function() if not Cfg.Enabled then return end local character = Character() local humanoid = character and character:FindFirstChildOfClass("Humanoid") local hrp = character and character:FindFirstChild("HumanoidRootPart") if humanoid and hrp and humanoid.MoveDirection.Magnitude > 0 then hrp.CFrame = hrp.CFrame + humanoid.MoveDirection * Cfg.Value end end) end), ["Fly"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Fly"] if Main["Player Adjustments"]["FlyActive"] then Main["Player Adjustments"]["FlyActive"] = false local waited = 0 while Main["Player Adjustments"]["FlyRunning"] and waited < 0.5 do task.wait(0.05) waited += 0.05 end local oldTracks = Main["Player Adjustments"]["FlyAnimTracks"] if oldTracks then for _, track in ipairs(oldTracks) do pcall(function() if track and track.IsPlaying then track:Stop(0) end end) end Main["Player Adjustments"]["FlyAnimTracks"] = nil end local oldBV = Main["Player Adjustments"]["FlyBV"] local oldBG = Main["Player Adjustments"]["FlyBG"] if oldBV then pcall(function() oldBV:Destroy() end) end if oldBG then pcall(function() oldBG:Destroy() end) end Main["Player Adjustments"]["FlyBV"] = nil Main["Player Adjustments"]["FlyBG"] = nil end if not Cfg.Enabled then return end Main["Player Adjustments"]["FlyActive"] = true Main["Player Adjustments"]["FlyRunning"] = true local Char = Client.Character or Client.CharacterAdded:Wait() local torso = Char:WaitForChild("HumanoidRootPart") local humanoid = Char:WaitForChild("Humanoid") local ctrl = {f = 0, b = 0, l = 0, r = 0} local bg = Instance.new("BodyGyro", torso) bg.P = 9e4 bg.MaxTorque = Vector3.new(9e9, 9e9, 9e9) bg.CFrame = torso.CFrame local bv = Instance.new("BodyVelocity", torso) bv.Velocity = Vector3.new(0, 0.1, 0) bv.MaxForce = Vector3.new(9e9, 9e9, 9e9) Main["Player Adjustments"]["FlyBV"] = bv Main["Player Adjustments"]["FlyBG"] = bg humanoid.PlatformStand = true local animTracks = {} Main["Player Adjustments"]["FlyAnimTracks"] = animTracks local animThread = task.spawn(function() while Main["Player Adjustments"]["FlyActive"] do local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://99870380291426" local track = humanoid:LoadAnimation(anim) track.Looped = true track:Play() table.insert(animTracks, track) local elapsed = 0 while Main["Player Adjustments"]["FlyActive"] and elapsed < 3 do task.wait(0.1) elapsed += 0.1 end if not Main["Player Adjustments"]["FlyActive"] then pcall(function() track:Stop(0) end) break end end for _, track in ipairs(animTracks) do pcall(function() if track and track.IsPlaying then track:Stop(0) end end) end end) local inputBegan = UserInputService.InputBegan:Connect(function(input, gp) if gp then return end local k = input.KeyCode if k == Enum.KeyCode.W then ctrl.f = 1 end if k == Enum.KeyCode.S then ctrl.b = -1 end if k == Enum.KeyCode.A then ctrl.l = -1 end if k == Enum.KeyCode.D then ctrl.r = 1 end end) local inputEnded = UserInputService.InputEnded:Connect(function(input) local k = input.KeyCode if k == Enum.KeyCode.W then ctrl.f = 0 end if k == Enum.KeyCode.S then ctrl.b = 0 end if k == Enum.KeyCode.A then ctrl.l = 0 end if k == Enum.KeyCode.D then ctrl.r = 0 end end) while Main["Player Adjustments"]["FlyActive"] do task.wait() local camCF = Workspace.CurrentCamera.CFrame if (ctrl.l + ctrl.r ~= 0) or (ctrl.f + ctrl.b ~= 0) then bv.Velocity = ( (camCF.LookVector * (ctrl.f + ctrl.b)) + ((camCF * CFrame.new(ctrl.l + ctrl.r, (ctrl.f + ctrl.b) * 0.2, 0).Position - camCF.Position)) ).Unit * Cfg.Speed else bv.Velocity = Vector3.new(0, 0.1, 0) end bg.CFrame = camCF end humanoid.PlatformStand = false for _, track in ipairs(animTracks) do pcall(function() if track and track.IsPlaying then track:Stop(0) end end) end animTracks = {} if animThread then pcall(task.cancel, animThread) end inputBegan:Disconnect() inputEnded:Disconnect() pcall(function() bv:Destroy() end) pcall(function() bg:Destroy() end) Main["Player Adjustments"]["FlyBV"] = nil Main["Player Adjustments"]["FlyBG"] = nil Main["Player Adjustments"]["FlyAnimTracks"] = nil Main["Player Adjustments"]["FlyRunning"] = false end), ["Click Teleport"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Click Teleport"] local mouse = Client:GetMouse() if Main["Player Adjustments"]["ClickTpKey"] then Main["Player Adjustments"]["ClickTpKey"]:Disconnect() Main["Player Adjustments"]["ClickTpKey"] = nil end if not Cfg.Enabled then return end local function teleport() if not mouse.Target then return end local hitPos = mouse.Hit.Position local hrp = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") if not hrp then return end if (hrp.Position - hitPos).Magnitude > Cfg.Distance then return end hrp.CFrame = CFrame.new(hitPos.X, hitPos.Y + 3, hitPos.Z) end Main["Player Adjustments"]["ClickTpKey"] = UserInputService.InputBegan:Connect(function(input, gp) if gp then return end local bind = Cfg.Keybind local bindName = typeof(bind) == "EnumItem" and bind.Name or tostring(bind):gsub("Enum.KeyCode.", "") if input.KeyCode.Name == bindName then teleport() end end) end), ["Spinbot"] = LPH_JIT_MAX(function() local Cfg = Configuration["Player Adjustments"]["Spinbot"] if Main["Player Adjustments"]["SpinConn"] then Main["Player Adjustments"]["SpinConn"]:Disconnect() Main["Player Adjustments"]["SpinConn"] = nil end if not Cfg.Enabled then return end Main["Player Adjustments"]["SpinConn"] = RunService.RenderStepped:Connect(function() if not Cfg.Enabled then return end local char = Client.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(Cfg.Speed), 0) end end) end), }, ["Locations"] = { ["Update Location List"] = function() local list = {} local Locations = ReplicatedStorage:FindFirstChild("Locations") if not Locations then return list end for _, loc in pairs(Locations:GetChildren()) do table.insert(list, loc.Name) end table.sort(list) return list end, ["Get Location Part"] = function(name) if not name or name == "" then return nil end local Locations = ReplicatedStorage:FindFirstChild("Locations") if not Locations then return nil end local loc = Locations:FindFirstChild(name) if not loc then return nil end if loc:IsA("BasePart") then return loc elseif loc:IsA("Model") then return loc.PrimaryPart or loc:FindFirstChildWhichIsA("BasePart") elseif loc:IsA("Folder") then return loc:FindFirstChildWhichIsA("BasePart") end return nil end, ["Teleport"] = function(name) local part = Main["Locations"]["Get Location Part"](name) if not part then return end local hrp = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") if not hrp then return end hrp.CFrame = part.CFrame + Vector3.new(0, 3, 0) end, }, ["Teleports"] = { ["Get Part From"] = function(container, name) if not container or not name or name == "" then return nil end local obj = container:FindFirstChild(name) if not obj then return nil end if obj:IsA("BasePart") then return obj elseif obj:IsA("Model") then return obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart") elseif obj:IsA("Folder") then return obj:FindFirstChildWhichIsA("BasePart") end return nil end, ["TeleportTo"] = function(part) if not part then return end local hrp = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") if not hrp then return end hrp.CFrame = part.CFrame + Vector3.new(0, 3, 0) end, ["ListChildren"] = function(container) local list = {} if not container then return list end for _, v in pairs(container:GetChildren()) do if v.Name ~= "productButton" and not v:IsA("UIListLayout") and not v:IsA("UIGridLayout") then table.insert(list, v.Name) end end table.sort(list) return list end, }, ["Cars"] = { ["Get Container"] = function() return Workspace:FindFirstChild("Cars") or Workspace:FindFirstChild("CarFolder") or Workspace:FindFirstChild("Vehicles") end, ["Update List"] = function() return Main["Teleports"]["ListChildren"](Main["Cars"]["Get Container"]()) end, ["Teleport"] = function(name) local container = Main["Cars"]["Get Container"]() local part = Main["Teleports"]["Get Part From"](container, name) Main["Teleports"]["TeleportTo"](part) end, }, ["Houses"] = { ["Get Container"] = function() return Workspace:FindFirstChild("PlayerHouses") end, ["Update List"] = function() return Main["Teleports"]["ListChildren"](Main["Houses"]["Get Container"]()) end, ["Teleport"] = function(name) local container = Main["Houses"]["Get Container"]() local part = Main["Teleports"]["Get Part From"](container, name) Main["Teleports"]["TeleportTo"](part) end, }, ["ATMs"] = { ["Get Container"] = function() local pf = Workspace:FindFirstChild("PartFolder") return pf and pf:FindFirstChild("Atms") end, ["Update List"] = function() return Main["Teleports"]["ListChildren"](Main["ATMs"]["Get Container"]()) end, ["Teleport"] = function(name) local container = Main["ATMs"]["Get Container"]() local part = Main["Teleports"]["Get Part From"](container, name) Main["Teleports"]["TeleportTo"](part) end, }, ["Gun Shop"] = { ["Get Stock Frame"] = function() local gui = Client:FindFirstChild("PlayerGui") gui = gui and gui:FindFirstChild("MainGUI") local tac = gui and gui:FindFirstChild("freedomTacticalFrame") local stock = tac and tac:FindFirstChild("stockFrame") return stock and stock:FindFirstChild("Content1") end, ["Get Purchase Button"] = function() local gui = Client:FindFirstChild("PlayerGui") gui = gui and gui:FindFirstChild("MainGUI") local tac = gui and gui:FindFirstChild("freedomTacticalFrame") local product = tac and tac:FindFirstChild("productFrame") local content = product and product:FindFirstChild("contentFrame") return content and content:FindFirstChild("purchaseButton") end, ["Update List"] = function() local content = Main["Gun Shop"]["Get Stock Frame"]() return Main["Teleports"]["ListChildren"](content) end, ["Buy"] = function(gunName) if not gunName or gunName == "" then return false end local content = Main["Gun Shop"]["Get Stock Frame"]() if not content then return false, "Content1 not found (open the gun shop first)" end local item = content:FindFirstChild(gunName) if not item then return false, "Gun '" .. gunName .. "' not found" end local buy = Main["Gun Shop"]["Get Purchase Button"]() if not buy then return false, "purchaseButton not found" end if replicatesignal then replicatesignal(item.MouseButton1Down, 0, 0) task.wait(0.15) replicatesignal(buy.MouseButton1Down, 0, 0) else return false, "replicatesignal not supported by executor" end return true end, }, ["Ammo Shop"] = { ["Get Stock Frame"] = function() local gui = Client:FindFirstChild("PlayerGui") gui = gui and gui:FindFirstChild("MainGUI") local tac = gui and gui:FindFirstChild("freedomTacticalFrame") local stock = tac and tac:FindFirstChild("stockFrame") return stock and stock:FindFirstChild("Content2") end, ["Get Purchase Button"] = function() local gui = Client:FindFirstChild("PlayerGui") gui = gui and gui:FindFirstChild("MainGUI") local tac = gui and gui:FindFirstChild("freedomTacticalFrame") local product = tac and tac:FindFirstChild("productFrame") local content = product and product:FindFirstChild("contentFrame") return content and content:FindFirstChild("purchaseButton") end, ["Update List"] = function() local content = Main["Ammo Shop"]["Get Stock Frame"]() return Main["Teleports"]["ListChildren"](content) end, ["Buy"] = function(ammoName) if not ammoName or ammoName == "" then return false end local content = Main["Ammo Shop"]["Get Stock Frame"]() if not content then return false, "Content2 not found (open the gun shop first)" end local item = content:FindFirstChild(ammoName) if not item then return false, "Ammo '" .. ammoName .. "' not found" end local buy = Main["Ammo Shop"]["Get Purchase Button"]() if not buy then return false, "purchaseButton not found" end if replicatesignal then replicatesignal(item.MouseButton1Down, 0, 0) task.wait(0.15) replicatesignal(buy.MouseButton1Down, 0, 0) else return false, "replicatesignal not supported by executor" end return true end, }, ["Target Menu"] = { ["Get Selected"] = function() return Configuration["Target Menu"]["Selected Player"] end, ["Get Selected Character"] = function() local P = Configuration["Target Menu"]["Selected Player"] if P and P.Character and P.Character.Parent then return P.Character end return nil end, ["Update Player List"] = function() local list = {} for _, p in pairs(Players:GetPlayers()) do table.insert(list, p.Name) end table.sort(list) return list end, ["Find Player"] = function(name) if not name or name == "" then Configuration["Target Menu"]["Selected Player"] = nil return false end for _, p in pairs(Players:GetPlayers()) do if p.Name == name then Configuration["Target Menu"]["Selected Player"] = p return true end end Configuration["Target Menu"]["Selected Player"] = nil return false end, ["Get Status"] = function(plr) if not plr or not plr.Character then return "Unknown" end local hum = plr.Character:FindFirstChildOfClass("Humanoid") if not hum then return "Unknown" end if hum.Health <= 0 then return "Dead" end local state = hum:GetState() local map = { [Enum.HumanoidStateType.Running] = "Walking", [Enum.HumanoidStateType.RunningNoPhysics] = "Walking", [Enum.HumanoidStateType.Jumping] = "Jumping", [Enum.HumanoidStateType.Freefall] = "Falling", [Enum.HumanoidStateType.Swimming] = "Swimming", [Enum.HumanoidStateType.Climbing] = "Climbing", [Enum.HumanoidStateType.Landed] = "Idle", [Enum.HumanoidStateType.Ragdoll] = "Ragdoll", [Enum.HumanoidStateType.GettingUp] = "Getting Up", [Enum.HumanoidStateType.FallingDown] = "Falling Down", [Enum.HumanoidStateType.PlatformStanding] = "Platform", } return map[state] or tostring(state):gsub("Enum.HumanoidStateType.", "") end, ["Get Held Item"] = function(plr) if not plr or not plr.Character then return "None" end local tool = plr.Character:FindFirstChildWhichIsA("Tool") return tool and tool.Name or "None" end, ["Get Currency"] = function(plr) if not plr then return "N/A" end local settings = plr:FindFirstChild("Settings") local currency = settings and settings:FindFirstChild("Currency") if not currency then return "N/A" end local parts = {} for name, value in pairs(currency:GetAttributes()) do table.insert(parts, name .. ": " .. tostring(value)) end return #parts > 0 and table.concat(parts, " | ") or "None" end, ["Get Abilities"] = function(plr) if not plr then return "N/A" end local settings = plr:FindFirstChild("Settings") local abilities = settings and settings:FindFirstChild("Abilities") if not abilities then return "N/A" end local parts = {} for name, value in pairs(abilities:GetAttributes()) do table.insert(parts, name .. ": " .. tostring(value)) end return #parts > 0 and table.concat(parts, ", ") or "None" end, ["Get Attributes"] = function(plr) if not plr then return "N/A" end local settings = plr:FindFirstChild("Settings") local attrs = settings and settings:FindFirstChild("Attributes") if not attrs then return "N/A" end local parts = {} for name, value in pairs(attrs:GetAttributes()) do table.insert(parts, name .. ": " .. tostring(value)) end return #parts > 0 and table.concat(parts, ", ") or "None" end, ["Fetch Inventory"] = function() local Mode = Configuration["Inventory Searcher"]["Searching Mode"] or "Selected Player" local Key = Configuration["Inventory Searcher"]["Search Key Word"] or "" local Table = {} local function Passes(Name) if #Key < 1 then return true end return Name:lower():find(Key:lower(), 1, true) ~= nil end if Mode == "Selected Player" then local Selected = Main["Target Menu"]["Get Selected"]() if not Selected then return Table end local Backpack = Selected:FindFirstChild("Backpack") if not Backpack then return Table end for _, Object in ipairs(Backpack:GetChildren()) do if Passes(Object.Name) then table.insert(Table, Object.Name) end end else for _, Player in ipairs(Players:GetPlayers()) do local Backpack = Player:FindFirstChild("Backpack") if Backpack then for _, Object in ipairs(Backpack:GetChildren()) do if Passes(Object.Name) then table.insert(Table, string.format("%s (@%s)", Object.Name, Player.Name)) end end end end end table.sort(Table) return Table end, ["Spectate"] = function(enable) local Selected = Main["Target Menu"]["Get Selected"]() if Main["Target Menu"]["SpectateConn"] then Main["Target Menu"]["SpectateConn"]:Disconnect() Main["Target Menu"]["SpectateConn"] = nil end if not enable then Workspace.CurrentCamera.CameraType = Enum.CameraType.Custom return end if not Selected then return end Workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable Main["Target Menu"]["SpectateConn"] = RunService.RenderStepped:Connect(function() if not Selected or not Selected.Parent or not Selected.Character then return end local hrp = Selected.Character:FindFirstChild("HumanoidRootPart") local torso = Selected.Character:FindFirstChild("Torso") or Selected.Character:FindFirstChild("UpperTorso") local head = Selected.Character:FindFirstChild("Head") if hrp then Workspace.CurrentCamera.CFrame = CFrame.new(hrp.Position + hrp.CFrame.LookVector * -10 + Vector3.new(0, 3, 0), hrp.Position) elseif torso then Workspace.CurrentCamera.CFrame = CFrame.new(torso.Position + Vector3.new(-10, 3, 0), torso.Position) elseif head then Workspace.CurrentCamera.CFrame = CFrame.new(head.Position + Vector3.new(-10, 3, 0), head.Position) end end) end, ["Teleport"] = function() local Selected = Main["Target Menu"]["Get Selected"]() if not Selected or not Selected.Parent or not Selected.Character then return end local localHRP = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") if not localHRP then return end local targetHRP = Selected.Character:FindFirstChild("HumanoidRootPart") if targetHRP then localHRP.CFrame = targetHRP.CFrame + Vector3.new(2, 0, 0) end end, ["FireAtTarget"] = function(plr) if not plr or plr == Client then return end if not plr.Character then return end if plr.Character:FindFirstChild("shieldIcon") then return end local Humanoid = plr.Character:FindFirstChildOfClass("Humanoid") if not Humanoid or Humanoid.Health <= 0 then return end local Target_Part = plr.Character:FindFirstChild("Head") or plr.Character:FindFirstChild("HumanoidRootPart") if not Target_Part then return end local Char_Local = Client.Character if not Char_Local then return end local tool = Char_Local:FindFirstChildWhichIsA("Tool") if not tool or not tool:FindFirstChild("firearmClient") or not tool:FindFirstChild("Event") then return end local Origin = Char_Local:FindFirstChild("Head") and Char_Local.Head.Position or Char_Local.HumanoidRootPart.Position local Direction = (Target_Part.Position - Origin).Unit pcall(function() tool.Event:FireServer("fire", Target_Part, Origin, Direction) end) end, ["Kill Once"] = function() local Selected = Main["Target Menu"]["Get Selected"]() if Selected then Main["Target Menu"]["FireAtTarget"](Selected) end end, ["SetAutoKill"] = function(enable) Configuration["Target Menu"]["Auto Kill"] = enable if Configuration["Target Menu"]["Kill"] then task.cancel(Configuration["Target Menu"]["Kill"]) Configuration["Target Menu"]["Kill"] = nil end if enable then Configuration["Target Menu"]["Kill"] = task.spawn(function() while Configuration["Target Menu"]["Auto Kill"] do local Selected = Main["Target Menu"]["Get Selected"]() if Selected then Main["Target Menu"]["FireAtTarget"](Selected) end task.wait(Configuration["Kill Aura"]["Delay"]) end end) end end, ["BringPlayerToggle"] = function(enable) Configuration["Target Menu"]["Bring"] = enable if not enable then return end task.spawn(function() while Configuration["Target Menu"]["Bring"] do local S = Main["Target Menu"]["Get Selected"]() if S and S.Parent and S.Character then local me = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") local t = S.Character:FindFirstChild("HumanoidRootPart") if me and t then t.CFrame = me.CFrame + me.CFrame.LookVector * 3 end end task.wait(0.05) end end) end, ["TeleportToCar"] = function() local Selected = Main["Target Menu"]["Get Selected"]() if not Selected or not Selected.Parent then return end local myHRP = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") if not myHRP then return end local car = nil local char = Selected.Character if char then local hum = char:FindFirstChildOfClass("Humanoid") if hum and hum.SeatPart then car = hum.SeatPart local parent = car for _ = 1, 4 do if parent.Parent and parent.Parent ~= Workspace then parent = parent.Parent else break end if parent:FindFirstChildWhichIsA("VehicleSeat") or parent:FindFirstChildWhichIsA("Seat") then car = parent break end end end end if not car then local containers = { Workspace:FindFirstChild("Cars"), Workspace:FindFirstChild("CarFolder"), Workspace:FindFirstChild("Vehicles"), } for _, c in ipairs(containers) do if c then for _, v in ipairs(c:GetDescendants()) do if v:IsA("BasePart") and (v.Name:find(Selected.Name, 1, true) or v:GetAttribute("Owner") == Selected.Name) then car = v break end end end if car then break end end end if not car then return end local part = car:IsA("BasePart") and car or car:FindFirstChildWhichIsA("BasePart") if part then myHRP.CFrame = part.CFrame + Vector3.new(0, 3, 0) end end, ["TeleportToHouse"] = function() local Selected = Main["Target Menu"]["Get Selected"]() if not Selected or not Selected.Parent then return end local myHRP = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") if not myHRP then return end local houses = Workspace:FindFirstChild("PlayerHouses") if not houses then Library:Notification("Target", "PlayerHouses folder not found", 3) return end local house = houses:FindFirstChild(Selected.Name) or houses:FindFirstChild(Selected.DisplayName) if not house then for _, v in ipairs(houses:GetDescendants()) do if v:IsA("BasePart") and (v:GetAttribute("Owner") == Selected.Name or v:GetAttribute("Player") == Selected.Name or v.Name:find(Selected.Name, 1, true)) then house = v break end end end if not house then Library:Notification("Target", "Couldn't find " .. Selected.Name .. "'s house", 3) return end local part = house:IsA("BasePart") and house or house:FindFirstChildWhichIsA("BasePart") if part then myHRP.CFrame = part.CFrame + Vector3.new(0, 3, 0) end end, }, } local Game_MT = getrawmetatable(game) -- \\ ESP Engine Esp = { Table = nil, Library = nil, TahomaBold = nil, Tahoma = nil, SmallestPixel = nil, ProggyClean = nil } do local GetService = setmetatable({}, { __index = function(_, Name) return game:GetService(Name); end; }) local Workspace = GetService["Workspace"] local Players = GetService["Players"] local RunService = GetService["RunService"] local HttpService = GetService["HttpService"] local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local WorldToViewportPoint = Camera.WorldToViewportPoint local FindFirstChildOfClass = game.FindFirstChildOfClass local FindFirstChild = game.FindFirstChild local NewVector3, NewVector2, Dim, Dim2, DimOffset = Vector3.new, Vector2.new, UDim.new, UDim2.new, UDim2.fromOffset local NumSeq = NumberSequence.new; local NumKey = NumberSequenceKeypoint.new; local Format, Spawn, Clear, Floor, Clamp, Abs, Tan, Rad, Huge, Remove = string.format, task.spawn, table.clear, math.floor, math.clamp, math.abs, math.tan, math.rad, math.huge, table.remove; local ZeroVector3, CameraPosition, CachedFocalLength, ViewPortY, Updates = NewVector3(0,0,0), NewVector3(0,0,0), 0, 0, 0; local function CameraCache() ViewPortY = Camera.ViewportSize.Y; CachedFocalLength = ViewPortY / (2 * Tan(Rad(Camera.FieldOfView) * 0.5)); end CameraCache(); Camera:GetPropertyChangedSignal("FieldOfView"):Connect(CameraCache); Camera:GetPropertyChangedSignal("ViewportSize"):Connect(CameraCache); local EspLib = { ['Directory'] = 'Esp', ['Cache'] = {}, ['Holder'] = nil, ['Threads'] = {}, ['Connections'] = {}, ['Table'] = { ['Enabled'] = false, ['ShowLocalPlayer'] = false, ['Distance'] = 1000, ['RefreshRate'] = 1000, ['Checks'] = { ['Health Check'] = false, ['Minimum Health'] = 5, ['Friend Check'] = false, ['Visible Check'] = false, ['Distance Check'] = false, ['Maximum Distance'] = 350, ['Safezone Check'] = false, }, ['Boxes'] = { ['Enabled'] = true, ['DynamicBoxes'] = true, ['Type'] = "2D", ['Rotation'] = 90, ['Bounding Box'] = { ['Enabled'] = true, ['IncludeAcsessories'] = false, ['BoxX'] = 0, ['BoxY'] = 0, }, ['Box Glow'] = { ['Enabled'] = true, ['Top'] = Color3.fromRGB(255, 255, 255), ['Bot'] = Color3.fromRGB(255, 255, 255), ['Transparency'] = {0.75, 0.75}, }, ['Gradients'] = { ['Top'] = Color3.fromRGB(255, 255, 255), ['Bot'] = Color3.fromRGB(255, 255, 255), }, ['Filled'] = { ['Enabled'] = true, ['Top'] = Color3.fromRGB(255, 255, 255), ['Bot'] = Color3.fromRGB(255, 255, 255), ['Transparency'] = {1, 0.65}, }, }, ['Bars'] = { ['Health Bar'] = { ['Enabled'] = true, ['Top'] = Color3.fromRGB(0, 255, 0), ['Mid'] = Color3.fromRGB(255, 170, 0), ['Bot'] = Color3.fromRGB(255, 0, 0), }, }, ['Texts'] = { ['Name'] = { ['Enabled'] = true, ['Color'] = Color3.fromRGB(255, 255, 255) }, ['Distance'] = { ['Enabled'] = true, ['Color'] = Color3.fromRGB(255, 255, 255) }, ['Weapon'] = { ['Enabled'] = true, ['Color'] = Color3.fromRGB(255, 255, 255) }, }, ['Flags'] = { ['Walking'] = { ['Enabled'] = true, ['Color'] = Color3.fromRGB(255, 255, 255), ['Text'] = "Walking" }, ['Jumping'] = { ['Enabled'] = true, ['Color'] = Color3.fromRGB(255, 255, 255), ['Text'] = "Jumping" }, ['Swimming'] = { ['Enabled'] = true, ['Color'] = Color3.fromRGB(255, 255, 255), ['Text'] = "Swimming" }, } } } local Table = EspLib['Table']; local C = Table; EspLib.TahomaBold = Font.fromEnum(Enum.Font.GothamBold) EspLib.Tahoma = Font.fromEnum(Enum.Font.Gotham) EspLib.SmallestPixel = Font.fromEnum(Enum.Font.Code) EspLib.ProggyClean = Font.fromEnum(Enum.Font.Code) do local Fonts = {} local function FontsRegister(Name, Weight, Style, Asset) if not isfile(Asset.Id) then writefile(Asset.Id, Asset.Font) end if isfile(Name .. ".font") then delfile(Name .. ".font") end local Info = { name = Name, faces = { { name = "Normal", weight = Weight, style = Style, assetId = getcustomasset(Asset.Id) }, }, } writefile(Name .. ".font", HttpService:JSONEncode(Info)) return getcustomasset(Name .. ".font") end; local ok = pcall(function() Fonts.Tahoma = FontsRegister("Tahoma", 400, "Normal", { Id = "Tahoma.ttf", Font = game:HttpGet("https://github.com/i77lhm/storage/raw/refs/heads/main/fonts/fs-tahoma-8px.ttf"), }) Fonts.XPTahoma = FontsRegister("XPTahoma", 400, "Normal", { Id = "Tahoma8PTBOLD.ttf", Font = game:HttpGet("https://github.com/sametexe001/luas/raw/refs/heads/main/fonts/TAHOMA-8PT-BOLD-WINDOWS-XP.TTF"), }) Fonts.SmallestPixel = FontsRegister("SmallestPixel", 400, "Normal", { Id = "smallest_pixel-7.ttf", Font = game:HttpGet("https://raw.githubusercontent.com/sametexe001/luas/main/smallest_pixel-7.ttf") }) Fonts.ProggyClean = FontsRegister("ProggyClean", 400, "Normal", { Id = "ProggyClean.ttf", Font = game:HttpGet("https://github.com/i77lhm/storage/raw/main/fonts/ProggyClean.ttf"), }) EspLib.TahomaBold = Font.new(Fonts.XPTahoma, Enum.FontWeight.Regular, Enum.FontStyle.Normal); EspLib.ProggyClean = Font.new(Fonts.ProggyClean, Enum.FontWeight.Regular, Enum.FontStyle.Normal); EspLib.Tahoma = Font.new(Fonts.Tahoma, Enum.FontWeight.Regular, Enum.FontStyle.Normal); EspLib.SmallestPixel = Font.new(Fonts.SmallestPixel, Enum.FontWeight.Regular, Enum.FontStyle.Normal); end) end EspLib.__index = EspLib; function EspLib:CreateObjects(Name, Prop) local New = Instance.new(Name); for Property, Value in Prop or {} do New[Property] = Value; end; return New; end function EspLib:CreateThreads(Name, Signal, Callback) local Connection = Signal:Connect(Callback); self.Threads[Name] = Connection; return Connection; end EspLib.Holder = EspLib:CreateObjects("ScreenGui", { Name = "\n", Parent = gethui(), ScreenInsets = Enum.ScreenInsets.DeviceSafeInsets, ZIndexBehavior = Enum.ZIndexBehavior.Global, ResetOnSpawn = false, DisplayOrder = 10000, IgnoreGuiInset = true, }) function EspLib:Passes(Target) local Checks = Table['Checks'] if not Target then return false end local Player = Players:GetPlayerFromCharacter(Target) if Checks['Health Check'] then local Hum = Target:FindFirstChildOfClass('Humanoid') if not Hum then return false end if Hum.Health < Checks['Minimum Health'] then return false end end if Checks['Friend Check'] and Player then if LocalPlayer:IsFriendsWith(Player.UserId) then return false end end if Checks['Visible Check'] then local HRP = Target:FindFirstChild('HumanoidRootPart') local LocalChar = LocalPlayer.Character if Camera and HRP then local Params = RaycastParams.new() Params.FilterType = Enum.RaycastFilterType.Exclude Params.FilterDescendantsInstances = {LocalChar, Camera, Target} Params.IgnoreWater = true local hit = Workspace:Raycast(Camera.CFrame.Position, HRP.Position - Camera.CFrame.Position, Params) if hit then return false end end end if Checks['Distance Check'] then local LocalChar = LocalPlayer.Character local selfHRP = LocalChar and LocalChar:FindFirstChild('HumanoidRootPart') local tHRP = Target:FindFirstChild('HumanoidRootPart') if not selfHRP or not tHRP then return false end if (selfHRP.Position - tHRP.Position).Magnitude > Checks['Maximum Distance'] then return false end end if Checks['Safezone Check'] then local Hum = Target:FindFirstChildOfClass('Humanoid') if Hum and (Hum.MaxHealth or 100) >= 999999 then return false end end return true end function EspLib:InitEsp(Data) local Objects = Data.Objects do Objects["TargetHolder"] = self:CreateObjects("Frame", { Parent = self.Holder, Visible = false, BackgroundTransparency = 1, Position = Dim2(0, 0, 0, 0), Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), ClipsDescendants = false, }) Objects["TopHolder"] = self:CreateObjects("Frame", { Parent = Objects["TargetHolder"], AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, AnchorPoint = NewVector2(0, 1), Position = Dim2(0, -2, 0, -5), Size = Dim2(1, 4, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["BottomHolder"] = self:CreateObjects("Frame", { Parent = Objects["TargetHolder"], AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, Position = Dim2(0, -2, 1, 3), Size = Dim2(1, 4, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["LeftHolder"] = self:CreateObjects("Frame", { Parent = Objects["TargetHolder"], AutomaticSize = Enum.AutomaticSize.X, BackgroundTransparency = 1, AnchorPoint = NewVector2(1, 0), Position = Dim2(0, -5, 0, -2), Size = Dim2(0, 0, 1, 4), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["RightHolder"] = self:CreateObjects("Frame", { Parent = Objects["TargetHolder"], AutomaticSize = Enum.AutomaticSize.X, BackgroundTransparency = 1, Position = Dim2(1, 5, 0, -2), Size = Dim2(0, 0, 1, 4), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) end do Objects["TopTextHolder"] = self:CreateObjects("Frame", { Parent = Objects["TopHolder"], AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, Size = Dim2(1, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["BottomTextHolder"] = self:CreateObjects("Frame", { Parent = Objects["BottomHolder"], LayoutOrder = 2, AutomaticSize = Enum.AutomaticSize.Y, BackgroundTransparency = 1, Size = Dim2(1, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["LeftTextHolder"] = self:CreateObjects("Frame", { Parent = Objects["LeftHolder"], AutomaticSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, Size = Dim2(1, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["RightTextHolder"] = self:CreateObjects("Frame", { Parent = Objects["RightHolder"], LayoutOrder = 2, AutomaticSize = Enum.AutomaticSize.XY, BackgroundTransparency = 1, Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) end do Objects["LeftBarHolder"] = self:CreateObjects("Frame", { Parent = Objects["LeftHolder"], AutomaticSize = Enum.AutomaticSize.X, Visible = false, BackgroundTransparency = 1, Size = Dim2(0, 0, 1, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["BottomBarHolder"] = self:CreateObjects("Frame", { Parent = Objects["BottomHolder"], LayoutOrder = 0, AutomaticSize = Enum.AutomaticSize.Y, Visible = false, BackgroundTransparency = 1, Size = Dim2(1, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) end do self:CreateObjects("UIListLayout", { Parent = Objects["TopTextHolder"], VerticalAlignment = Enum.VerticalAlignment.Bottom, HorizontalAlignment = Enum.HorizontalAlignment.Center, Padding = Dim(0, 1), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["BottomTextHolder"], HorizontalAlignment = Enum.HorizontalAlignment.Center, Padding = Dim(0, -1), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["LeftTextHolder"], HorizontalAlignment = Enum.HorizontalAlignment.Right, Padding = Dim(0, 0), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["RightTextHolder"], HorizontalAlignment = Enum.HorizontalAlignment.Left, Padding = Dim(0, 0), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["LeftBarHolder"], FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, Padding = Dim(0, 5), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["BottomBarHolder"], HorizontalAlignment = Enum.HorizontalAlignment.Center, Padding = Dim(0, 5), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["TopHolder"], VerticalAlignment = Enum.VerticalAlignment.Bottom, Padding = Dim(0, 1), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["BottomHolder"], Padding = Dim(0, 1), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["LeftHolder"], FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Left, Padding = Dim(0, 1), SortOrder = Enum.SortOrder.LayoutOrder }) self:CreateObjects("UIListLayout", { Parent = Objects["RightHolder"], FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Left, Padding = Dim(0, 1), SortOrder = Enum.SortOrder.LayoutOrder }) end do self:CreateObjects("UIPadding", { Parent = Objects["BottomTextHolder"], PaddingTop = Dim(0, -1) }) self:CreateObjects("UIPadding", { Parent = Objects["LeftTextHolder"], PaddingTop = Dim(0, -3) }) self:CreateObjects("UIPadding", { Parent = Objects["RightTextHolder"], PaddingTop = Dim(0, -3) }) self:CreateObjects("UIPadding", { Parent = Objects["BottomBarHolder"], PaddingTop = Dim(0, 2) }) self:CreateObjects("UIPadding", { Parent = Objects["LeftHolder"], PaddingRight = Dim(0, 1) }) end do Objects["BoxGlow"] = self:CreateObjects("ImageLabel", { Parent = Objects["TargetHolder"], Image = "rbxassetid://110204605000367", ScaleType = Enum.ScaleType.Slice, SliceCenter = Rect.new(NewVector2(21, 21), NewVector2(79, 79)), AutomaticSize = Enum.AutomaticSize.XY, ImageTransparency = 0.65, ResampleMode = Enum.ResamplerMode.Pixelated, BackgroundTransparency = 1, Position = Dim2(0, -21, 0, -21), Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["BoxGlowGradient"] = self:CreateObjects("UIGradient", { Parent = Objects["BoxGlow"], Rotation = 90, Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)), }), Transparency = NumSeq({NumKey(0, 0), NumKey(1, 0)}), }) self:CreateObjects("UIPadding", { Parent = Objects["BoxGlow"], PaddingTop = Dim(0, 21), PaddingBottom = Dim(0, 20), PaddingLeft = Dim(0, 21), PaddingRight = Dim(0, 20) }) Objects["BoxOutlineHolder"] = self:CreateObjects("Frame", { Parent = Objects["BoxGlow"], Visible = false, BackgroundTransparency = 1, Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["BoxOutline"] = self:CreateObjects("UIStroke", { Parent = Objects["BoxOutlineHolder"], Thickness = 3, LineJoinMode = Enum.LineJoinMode.Miter }) Objects["BoxOutlineGradient"] = self:CreateObjects("UIGradient", { Parent = Objects["BoxOutline"], Rotation = 90, Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 0, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)), }), }) Objects["BoxInlineHolder"] = self:CreateObjects("Frame", { Parent = Objects["BoxGlow"], Visible = false, BackgroundTransparency = 1, Position = Dim2(0, -1, 0, -1), Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["BoxInline"] = self:CreateObjects("UIStroke", { Parent = Objects["BoxInlineHolder"], Color = Color3.fromRGB(255, 255, 255), LineJoinMode = Enum.LineJoinMode.Miter }) Objects["BoxInlineGradient"] = self:CreateObjects("UIGradient", { Parent = Objects["BoxInline"], Rotation = 90 }) Objects["BoxFill"] = self:CreateObjects("Frame", { Parent = Objects["BoxGlow"], Visible = false, BackgroundTransparency = 0, Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) Objects["BoxFillGradient"] = self:CreateObjects("UIGradient", { Parent = Objects["BoxFill"], Rotation = 90, Transparency = NumSeq({NumKey(0, 1), NumKey(1, 1)}), }) Objects["CornerHolder"] = self:CreateObjects("Frame", { Parent = Objects["BoxGlow"], Visible = false, BackgroundTransparency = 1, Position = Dim2(0, -1, 0, -1), Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) for i = 1, 8 do Objects["Line_" .. i] = self:CreateObjects("Frame", { Parent = Objects["CornerHolder"], Visible = false, Size = Dim2(0, 0, 0, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), }) self:CreateObjects("UIStroke", { Parent = Objects["Line_" .. i], Thickness = 1, LineJoinMode = Enum.LineJoinMode.Miter }) end end do Objects["HealthBarOutline"] = self:CreateObjects("Frame", { Parent = Objects["LeftBarHolder"], ZIndex = 5, LayoutOrder = 0, Visible = false, Size = Dim2(0, 1, 1, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(0, 0, 0), ClipsDescendants = false, }) self:CreateObjects("UIStroke", { Parent = Objects["HealthBarOutline"], Thickness = 1, LineJoinMode = Enum.LineJoinMode.Miter }) Objects["HealthBar"] = self:CreateObjects("Frame", { Parent = Objects["HealthBarOutline"], ZIndex = 6, AnchorPoint = NewVector2(0, 1), Position = Dim2(0, 0, 1, 0), Size = Dim2(1, 0, 1, 0), BorderSizePixel = 0, BackgroundColor3 = Color3.fromRGB(255, 255, 255), ClipsDescendants = true, }) Objects["HealthBarGradient"] = self:CreateObjects("UIGradient", { Parent = Objects["HealthBar"], Rotation = 90, Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Table['Bars']['Health Bar']['Top']), ColorSequenceKeypoint.new(0.5, Table['Bars']['Health Bar']['Mid']), ColorSequenceKeypoint.new(1, Table['Bars']['Health Bar']['Bot']), }), }) Objects["HealthBarText"] = self:CreateObjects("TextLabel", { Parent = Objects["HealthBarOutline"], FontFace = EspLib.SmallestPixel, TextSize = 9, ZIndex = 10, TextColor3 = Color3.fromRGB(255, 255, 255), Text = "", TextXAlignment = Enum.TextXAlignment.Center, AnchorPoint = NewVector2(0.5, 0.5), Position = Dim2(0.5, 0, 1, 0), BorderSizePixel = 0, Visible = false, BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.XY, Size = Dim2(0, 0, 0, 0), }) self:CreateObjects("UIStroke", { Parent = Objects["HealthBarText"], Color = Color3.fromRGB(0, 0, 0), LineJoinMode = Enum.LineJoinMode.Miter }) end do Objects["TargetName"] = self:CreateObjects("TextLabel", { Parent = Objects["TopTextHolder"], FontFace = EspLib.TahomaBold, TextSize = 12, LayoutOrder = 2, TextColor3 = Table['Texts']['Name']['Color'], Text = "", TextXAlignment = Enum.TextXAlignment.Center, BorderSizePixel = 0, Visible = false, BackgroundTransparency = 1, ZIndex = 5, AutomaticSize = Enum.AutomaticSize.XY, Size = Dim2(0, 0, 0, 0), }) self:CreateObjects("UIStroke", { Parent = Objects["TargetName"], Color = Color3.fromRGB(0, 0, 0), LineJoinMode = Enum.LineJoinMode.Miter }) Objects["Distance"] = self:CreateObjects("TextLabel", { Parent = Objects["BottomTextHolder"], FontFace = EspLib.SmallestPixel, TextSize = 9, LayoutOrder = 2, TextColor3 = Table['Texts']['Distance']['Color'], Text = "", TextXAlignment = Enum.TextXAlignment.Center, BorderSizePixel = 0, Visible = false, BackgroundTransparency = 1, ZIndex = 5, AutomaticSize = Enum.AutomaticSize.XY, Size = Dim2(0, 0, 0, 0), }) self:CreateObjects("UIStroke", { Parent = Objects["Distance"], Color = Color3.fromRGB(0, 0, 0), LineJoinMode = Enum.LineJoinMode.Miter }) Objects["WalkFlag"] = self:CreateObjects("TextLabel", { Parent = Objects["RightTextHolder"], FontFace = EspLib.SmallestPixel, TextSize = 9, LayoutOrder = 1, TextColor3 = Table['Flags']['Walking']['Color'], Text = Table['Flags']['Walking']['Text'], TextXAlignment = Enum.TextXAlignment.Left, BorderSizePixel = 0, Visible = false, BackgroundTransparency = 1, ZIndex = 5, AutomaticSize = Enum.AutomaticSize.XY, Size = Dim2(0, 0, 0, 0), }) self:CreateObjects("UIStroke", { Parent = Objects["WalkFlag"], Color = Color3.fromRGB(0, 0, 0), LineJoinMode = Enum.LineJoinMode.Miter }) Objects["JumpFlag"] = self:CreateObjects("TextLabel", { Parent = Objects["RightTextHolder"], FontFace = EspLib.SmallestPixel, TextSize = 9, LayoutOrder = 2, TextColor3 = Table['Flags']['Jumping']['Color'], Text = Table['Flags']['Jumping']['Text'], TextXAlignment = Enum.TextXAlignment.Left, BorderSizePixel = 0, Visible = false, BackgroundTransparency = 1, ZIndex = 5, AutomaticSize = Enum.AutomaticSize.XY, Size = Dim2(0, 0, 0, 0), }) self:CreateObjects("UIStroke", { Parent = Objects["JumpFlag"], Color = Color3.fromRGB(0, 0, 0), LineJoinMode = Enum.LineJoinMode.Miter }) Objects["SwimmingFlag"] = self:CreateObjects("TextLabel", { Parent = Objects["RightTextHolder"], FontFace = EspLib.SmallestPixel, TextSize = 9, LayoutOrder = 4, TextColor3 = Table['Flags']['Swimming']['Color'], Text = Table['Flags']['Swimming']['Text'], TextXAlignment = Enum.TextXAlignment.Left, BorderSizePixel = 0, Visible = false, BackgroundTransparency = 1, ZIndex = 5, AutomaticSize = Enum.AutomaticSize.XY, Size = Dim2(0, 0, 0, 0), }) self:CreateObjects("UIStroke", { Parent = Objects["SwimmingFlag"], Color = Color3.fromRGB(0, 0, 0), LineJoinMode = Enum.LineJoinMode.Miter }) Objects["Weapon"] = self:CreateObjects("TextLabel", { Parent = Objects["BottomTextHolder"], FontFace = EspLib.SmallestPixel, TextSize = 9, LayoutOrder = 3, TextColor3 = Table['Texts']['Weapon']['Color'], Text = "none", TextXAlignment = Enum.TextXAlignment.Center, BorderSizePixel = 0, Visible = false, BackgroundTransparency = 1, ZIndex = 5, AutomaticSize = Enum.AutomaticSize.XY, Size = Dim2(0, 0, 0, 0), }) self:CreateObjects("UIStroke", { Parent = Objects["Weapon"], Color = Color3.fromRGB(0, 0, 0), LineJoinMode = Enum.LineJoinMode.Miter }) end end local CornerLayout = { {Dim2(0, -1, 0, -1), Dim2(0.3, 0, 0, 1), NewVector2(0, 0), 0}, {Dim2(0, -1, 0, -1), Dim2(0, 1, 0.3, 0), NewVector2(0, 0), 180}, {Dim2(1, 1, 0, -1), Dim2(0.3, 0, 0, 1), NewVector2(1, 0), 0}, {Dim2(1, 1, 0, -1), Dim2(0, 1, 0.3, 0), NewVector2(1, 0), 180}, {Dim2(0, -1, 1, 1), Dim2(0.3, 0, 0, 1), NewVector2(0, 1), 0}, {Dim2(0, -1, 1, 1), Dim2(0, 1, 0.3, 0), NewVector2(0, 1), -180}, {Dim2(1, 1, 1, 1), Dim2(0.3, 0, 0, 1), NewVector2(1, 1), 0}, {Dim2(1, 1, 1, 1), Dim2(0, 1, 0.3, 0), NewVector2(1, 1), -180}, } function EspLib:CalculateBox(Data) local RootPart = Data['RootPart'] if not RootPart then return nil, nil, nil, nil, false end local RootScreen, OnScreen = WorldToViewportPoint(Camera, RootPart.Position) if not OnScreen or RootScreen.Z <= 0 then return nil, nil, nil, nil, false end if Table['Boxes']['DynamicBoxes'] then local Children = Data['Children'] if not Children then return nil, nil, nil, nil, false end local IncludeAccessories = Table['Boxes']['Bounding Box']['IncludeAcsessories'] local ScrMinX, ScrMinY = Huge, Huge local ScrMaxX, ScrMaxY = -Huge, -Huge local HasValidParts = false for _, Part in Children do if Part and Part.Parent and Part:IsA('BasePart') and Part.Transparency ~= 1 and Part ~= RootPart then local Parent = Part.Parent if not IncludeAccessories and Parent:IsA('Accessory') then continue end local PartScreen, PartOnScreen = WorldToViewportPoint(Camera, Part.Position) if not PartOnScreen or PartScreen.Z <= 0 then continue end HasValidParts = true local Cf = Part.CFrame local Sz = Part.Size local HX, HY, HZ = Sz.X * 0.5, Sz.Y * 0.5, Sz.Z * 0.5 local RX, UY, LZ = Cf.RightVector, Cf.UpVector, Cf.LookVector local DepthScale = CachedFocalLength / PartScreen.Z local Ex = (Abs(RX.X * HX) + Abs(UY.X * HY) + Abs(LZ.X * HZ)) * DepthScale local Ey = (Abs(RX.Y * HX) + Abs(UY.Y * HY) + Abs(LZ.Y * HZ)) * DepthScale local PMinX, PMaxX = PartScreen.X - Ex, PartScreen.X + Ex local PMinY, PMaxY = PartScreen.Y - Ey, PartScreen.Y + Ey if PMinX < ScrMinX then ScrMinX = PMinX end if PMaxX > ScrMaxX then ScrMaxX = PMaxX end if PMinY < ScrMinY then ScrMinY = PMinY end if PMaxY > ScrMaxY then ScrMaxY = PMaxY end end end if not HasValidParts then return nil, nil, nil, nil, false end local PadX = Table['Boxes']['Bounding Box']['BoxX'] local PadY = Table['Boxes']['Bounding Box']['BoxY'] local W = (ScrMaxX - ScrMinX) + PadX local H = (ScrMaxY - ScrMinY) + PadY local VX, VY = Camera.ViewportSize.X, Camera.ViewportSize.Y if ScrMaxX < 0 or ScrMinX > VX or ScrMaxY < 0 or ScrMinY > VY then return nil, nil, nil, nil, false end return W, H, ScrMinX - (PadX * 0.5), ScrMinY - (PadY * 0.5), true else if RootScreen.Z <= 0 then return nil, nil, nil, nil, false end local Scale = (RootPart.Size.Y * ViewPortY) / (RootScreen.Z * 2) local W, H = 3 * Scale, 4.5 * Scale return W, H, RootScreen.X - (W * 0.5), RootScreen.Y - (H * 0.5), true end end function EspLib:AddTarget(Player) if Player == LocalPlayer and not Table['ShowLocalPlayer'] then return end if self.Cache[Player] then return end local Data = { ['Player'] = Player, ['Objects'] = {}, ['Conns'] = {}, ['Character'] = nil, ['RootPart'] = nil, ['Humanoid'] = nil, ['Children'] = nil, ['Health'] = 0, ['MaxHealth'] = 100, ['CurrentTool'] = nil, ['Alive'] = false, ['LastW'] = nil, ['LastH'] = nil, ['LastX'] = nil, ['LastY'] = nil, ['WalkActive'] = false, ['JumpActive'] = false, ['FallingActive'] = false, ['SwimmingActive'] = false, ['LastGlowTop'] = nil, ['LastGlowBot'] = nil, ['LastGlowT1'] = nil, ['LastGlowT2'] = nil, ['LastGradTop'] = nil, ['LastGradBot'] = nil, ['LastFillTop'] = nil, ['LastFillBot'] = nil, ['LastFillT1'] = nil, ['LastFillT2'] = nil, ['LastDist'] = nil, ['LastDistColor'] = nil, ['LastDisplayName'] = nil, ['LastNameColor'] = nil, ['LastHealthTop'] = nil, ['LastHealthMid'] = nil, ['LastHealthBot'] = nil, ['LastHealthFloor'] = nil, ['LastRatio'] = nil, ['LastWeapon'] = nil, ['LastWeaponColor'] = nil, } self:InitEsp(Data) self['Cache'][Player] = Data function Data.BindHealth(Humanoid) if Data['Conns']['Health'] then Data['Conns']['Health']:Disconnect() end if Data['Conns']['Died'] then Data['Conns']['Died']:Disconnect() end Data['Humanoid'] = Humanoid Data['Health'] = Humanoid.Health Data['MaxHealth'] = Humanoid.MaxHealth Data['Alive'] = Humanoid.Health > 0 Data['Conns']['Health'] = Humanoid.HealthChanged:Connect(function(NewHealth) Data['Alive'] = NewHealth > 0 Data['Health'] = NewHealth Data['MaxHealth'] = Humanoid.MaxHealth end) Data['Conns']['Died'] = Humanoid.Died:Connect(function() Data['Alive'] = false end) end function Data.BindTool(Character) if Data['Conns']['ToolAdded'] then Data['Conns']['ToolAdded']:Disconnect() end if Data['Conns']['ToolRemoved'] then Data['Conns']['ToolRemoved']:Disconnect() end Data['CurrentTool'] = nil if Data['Children'] then for _, Child in Data['Children'] do if Child:IsA('Tool') then Data['CurrentTool'] = Child.Name break end end end Data['Conns']['ToolAdded'] = Character.ChildAdded:Connect(function(Child) if Child:IsA('Tool') then Data['CurrentTool'] = Child.Name end end) Data['Conns']['ToolRemoved'] = Character.ChildRemoved:Connect(function(Child) if Child:IsA('Tool') then Data['CurrentTool'] = nil end end) end function Data.BindChildren(Character) if Data['Conns']['ChildAdded'] then Data['Conns']['ChildAdded']:Disconnect() end if Data['Conns']['ChildRemoved'] then Data['Conns']['ChildRemoved']:Disconnect() end local Children = Character:GetChildren() Data['Children'] = Children Data['Conns']['ChildAdded'] = Character.ChildAdded:Connect(function(Child) Children[#Children + 1] = Child end) Data['Conns']['ChildRemoved'] = Character.ChildRemoved:Connect(function(Child) for I = #Children, 1, -1 do if Children[I] == Child then Remove(Children, I) break end end end) Data['BindTool'](Character) end function Data.BindFlags(Humanoid) if Data['Conns']['MoveDir'] then Data['Conns']['MoveDir']:Disconnect() end if Data['Conns']['StateChange'] then Data['Conns']['StateChange']:Disconnect() end local Objects = Data['Objects'] Data['JumpActive'] = false Data['WalkActive'] = false Data['FallingActive'] = false Data['SwimmingActive'] = false Objects['WalkFlag'].Visible = false Objects['JumpFlag'].Visible = false Objects['SwimmingFlag'].Visible = false Data['Conns']['MoveDir'] = Humanoid:GetPropertyChangedSignal('MoveDirection'):Connect(function() local Walking = Humanoid.MoveDirection.Magnitude > 0.05 if Walking and not Data['WalkActive'] then Data['WalkActive'] = true if Data['JumpActive'] then Objects['WalkFlag'].LayoutOrder = 2 else Objects['WalkFlag'].LayoutOrder = 1 Objects['JumpFlag'].LayoutOrder = 2 end Objects['WalkFlag'].Visible = Table['Flags']['Walking']['Enabled'] elseif not Walking and Data['WalkActive'] then Data['WalkActive'] = false Objects['WalkFlag'].Visible = false if Data['JumpActive'] then Objects['JumpFlag'].LayoutOrder = 1 end end end) Data['Conns']['StateChange'] = Humanoid.StateChanged:Connect(function(_, NewState) if NewState == Enum.HumanoidStateType.Freefall and not Data['JumpActive'] then Data['JumpActive'] = true if Data['WalkActive'] then Objects['JumpFlag'].LayoutOrder = 2 else Objects['JumpFlag'].LayoutOrder = 1 Objects['WalkFlag'].LayoutOrder = 2 end Objects['JumpFlag'].Visible = Table['Flags']['Jumping']['Enabled'] elseif NewState ~= Enum.HumanoidStateType.Jumping and NewState ~= Enum.HumanoidStateType.Freefall and Data['JumpActive'] then Data['JumpActive'] = false Objects['JumpFlag'].Visible = false if Data['WalkActive'] then Objects['WalkFlag'].LayoutOrder = 1 end end if NewState == Enum.HumanoidStateType.Swimming and not Data['SwimmingActive'] then Data['SwimmingActive'] = true Objects['SwimmingFlag'].Visible = Table['Flags']['Swimming']['Enabled'] elseif NewState ~= Enum.HumanoidStateType.Swimming and Data['SwimmingActive'] then Data['SwimmingActive'] = false Objects['SwimmingFlag'].Visible = false end end) end local function OnCharacter(Character) Data['Character'] = Character Data['RootPart'] = nil Data['Humanoid'] = nil Data['Children'] = nil Data['Alive'] = false Data['WalkActive'] = false Data['JumpActive'] = false Data['FallingActive'] = false Data['SwimmingActive'] = false if not Character or not Character.Parent then return end local RootPart = FindFirstChild(Character, "HumanoidRootPart") if not RootPart then RootPart = Character:WaitForChild('HumanoidRootPart', 10) end local Humanoid = FindFirstChildOfClass(Character, 'Humanoid') if not Humanoid then Humanoid = Character:WaitForChild('Humanoid', 10) end if not RootPart or not Humanoid then return end if not Character.Parent then return end Data['RootPart'] = RootPart Data['Humanoid'] = Humanoid Data['BindChildren'](Character) Data['BindHealth'](Humanoid) Data['BindFlags'](Humanoid) end Data['Conns']['CharAdded'] = Player.CharacterAdded:Connect(function(Character) task.defer(OnCharacter, Character) end) if Player.Character and Player.Character.Parent then task.defer(OnCharacter, Player.Character) end end function EspLib:RemoveTarget(Player) local Data = self['Cache'][Player] if not Data then return end for _, Connections in Data['Conns'] do Connections:Disconnect() end Clear(Data['Conns']) if Data['Objects']['TargetHolder'] then Data['Objects']['TargetHolder']:Destroy() end Clear(Data['Objects']) self['Cache'][Player] = nil end function EspLib:Update(Player, Data) local Objects = Data['Objects'] if not Objects['TargetHolder'] then return end local Hide = function() if Objects['TargetHolder'].Visible then Objects['TargetHolder'].Visible = false end end if not Data['RootPart'] or not Data['Alive'] then return Hide() end if not self:Passes(Data['Character']) then return Hide() end local RootPos = Data['RootPart'].Position local Distance = Floor((CameraPosition - RootPos).Magnitude) if Distance > Table['Distance'] then return Hide() end local W, H, X, Y, OnScreen = self:CalculateBox(Data) if not OnScreen or not W or not H or not X or not Y or W <= 0 or H <= 0 then return Hide() end W = Floor(W) H = Floor(H) X = Floor(X) Y = Floor(Y) if not Objects['TargetHolder'].Visible then Objects['TargetHolder'].Visible = true end local DirtySizes = Data['LastW'] ~= W or Data['LastH'] ~= H local DirtyPosition = Data['LastX'] ~= X or Data['LastY'] ~= Y if DirtyPosition then Objects['TargetHolder'].Position = DimOffset(X, Y) Data['LastX'] = X Data['LastY'] = Y end if DirtySizes then Objects['TargetHolder'].Size = DimOffset(W, H) Objects['BoxGlow'].Size = DimOffset(W, H) Objects['BoxOutlineHolder'].Size = DimOffset(W, H) Objects['BoxInlineHolder'].Size = DimOffset(W + 2, H + 2) Objects['BoxFill'].Size = DimOffset(W, H) Objects['CornerHolder'].Size = DimOffset(W + 2, H + 2) Data['LastW'] = W Data['LastH'] = H end local BoxesCfg = Table['Boxes'] local TextsCfg = Table['Texts'] if BoxesCfg['Enabled'] then if BoxesCfg['Box Glow']['Enabled'] then if Objects['BoxGlow'].ImageTransparency ~= 0 then Objects['BoxGlow'].ImageTransparency = 0 end local GlowTop = BoxesCfg['Box Glow']['Top'] local GlowBot = BoxesCfg['Box Glow']['Bot'] if Data['LastGlowTop'] ~= GlowTop or Data['LastGlowBot'] ~= GlowBot then Objects['BoxGlowGradient'].Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, GlowTop), ColorSequenceKeypoint.new(1, GlowBot), }) Data['LastGlowTop'] = GlowTop Data['LastGlowBot'] = GlowBot end local T1 = BoxesCfg['Box Glow']['Transparency'][1] local T2 = BoxesCfg['Box Glow']['Transparency'][2] if Data['LastGlowT1'] ~= T1 or Data['LastGlowT2'] ~= T2 then Objects['BoxGlowGradient'].Transparency = NumSeq({NumKey(0, T1), NumKey(1, T2)}) Data['LastGlowT1'] = T1 Data['LastGlowT2'] = T2 end else if Objects['BoxGlow'].ImageTransparency ~= 1 then Objects['BoxGlow'].ImageTransparency = 1 end end local BoxType = BoxesCfg['Type'] if BoxType == "Corner" then if Objects['BoxOutlineHolder'].Visible then Objects['BoxOutlineHolder'].Visible = false end if Objects['BoxInlineHolder'].Visible then Objects['BoxInlineHolder'].Visible = false end if Objects['BoxFill'].Visible then Objects['BoxFill'].Visible = false end if not Objects['CornerHolder'].Visible then Objects['CornerHolder'].Visible = true end local GradTop = BoxesCfg['Gradients']['Top'] for i = 1, 8 do local Line = Objects['Line_' .. i] local Stroke = Line:FindFirstChildOfClass('UIStroke') local LayoutEntry = CornerLayout[i] Line.Position = LayoutEntry[1] Line.Size = LayoutEntry[2] Line.AnchorPoint = LayoutEntry[3] Line.Rotation = LayoutEntry[4] Line.BackgroundColor3 = GradTop Line.BackgroundTransparency = 0 if Stroke then Stroke.Color = GradTop end Line.Visible = true end else if Objects['CornerHolder'].Visible then Objects['CornerHolder'].Visible = false end for i = 1, 8 do if Objects['Line_' .. i].Visible then Objects['Line_' .. i].Visible = false end end if not Objects['BoxOutlineHolder'].Visible then Objects['BoxOutlineHolder'].Visible = true end if not Objects['BoxInlineHolder'].Visible then Objects['BoxInlineHolder'].Visible = true end local GradTop = BoxesCfg['Gradients']['Top'] local GradBot = BoxesCfg['Gradients']['Bot'] if Data['LastGradTop'] ~= GradTop or Data['LastGradBot'] ~= GradBot then Objects['BoxInlineGradient'].Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, GradTop), ColorSequenceKeypoint.new(1, GradBot), }) Data['LastGradTop'] = GradTop Data['LastGradBot'] = GradBot end if BoxesCfg['Filled']['Enabled'] then if not Objects['BoxFill'].Visible then Objects['BoxFill'].Visible = true end local FillTop = BoxesCfg['Filled']['Top'] local FillBot = BoxesCfg['Filled']['Bot'] local FillT1 = BoxesCfg['Filled']['Transparency'][1] local FillT2 = BoxesCfg['Filled']['Transparency'][2] if Data['LastFillTop'] ~= FillTop or Data['LastFillBot'] ~= FillBot then Objects['BoxFillGradient'].Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, FillTop), ColorSequenceKeypoint.new(1, FillBot), }) Data['LastFillTop'] = FillTop Data['LastFillBot'] = FillBot end if Data['LastFillT1'] ~= FillT1 or Data['LastFillT2'] ~= FillT2 then Objects['BoxFillGradient'].Transparency = NumSeq({NumKey(0, FillT1), NumKey(1, FillT2)}) Data['LastFillT1'] = FillT1 Data['LastFillT2'] = FillT2 end else if Objects['BoxFill'].Visible then Objects['BoxFill'].Visible = false end end end else if Objects['BoxGlow'].ImageTransparency ~= 1 then Objects['BoxGlow'].ImageTransparency = 1 end if Objects['BoxOutlineHolder'].Visible then Objects['BoxOutlineHolder'].Visible = false end if Objects['BoxInlineHolder'].Visible then Objects['BoxInlineHolder'].Visible = false end if Objects['BoxFill'].Visible then Objects['BoxFill'].Visible = false end if Objects['CornerHolder'].Visible then Objects['CornerHolder'].Visible = false end for i = 1, 8 do if Objects['Line_' .. i].Visible then Objects['Line_' .. i].Visible = false end end end if TextsCfg['Name']['Enabled'] then if not Objects['TargetName'].Visible then Objects['TargetName'].Visible = true end local DisplayName = Player.DisplayName if Data['LastDisplayName'] ~= DisplayName then Objects['TargetName'].Text = DisplayName Data['LastDisplayName'] = DisplayName end local NameColor = TextsCfg['Name']['Color'] if Data['LastNameColor'] ~= NameColor then Objects['TargetName'].TextColor3 = NameColor Data['LastNameColor'] = NameColor end else if Objects['TargetName'].Visible then Objects['TargetName'].Visible = false end end if TextsCfg['Distance']['Enabled'] then if not Objects['Distance'].Visible then Objects['Distance'].Visible = true end if Data['LastDist'] ~= Distance then Objects['Distance'].Text = Format('%dst', Distance) Data['LastDist'] = Distance end local DistColor = TextsCfg['Distance']['Color'] if Data['LastDistColor'] ~= DistColor then Objects['Distance'].TextColor3 = DistColor Data['LastDistColor'] = DistColor end else if Objects['Distance'].Visible then Objects['Distance'].Visible = false end end local HealthCfg = Table['Bars']['Health Bar'] if HealthCfg['Enabled'] then local Health = Data['Health'] or 0 local MaxHealth = Data['MaxHealth'] or 100 local DisplayHealth = Health local DisplayMax = MaxHealth if MaxHealth >= 999999 or Health >= 999999 then DisplayHealth = 100 DisplayMax = 100 end local Ratio = Clamp(DisplayHealth / DisplayMax, 0, 1) if not Objects['LeftBarHolder'].Visible then Objects['LeftBarHolder'].Visible = true end if not Objects['HealthBarOutline'].Visible then Objects['HealthBarOutline'].Visible = true end if Data['LastRatio'] ~= Ratio then Objects['HealthBar'].Size = Dim2(1, 0, Ratio, 0) Data['LastRatio'] = Ratio end local GradTop = HealthCfg['Top'] local GradMid = HealthCfg['Mid'] local GradBot = HealthCfg['Bot'] if Data['LastHealthTop'] ~= GradTop or Data['LastHealthMid'] ~= GradMid or Data['LastHealthBot'] ~= GradBot then Objects['HealthBarGradient'].Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, GradTop), ColorSequenceKeypoint.new(0.5, GradMid), ColorSequenceKeypoint.new(1, GradBot), }) Data['LastHealthTop'] = GradTop Data['LastHealthMid'] = GradMid Data['LastHealthBot'] = GradBot end if not Objects['HealthBarText'].Visible then Objects['HealthBarText'].Visible = true end Objects['HealthBarText'].Position = Dim2(1, -10, 1 - Ratio, 1) local FlooredHealth = Floor(DisplayHealth) if Data['LastHealthFloor'] ~= FlooredHealth then Objects['HealthBarText'].Text = Format('%d', FlooredHealth) Data['LastHealthFloor'] = FlooredHealth end else if Objects['HealthBarOutline'].Visible then Objects['HealthBarOutline'].Visible = false end if Objects['HealthBarText'].Visible then Objects['HealthBarText'].Visible = false end if Objects['LeftBarHolder'].Visible then Objects['LeftBarHolder'].Visible = false end end local WeaponCfg = TextsCfg['Weapon'] if WeaponCfg['Enabled'] then if not Objects['Weapon'].Visible then Objects['Weapon'].Visible = true end local CurrentTool = Data['CurrentTool'] or 'none' if Data['LastWeapon'] ~= CurrentTool then Objects['Weapon'].Text = CurrentTool Data['LastWeapon'] = CurrentTool end local WeaponColor = WeaponCfg['Color'] if Data['LastWeaponColor'] ~= WeaponColor then Objects['Weapon'].TextColor3 = WeaponColor Data['LastWeaponColor'] = WeaponColor end else if Objects['Weapon'].Visible then Objects['Weapon'].Visible = false end end end do EspLib:CreateThreads('Renderer', RunService.RenderStepped, function() if not Table['Enabled'] then for _, Data in EspLib['Cache'] do local Holder = Data['Objects']['TargetHolder'] if Holder and Holder.Visible then Holder.Visible = false end end return end CameraPosition = Camera.CFrame.Position for Player, Data in EspLib['Cache'] do local ok, err = pcall(EspLib.Update, EspLib, Player, Data) if not ok then warn('[ESP] Update error:', err) end end end) end do for _, Player in Players:GetPlayers() do EspLib:AddTarget(Player) end EspLib:CreateThreads('PlayerAdded', Players.PlayerAdded, function(Player) task.defer(function() EspLib:AddTarget(Player) end) end) EspLib:CreateThreads('PlayerRemoving', Players.PlayerRemoving, function(Player) EspLib:RemoveTarget(Player) end) end function EspLib:Unload() for Player in self['Cache'] do self:RemoveTarget(Player) end for _, Conn in self['Connections'] do Conn:Disconnect() end Clear(self['Connections']) for _, Conn in self['Threads'] do Conn:Disconnect() end Clear(self['Threads']) if self['Holder'] then self['Holder']:Destroy() self['Holder'] = nil end Clear(self['Cache']) end Esp.Table = Table Esp.Library = EspLib end -- \\ Initializer Initializer = { ["Reapply To Current"] = function() reapplyToCurrent = function() if Main and Main["Gun Mods"] then Main["Gun Mods"]["Apply"]() end end end, ["Field Of View Circle"] = function() local Outline_Circle = Drawing.new("Circle") local Main_Circle = Drawing.new("Circle") local Fill_Circle = Drawing.new("Circle") Configuration["Field Of View Circle"]["Outline"] = Outline_Circle Configuration["Field Of View Circle"]["Main"] = Main_Circle Configuration["Field Of View Circle"]["Fill"] = Fill_Circle Outline_Circle.Color = Color3.fromRGB(0, 0, 0) Main_Circle.Color = Color3.fromRGB(255, 255, 255) Fill_Circle.Color = Color3.fromRGB(255, 255, 255) Outline_Circle.Thickness = 3 Main_Circle.Thickness = 1.5 Fill_Circle.Thickness = 3 Outline_Circle.Transparency = 1 Main_Circle.Transparency = 1 Fill_Circle.Transparency = .25 Outline_Circle.Filled = false Main_Circle.Filled = false Fill_Circle.Filled = true table.insert(Configuration["Connections"], RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function() local cam = Workspace.CurrentCamera if not cam then return end local Mouse_Position = Configuration["Mobile User"] and Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2) or UserInputService:GetMouseLocation() local Silent_FOV = Configuration["Silent Aim FOV"] local Aimbot_FOV = Configuration["Aimbot FOV"] local ActiveFOV = nil if Silent_FOV.Enabled and Silent_FOV.Draw then ActiveFOV = Silent_FOV elseif Aimbot_FOV.Enabled and Aimbot_FOV.Draw then ActiveFOV = Aimbot_FOV end if ActiveFOV then Outline_Circle.Visible = true Main_Circle.Visible = true Fill_Circle.Visible = ActiveFOV.Fill Outline_Circle.Position = Mouse_Position Main_Circle.Position = Mouse_Position Fill_Circle.Position = Mouse_Position Outline_Circle.Radius = ActiveFOV.Radius Main_Circle.Radius = ActiveFOV.Radius Fill_Circle.Radius = ActiveFOV.Radius Outline_Circle.NumSides = ActiveFOV.NumSides Main_Circle.NumSides = ActiveFOV.NumSides Fill_Circle.NumSides = ActiveFOV.NumSides else Outline_Circle.Visible = false Main_Circle.Visible = false Fill_Circle.Visible = false end end))) end, ["Selected Target Visuals"] = function() table.insert(Configuration["Connections"], RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function() local cam = Workspace.CurrentCamera if not cam then return end local Target = Configuration["Target Player"] local Silent_On = Configuration["Silent Aim"]["Enable Silent Aim"] local Aimlock_On = Configuration["Aimlock"]["Enable Aimlock"] local VisCfg = nil if Silent_On then VisCfg = Configuration["Silent Aim"] elseif Aimlock_On then VisCfg = Configuration["Aimlock"] elseif Configuration["Target Menu"] and Configuration["Target Menu"]["Selected Player"] then VisCfg = Configuration["Silent Aim"] end if not Target and Configuration["Target Menu"] and Configuration["Target Menu"]["Selected Player"] then local SP = Configuration["Target Menu"]["Selected Player"] if SP and SP.Character and SP.Character.Parent then Target = SP.Character end end if not VisCfg or not Target or not Target.Parent then if Main["Active Highlight"] then pcall(function() Main["Active Highlight"]:Destroy() end) Main["Active Highlight"] = nil end if Main["Active Snapline"] then pcall(function() Main["Active Snapline"][1].Visible = false Main["Active Snapline"][2].Visible = false end) end return end local Highlight_On = VisCfg["Highlight Target"] local Snapline_On = VisCfg["Draw Snapline"] if Highlight_On then if not Main["Active Highlight"] or Main["Active Highlight"].Adornee ~= Target then if Main["Active Highlight"] then pcall(function() Main["Active Highlight"]:Destroy() end) end Main["Selected Target Visuals"]["Create Highlight"]( Target, VisCfg["Highlight Color"], VisCfg["Highlight Transparency"] ) else Main["Active Highlight"].FillColor = VisCfg["Highlight Color"] Main["Active Highlight"].FillTransparency = VisCfg["Highlight Transparency"] Main["Active Highlight"].Adornee = Target Main["Active Highlight"].Enabled = true end else if Main["Active Highlight"] then pcall(function() Main["Active Highlight"]:Destroy() end) Main["Active Highlight"] = nil end end if Snapline_On then if not Main["Active Snapline"] then Main["Selected Target Visuals"]["Create Snapline"]( VisCfg["Snapline Color"], VisCfg["Snapline Thickness"] ) end local Snapline = Main["Active Snapline"] local HRP = Target:FindFirstChild("HumanoidRootPart") if Snapline and HRP then local Screen, OnScreen = cam:WorldToViewportPoint(HRP.Position) local MousePosition = Configuration["Mobile User"] and Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2) or UserInputService:GetMouseLocation() Snapline[1].Visible = OnScreen Snapline[2].Visible = OnScreen Snapline[1].From = MousePosition Snapline[1].To = Vector2.new(Screen.X, Screen.Y) Snapline[2].From = MousePosition Snapline[2].To = Vector2.new(Screen.X, Screen.Y) Snapline[1].Thickness = VisCfg["Snapline Thickness"] * 2 Snapline[2].Thickness = VisCfg["Snapline Thickness"] Snapline[2].Color = VisCfg["Snapline Color"] end else if Main["Active Snapline"] then pcall(function() Main["Active Snapline"][1].Visible = false Main["Active Snapline"][2].Visible = false end) end end end))) end, ["Refresh Target"] = function() local Checks = Main["Target Checks"] local function PickTarget() local Silent_On = Configuration["Silent Aim"]["Enable Silent Aim"] local Aimlock_On = Configuration["Aimlock"]["Enable Aimlock"] local Menu_On = Configuration["Target Menu"] ~= nil and Configuration["Target Menu"]["Selected Player"] ~= nil if Menu_On then local SP = Configuration["Target Menu"]["Selected Player"] if SP and SP.Character and SP.Character.Parent then return SP.Character end end if not Silent_On and not Aimlock_On then return nil end local HRP_Self = Character() and Character():FindFirstChild("HumanoidRootPart") if not HRP_Self then return nil end local cam = getCamera() if not cam then return nil end local Use_FOV = false local FOV_Radius = math.huge if Silent_On and Configuration["Silent Aim FOV"]["Enabled"] then Use_FOV = true FOV_Radius = Configuration["Silent Aim FOV"]["Radius"] elseif Aimlock_On and Configuration["Aimbot FOV"]["Enabled"] then Use_FOV = true FOV_Radius = Configuration["Aimbot FOV"]["Radius"] end local Use_Closest = Configuration["Target Checks"]["Closest Player"] local Best, BestDist = nil, math.huge local function Passes(Target) local HRP = Target:FindFirstChild("HumanoidRootPart") if not HRP then return false end if Use_FOV then local Screen, OnScreen = cam:WorldToViewportPoint(HRP.Position) if not OnScreen then return false end local sp = Vector2.new(Screen.X, Screen.Y) local mousePos = Configuration["Mobile User"] and Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2) or UserInputService:GetMouseLocation() if (sp - mousePos).Magnitude > FOV_Radius then return false end end local function SafeCheck(fn, ...) local ok, result = pcall(fn, ...) return ok and result end return SafeCheck(Checks["Health Check"], Target) and SafeCheck(Checks["Friend Check"], Target) and SafeCheck(Checks["Visible Check"], Target) and SafeCheck(Checks["Distance Check"], Target) and SafeCheck(Checks["Safezone Check"], Target) end for _, Player in pairs(Players:GetPlayers()) do if Player ~= Client and Player.Character then local HRP = Player.Character:FindFirstChild("HumanoidRootPart") local Hum = Player.Character:FindFirstChildOfClass("Humanoid") if not HRP or not Hum or Hum.Health <= 0 then continue end if not Passes(Player.Character) then continue end if not Use_Closest then if Configuration["Target Player"] == Player.Character then return Player.Character end Best = Player.Character else local Dist = (HRP_Self.Position - HRP.Position).Magnitude if Dist < BestDist then BestDist = Dist Best = Player.Character end end end end return Best end while true do local Target = PickTarget() Configuration["Target Player"] = Target task.wait(.05) end end, ["World Visuals"] = LPH_JIT_MAX(function() local Lighting = Services.Lighting local CC = Lighting:FindFirstChildOfClass("ColorCorrectionEffect") or Instance.new("ColorCorrectionEffect", Lighting) CC.Name = "nex.lol" local Original = { Brightness = Lighting.Brightness, OutdoorAmbient = Lighting.OutdoorAmbient, GlobalShadows = Lighting.GlobalShadows, FogEnd = Lighting.FogEnd, FogStart = Lighting.FogStart, ClockTime = Lighting.ClockTime, TintColor = CC.TintColor, Saturation = CC.Saturation, } local fullBrightSet, fogEndSet, satSet, tintSet = true, true, true, true RunService:BindToRenderStep("World Visuals", Enum.RenderPriority.Camera.Value + 1, LPH_NO_VIRTUALIZE(function() local Cfg = Configuration["World Visuals"] if Cfg["Full Bright"] then Lighting.Brightness = 2 Lighting.ClockTime = 12 Lighting.FogEnd = 1e9 Lighting.GlobalShadows = false Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128) fullBrightSet = false elseif not fullBrightSet then Lighting.Brightness = Original.Brightness Lighting.FogEnd = Original.FogEnd Lighting.GlobalShadows = Original.GlobalShadows Lighting.OutdoorAmbient = Original.OutdoorAmbient fullBrightSet = true end if Cfg["No Fog"] then Lighting.FogEnd = 1e9 Lighting.FogStart = 1e9 fogEndSet = false elseif not fogEndSet then Lighting.FogEnd = Original.FogEnd Lighting.FogStart = Original.FogStart fogEndSet = true end if Cfg["Change Saturation"] then CC.Saturation = Cfg["Saturation Value"] satSet = false elseif not satSet then CC.Saturation = Original.Saturation satSet = true end if Cfg["Change Ambiency"] then CC.TintColor = Cfg["Ambiency Color"] tintSet = false elseif not tintSet then CC.TintColor = Original.TintColor tintSet = true end end)) end), ["Silent Aim"] = LPH_JIT(function() local Mouse = Client:GetMouse() if not Mouse then return end local Target_Part, Hit_Chance = nil, false local function GetTargetPart() local _Target_Part, _Hit_Chance = nil, false local TP = Configuration["Target Player"] if not TP or not TP.Parent then local SP = Configuration["Target Menu"]["Selected Player"] if SP and SP.Character and SP.Character.Parent then TP = SP.Character end end if TP and TP.Parent then if math.random(0, 100) <= Configuration["Silent Aim"]["Hit Chance"] then local Parts = Configuration["Silent Aim"]["Hit Parts"] if type(Parts) == "string" then Parts = { Parts } end if #Parts > 0 then local Part_Name = Parts[math.random(1, #Parts)] _Target_Part = TP:FindFirstChild(Part_Name) or TP:FindFirstChild("Head") or TP:FindFirstChild("HumanoidRootPart") _Hit_Chance = _Target_Part ~= nil end end end return _Target_Part, _Hit_Chance end local Old_Index; Old_Index = hookmetamethod(game, "__index", newcclosure(function(Self, Key) if Self == Mouse and not checkcaller() and Configuration["Silent Aim"]["Enable Silent Aim"] then Target_Part, Hit_Chance = GetTargetPart() if Target_Part and Hit_Chance then if Key == "Target" or Key == "target" then return Target_Part elseif Key == "Hit" or Key == "hit" then return Target_Part.CFrame elseif Key == "X" or Key == "x" then local cam = getCamera() if cam then local Point = cam:WorldToViewportPoint(Target_Part.Position) return Point.X end elseif Key == "Y" or Key == "y" then local cam = getCamera() if cam then local Point = cam:WorldToViewportPoint(Target_Part.Position) return Point.Y end elseif Key == "UnitRay" then local cam = getCamera() if cam then return Ray.new(cam.CFrame.Position, (Target_Part.Position - cam.CFrame.Position).Unit) end end end end return Old_Index(Self, Key) end)) end), ["Aimlock"] = function() if not getgenv().mousemoverel then return end Configuration["Aimlock"]["Aimlock_Active"] = false table.insert(Configuration["Connections"], RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function() local Active = Configuration["Aimlock"]["Aimlock_Active"] if not Configuration["Aimlock"]["Enable Aimlock"] then return end if not Active then return end local Target = Configuration["Target Player"] if not Target or not Target.Parent then local SP = Configuration["Target Menu"]["Selected Player"] if SP and SP.Character and SP.Character.Parent then Target = SP.Character end end if not Target or not Target.Parent then return end local Hit_Part = Target:FindFirstChild(Configuration["Aimlock"]["Hit Part"]) or Target:FindFirstChild("Head") or Target:FindFirstChild("HumanoidRootPart") local Humanoid = Target:FindFirstChild("Humanoid") if not Hit_Part or not Humanoid then return end local cam = getCamera() if not cam then return end local ScreenPosition = cam:WorldToViewportPoint(Hit_Part.Position) ScreenPosition = Vector2.new(ScreenPosition.X, ScreenPosition.Y) local MousePosition = UserInputService:GetMouseLocation() local Smoothness = Configuration["Aimlock"]["Aimlock Smoothness"] if Smoothness <= 0 then Smoothness = 0.05 end mousemoverel( (ScreenPosition.X - MousePosition.X) * Smoothness, (ScreenPosition.Y - MousePosition.Y) * Smoothness ) end))) end, ["Head Expander"] = LPH_JIT_MAX(function() local function Apply_Head_Connection(Target: Model) local Size_Set, Transparency_Set = false, false while Target and Target.Parent do pcall(function() local Head = Target:FindFirstChild("Head") local Humanoid = Target:FindFirstChild("Humanoid") local Enabled = Configuration["Head Expander"]["Enable Head Expander"] if Enabled then if Configuration["Head Expander"]["Ignore Dead People"] and Humanoid.Health <= 0 then Enabled = false end if Enabled and not Main["Head Expander Checks"]["Friend Check"](Target) then Enabled = false end if Enabled and not Main["Head Expander Checks"]["Visible Check"](Target) then Enabled = false end if Enabled and not Main["Head Expander Checks"]["Distance Check"](Target) then Enabled = false end if Enabled and not Main["Head Expander Checks"]["Safezone Check"](Target) then Enabled = false end end if Enabled then Head.Size = Configuration["Regular Head Size"] * Configuration["Head Expander"]["Head Size Multiplier"] Head.Massless = true Head.CanCollide = false Size_Set = false else if not Size_Set then Head.Size = Configuration["Regular Head Size"] Head.Massless = false Head.CanCollide = true Size_Set = true end end if Enabled and Configuration["Head Expander"]["Enable Head Transparency"] then Head.Transparency = Configuration["Head Expander"]["Head Transparency"] Transparency_Set = false else if not Transparency_Set then Head.Transparency = 0 Transparency_Set = true end end end) task.wait(.1) end end table.insert(Configuration["Connections"], Players.PlayerAdded:Connect(function(Player) Player.CharacterAdded:Connect(Apply_Head_Connection) end)) for Index, Player in pairs(Players:GetPlayers()) do if Player ~= Client then table.insert(Configuration["Threads"], task.spawn(Apply_Head_Connection, Player.Character)) table.insert(Configuration["Connections"], Player.CharacterAdded:Connect(Apply_Head_Connection)) end end end), ["Kill Aura"] = function() local function GetTool() local char = Client.Character if not char then return nil end local tool = char:FindFirstChildWhichIsA("Tool") if not tool then return nil end if not tool:FindFirstChild("firearmClient") then return nil end if not tool:FindFirstChild("Event") then return nil end return tool end local function FireAtPlayer(Target) if not Target or Target == Client then return end if not Target.Character then return end if Target.Character:FindFirstChild("shieldIcon") then return end local Humanoid = Target.Character:FindFirstChildOfClass("Humanoid") if not Humanoid or Humanoid.Health <= 0 then return end local Target_Part = Target.Character:FindFirstChild(Configuration["Kill Aura"]["Hit Part"]) or Target.Character:FindFirstChild("Head") or Target.Character:FindFirstChild("HumanoidRootPart") if not Target_Part then return end local Char_Local = Client.Character or Client.CharacterAdded:Wait() local Tool = GetTool() if not Tool then return end local Origin = Char_Local:FindFirstChild("Head") and Char_Local.Head.Position or Char_Local.HumanoidRootPart.Position local Direction = (Target_Part.Position - Origin).Unit pcall(function() Tool.Event:FireServer("fire", Target_Part, Origin, Direction) end) end local Checks = Main["Kill Aura Checks"] table.insert(Configuration["Threads"], task.spawn(function() while true do if not Configuration["Kill Aura"]["Enable Kill Aura"] then task.wait(.1) continue end local HRP_Self = Character() and Character():FindFirstChild("HumanoidRootPart") if not HRP_Self then task.wait(.1) continue end for _, Player in pairs(Players:GetPlayers()) do if Player == Client then continue end if not Player.Character then continue end local HRP_Target = Player.Character:FindFirstChild("HumanoidRootPart") local Hum_Target = Player.Character:FindFirstChildOfClass("Humanoid") if not HRP_Target or not Hum_Target or Hum_Target.Health <= 0 then continue end if not Checks["Friend Check"](Player.Character) then continue end if not Checks["Visible Check"](Player.Character) then continue end if not Checks["Distance Check"](Player.Character) then continue end if not Checks["Safezone Check"](Player.Character) then continue end task.spawn(FireAtPlayer, Player) task.wait(0.02) end task.wait(Configuration["Kill Aura"]["Delay"]) end end)) end, ["Gun Mods"] = LPH_JIT_MAX(function() table.insert(Configuration["Connections"], Client.CharacterAdded:Connect(function(Char) task.wait(1) Main["Gun Mods"]["Apply"]() Char.ChildAdded:Connect(function(child) if child:IsA("Tool") then task.wait(0.3) Main["Gun Mods"]["Apply"]() end end) Char.ChildRemoved:Connect(function(child) if child:IsA("Tool") then task.wait(0.3) Main["Gun Mods"]["Apply"]() end end) end)) if Client.Character then task.wait(1) Main["Gun Mods"]["Apply"]() Client.Character.ChildAdded:Connect(function(child) if child:IsA("Tool") then task.wait(0.3) Main["Gun Mods"]["Apply"]() end end) end table.insert(Configuration["Threads"], task.spawn(function() while true do if Client.Character then local tool = Client.Character:FindFirstChildWhichIsA("Tool") if tool and tool:FindFirstChild("firearmClient") then Main["Gun Mods"]["Apply"]() end end task.wait(0.5) end end)) end), } for Name, Function in pairs(Initializer) do table.insert(Configuration["Threads"], task.spawn(function() local Success, Reason = pcall(Function) if not Success then warn("nex.lol | Initializer Error : " .. tostring(Reason) .. " : " .. tostring(Name)) end end)); task.wait() end -- \\ Menu local UI = {} local EspCfg = Esp.Table local PreviewConfig = { enabled = EspCfg.Enabled, box = true, boxcolor = Color3.fromRGB(255, 255, 255), fillbox = false, fillcolor = Color3.fromRGB(255, 255, 255), fillopacity = 35, healthbar = true, health = 0.68, name = true, namecolor = Color3.fromRGB(255, 255, 255), distance = true, distancecolor = Color3.fromRGB(255, 255, 255), distancevalue = 50, weapon = true, weaponcolor = Color3.fromRGB(255, 255, 255), textvisible = Color3.fromRGB(255, 255, 255), textsize = 11, barwidth = 2, gap = 5, linegap = 10, targetname = "Target", } getgenv().fragESP = getgenv().fragESP or {} getgenv().fragESP.config = PreviewConfig getgenv().fragESP.BodyExtents = function(model) local head = model:FindFirstChild("Head") local la = model:FindFirstChild("LeftUpperArm") or model:FindFirstChild("Left Arm") local ra = model:FindFirstChild("RightUpperArm") or model:FindFirstChild("Right Arm") local ll = model:FindFirstChild("LeftFoot") or model:FindFirstChild("LeftLowerLeg") or model:FindFirstChild("Left Leg") local rl = model:FindFirstChild("RightFoot") or model:FindFirstChild("RightLowerLeg") or model:FindFirstChild("Right Leg") if not (head and la and ra and ll and rl) then return nil end local pivot = model:GetPivot() local top = head.Position + head.CFrame.UpVector * (head.Size.Y / 2) local lb = ll.Position - ll.CFrame.UpVector * (ll.Size.Y / 2) local rb = rl.Position - rl.CFrame.UpVector * (rl.Size.Y / 2) local bottomY = math.min(lb.Y, rb.Y) return { top = top, bottom = Vector3.new(head.Position.X, bottomY, head.Position.Z), left = la.Position - pivot.RightVector * (la.Size.X / 2), right = ra.Position + pivot.RightVector * (ra.Size.X / 2), } end local function SyncPreview() local C = Esp.Table if not C then return end PreviewConfig.enabled = C["Enabled"] PreviewConfig.box = C["Boxes"]["Enabled"] PreviewConfig.boxcolor = C["Boxes"]["Gradients"]["Top"] PreviewConfig.fillbox = C["Boxes"]["Enabled"] and C["Boxes"]["Filled"]["Enabled"] PreviewConfig.fillcolor = C["Boxes"]["Filled"]["Top"] PreviewConfig.fillopacity = math.clamp((1 - (C["Boxes"]["Filled"]["Transparency"][2] or 0.65)) * 100, 0, 100) PreviewConfig.healthbar = C["Bars"]["Health Bar"]["Enabled"] PreviewConfig.name = C["Texts"]["Name"]["Enabled"] PreviewConfig.namecolor = C["Texts"]["Name"]["Color"] PreviewConfig.distance = C["Texts"]["Distance"]["Enabled"] PreviewConfig.distancecolor = C["Texts"]["Distance"]["Color"] PreviewConfig.weapon = C["Texts"]["Weapon"]["Enabled"] PreviewConfig.weaponcolor = C["Texts"]["Weapon"]["Color"] PreviewConfig.textvisible = C["Texts"]["Name"]["Color"] local Selected = Configuration["Target Menu"]["Selected Player"] PreviewConfig.targetname = Selected and (Selected.DisplayName or Selected.Name) or (Client and (Client.DisplayName or Client.Name)) or "Target" local myHRP = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") local targetHRP = Selected and Selected.Character and Selected.Character:FindFirstChild("HumanoidRootPart") if myHRP and targetHRP then PreviewConfig.distancevalue = math.floor((myHRP.Position - targetHRP.Position).Magnitude) else PreviewConfig.distancevalue = 50 end local targetHum = Selected and Selected.Character and Selected.Character:FindFirstChildOfClass("Humanoid") if targetHum and targetHum.MaxHealth > 0 then PreviewConfig.health = math.clamp(targetHum.Health / targetHum.MaxHealth, 0, 1) else PreviewConfig.health = 0.68 end end local function SetLabel(Label, Text) if Label and Label.Items and Label.Items["Text"] and Label.Items["Text"].Instance then Label.Items["Text"].Instance.Text = tostring(Text) end end UI.SyncPreview = SyncPreview UI.SetLabel = SetLabel SyncPreview() task.spawn(function() while true do task.wait(0.5) pcall(SyncPreview) end end) local Window = Library:Window({ Logo = "Crosshair", Title = "nex.lol", FadeSpeed = 0.16, SidebarWidth = 182, }) Window:Seperator("General") local MainPage = Window:Page({ Name = "Main", Icon = "Crosshair", Search = true }) local CombatPage = Window:Page({ Name = "Combat", Icon = "Sword", Search = true }) local VisualsPage = Window:Page({ Name = "Visuals", Icon = "Eye", Search = true }) Window:Seperator("Misc") local SettingsPage = Window:Page({ Name = "Settings", Icon = "Settings" }) local ConfigsPage = Window:Page({ Name = "Configs", Icon = "Folder" }) do -- \\ Main Page local LocalPlayerSubPage = MainPage:SubPage({ Name = "Local Player", Icon = "Person" }) local TransportationSubPage = MainPage:SubPage({ Name = "Transportation", Icon = "Car" }) local TargetSubPage = MainPage:SubPage({ Name = "Target", Icon = "People" }) do -- \\ Local Player local LocalPlayerSection = LocalPlayerSubPage:Section({ Name = "Player Adjustments", Side = "Left" }) local PlayerModsSection = LocalPlayerSubPage:Section({ Name = "Player Modifications", Side = "Right" }) local PlayerInfoSection = LocalPlayerSubPage:Section({ Name = "Player Information", Side = "Right" }) LocalPlayerSection:Toggle({ Name = "Instant Interact", Flag = "InstantInteraction", Default = Configuration["Player Adjustments"]["Instant Interact"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Instant Interact"]["Enabled"] = v Main["Player Adjustments"]["Instant Interact"]() end }) LocalPlayerSection:Toggle({ Name = "Infinite Stamina", Flag = "InfiniteStamina", Default = Configuration["Player Adjustments"]["Infinite Stamina"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Infinite Stamina"]["Enabled"] = v Main["Player Adjustments"]["Infinite Stamina"]() end }) local hungerThread = nil LocalPlayerSection:Toggle({ Name = "Infinite Hunger", Flag = "InfiniteHunger", Default = Configuration["Player Adjustments"]["Infinite Hunger"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Infinite Hunger"]["Enabled"] = v if hungerThread then task.cancel(hungerThread) hungerThread = nil end if v then hungerThread = task.spawn(function() while Configuration["Player Adjustments"]["Infinite Hunger"]["Enabled"] do local char = Client.Character if char then local burger = char:FindFirstChild("Burger") local event = burger and burger:FindFirstChild("Event") if event then event:FireServer("portions", 11) end end task.wait(0.1) end end) end end }) LocalPlayerSection:Toggle({ Name = "Infinite Jump", Flag = "InfiniteJump", Default = Configuration["Player Adjustments"]["Infinite Jump"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Infinite Jump"]["Enabled"] = v if v then Main["Player Adjustments"]["Infinite Jump"]() end end }) LocalPlayerSection:Toggle({ Name = "No Combat", Flag = "AntiCombat", Default = Configuration["Player Adjustments"]["Anti Combat"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Anti Combat"]["Enabled"] = v Main["Player Adjustments"]["Anti Combat"]() end }) LocalPlayerSection:Toggle({ Name = "No Knockout", Flag = "AntiKnockout", Default = Configuration["Player Adjustments"]["Anti Knockout"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Anti Knockout"]["Enabled"] = v Main["Player Adjustments"]["Anti Knockout"]() end }) LocalPlayerSection:Toggle({ Name = "No Climb", Flag = "AntiClimb", Default = Configuration["Player Adjustments"]["Anti Climb"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Anti Climb"]["Enabled"] = v Main["Player Adjustments"]["Anti Climb"]() end }) LocalPlayerSection:Toggle({ Name = "No On Camera", Flag = "AntiOnCamera", Default = Configuration["Player Adjustments"]["Anti On Camera"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Anti On Camera"]["Enabled"] = v Main["Player Adjustments"]["Anti On Camera"]() end }) local antiRagdollConnection = nil local antiJumpConnection = nil LocalPlayerSection:Toggle({ Name = "No Fall Damage", Flag = "AntiFallDamage", Default = false, Callback = function(v) if antiRagdollConnection then antiRagdollConnection:Disconnect() antiRagdollConnection = nil end if antiJumpConnection then antiJumpConnection:Disconnect() antiJumpConnection = nil end if v then local pl = game:GetService("Players").LocalPlayer local function startAntiFall() antiRagdollConnection = game:GetService("RunService").Stepped:Connect(function() if pl and pl.Character then local h = pl.Character:FindFirstChildOfClass("Humanoid") if h then if h.FloorMaterial == Enum.Material.Air then if h:GetState() == Enum.HumanoidStateType.Physics or h:GetState() == Enum.HumanoidStateType.Ragdoll or h:GetState() == Enum.HumanoidStateType.FallingDown or h:GetState() == Enum.HumanoidStateType.PlatformStanding or h:GetState() == Enum.HumanoidStateType.Freefall then h:ChangeState(Enum.HumanoidStateType.Physics) end for _, obj in ipairs(pl.Character:GetDescendants()) do if obj.Name:lower():find("ragdoll") and obj:IsA("Constraint") then obj:Destroy() end end if h.Health < h.MaxHealth then h.Health = h.MaxHealth end end end end end) end local function onHumanoidAdded(hum) if antiJumpConnection then antiJumpConnection:Disconnect() end antiJumpConnection = hum.StateChanged:Connect(function(_, new) if new == Enum.HumanoidStateType.Jumping then if antiRagdollConnection then antiRagdollConnection:Disconnect() antiRagdollConnection = nil end if antiJumpConnection then antiJumpConnection:Disconnect() antiJumpConnection = nil end end end) end startAntiFall() if pl and pl.Character then local humanoid = pl.Character:FindFirstChildOfClass("Humanoid") if humanoid then onHumanoidAdded(humanoid) end pl.Character.ChildAdded:Connect(function(child) if child:IsA("Humanoid") then onHumanoidAdded(child) end end) end end end }) do -- \\ Player Modifications PlayerModsSection:Toggle({ Name = "Run", Flag = "Speedhack", Default = Configuration["Player Adjustments"]["Walkspeed"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Walkspeed"]["Enabled"] = v Main["Player Adjustments"]["Walkspeed"]() end }) PlayerModsSection:Slider({ Name = "Run Speed", Flag = "SpeedValue", Min = 1, Max = 10, Suffix = "x", Decimals = 1, Default = Configuration["Player Adjustments"]["Walkspeed"]["Value"], Callback = function(v) Configuration["Player Adjustments"]["Walkspeed"]["Value"] = v end }) PlayerModsSection:Toggle({ Name = "Fly", Flag = "FlyToggle", Default = Configuration["Player Adjustments"]["Fly"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Fly"]["Enabled"] = v if v then Main["Player Adjustments"]["FlyActive"] = false task.wait(0.05) task.spawn(Main["Player Adjustments"]["Fly"]) else Main["Player Adjustments"]["FlyActive"] = false end end }) PlayerModsSection:Slider({ Name = "Fly Speed", Flag = "FlySpeedSlider", Min = 10, Max = 200, Suffix = "x", Decimals = 1, Default = Configuration["Player Adjustments"]["Fly"]["Speed"], Callback = function(v) Configuration["Player Adjustments"]["Fly"]["Speed"] = v end }) PlayerModsSection:Toggle({ Name = "Click to Teleport", Flag = "Click_Teleport", Default = Configuration["Player Adjustments"]["Click Teleport"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Click Teleport"]["Enabled"] = v Main["Player Adjustments"]["Click Teleport"]() end }) local ClickTpKeybind = PlayerModsSection:Keybind({ Name = "Click Teleport Key", Flag = "Click_Teleport_Bind", Mode = "Always", Default = Configuration["Player Adjustments"]["Click Teleport"]["Keybind"], Callback = function() if ClickTpKeybind and ClickTpKeybind.Key then Configuration["Player Adjustments"]["Click Teleport"]["Keybind"] = ClickTpKeybind.Key end end }) PlayerModsSection:Slider({ Name = "Teleport Distance", Flag = "Click_Teleport_Distance", Min = 10, Max = 500, Suffix = " studs", Decimals = 1, Default = Configuration["Player Adjustments"]["Click Teleport"]["Distance"], Callback = function(v) Configuration["Player Adjustments"]["Click Teleport"]["Distance"] = v end }) PlayerModsSection:Toggle({ Name = "Spinbot", Flag = "SpinbotToggle", Default = Configuration["Player Adjustments"]["Spinbot"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["Spinbot"]["Enabled"] = v Main["Player Adjustments"]["Spinbot"]() end }) PlayerModsSection:Slider({ Name = "Spinbot Speed", Flag = "SpinbotSpeed", Min = 1, Max = 100, Decimals = 1, Default = Configuration["Player Adjustments"]["Spinbot"]["Speed"], Callback = function(v) Configuration["Player Adjustments"]["Spinbot"]["Speed"] = v end }) PlayerModsSection:Toggle({ Name = "No Clip", Flag = "NoclipToggle", Default = Configuration["Player Adjustments"]["No Clip"]["Enabled"], Callback = function(v) Configuration["Player Adjustments"]["No Clip"]["Enabled"] = v Main["Player Adjustments"]["No Clip"]() end }) end do -- \\ Player Information local Config = { CashAmount = nil } PlayerInfoSection:Textbox({ Name = "Cash Amount", Flag = "CashAmountInput", Placeholder = "Enter cash amount", Default = "", Callback = function(text) local amount = tonumber(text) if amount then Config.CashAmount = amount else Config.CashAmount = nil end end }) PlayerInfoSection:Button({ Name = "Apply Cash Amount - Client :)", Callback = function() if not Config.CashAmount then return end local settings = Client:FindFirstChild("Settings") local currency = settings and settings:FindFirstChild("Currency") if currency then currency:SetAttribute("Cash", Config.CashAmount) end end }) end do -- \\ Quick Buy local QuickBuySection = LocalPlayerSubPage:Section({ Name = "Quick Buy", Side = "Left" }) QuickBuySection:Button({ Name = "Guapo Shop", Callback = function() game:GetService("ReplicatedStorage"):WaitForChild("convoFunction"):FireServer("lilGuapo", true) end }) QuickBuySection:Button({ Name = "Gas Station", Callback = function() game:GetService("ReplicatedStorage"):WaitForChild("convoFunction"):FireServer("gasStation", true) end }) QuickBuySection:Button({ Name = "Ice Blox", Callback = function() game:GetService("ReplicatedStorage"):WaitForChild("convoFunction"):FireServer("iceblox", true) end }) end do -- \\ Dupe local DupesSection = LocalPlayerSubPage:Section({ Name = "Dupe", Side = "Left" }) DupesSection:Button({ Name = "Rollback Dupe", Callback = function() Client:WaitForChild("PlayerGui") :WaitForChild("MainGUI") :WaitForChild("clinicFrame") :WaitForChild("textboxEntry") :FireServer("How \237\190\140") replicatesignal( Client:WaitForChild("PlayerGui") :WaitForChild("MainGUI") :WaitForChild("clinicFrame") .firstNameButton.MouseButton1Down, 1, 1 ) end }) DupesSection:Button({ Name = "Rejoin Server", Style = "Dim", Callback = function() game:GetService("TeleportService"):Teleport(game.PlaceId, Client) end }) DupesSection:Label("Need Custom Name Gamepass.") DupesSection:Label("Need $2,500.") DupesSection:Label("Click Rollback To Start.") DupesSection:Label("Do Anything Freely.") DupesSection:Label("Rejoin To Reset Everything.") end end do -- \\ Transportation do -- \\ Locations local LocationSection = TransportationSubPage:Section({ Name = "Teleport To Location", Side = "Left" }) local locationDropdown locationDropdown = LocationSection:Dropdown({ Name = "Select Location", Flag = "LocationDropdown", Default = "", Multi = false, Items = Main["Locations"]["Update Location List"](), Callback = function(v) if v and v ~= "" then Configuration["Selected Location"] = v end end }) LocationSection:Button({ Name = "Teleport To Location", Callback = function() local loc = Configuration["Selected Location"] if loc then Main["Locations"]["Teleport"](loc) end end }) LocationSection:Button({ Name = "Refresh Locations", Style = "Dim", Callback = function() locationDropdown:Refresh(Main["Locations"]["Update Location List"]()) end }) end do -- \\ Cars local CarsSection = TransportationSubPage:Section({ Name = "Cars", Side = "Right" }) local carDropdown carDropdown = CarsSection:Dropdown({ Name = "Select Car", Flag = "CarDropdown", Default = "", Multi = false, Items = Main["Cars"]["Update List"](), Callback = function(v) if v and v ~= "" then Configuration["Selected Car"] = v end end }) CarsSection:Button({ Name = "Teleport To Car", Callback = function() local car = Configuration["Selected Car"] if car then Main["Cars"]["Teleport"](car) end end }) CarsSection:Button({ Name = "Refresh Cars", Style = "Dim", Callback = function() carDropdown:Refresh(Main["Cars"]["Update List"]()) end }) end do -- \\ Houses local HousesSection = TransportationSubPage:Section({ Name = "Houses", Side = "Right" }) local houseDropdown houseDropdown = HousesSection:Dropdown({ Name = "Select House", Flag = "HouseDropdown", Default = "", Multi = false, Items = Main["Houses"]["Update List"](), Callback = function(v) if v and v ~= "" then Configuration["Selected House"] = v end end }) HousesSection:Button({ Name = "Teleport To House", Callback = function() local house = Configuration["Selected House"] if house then Main["Houses"]["Teleport"](house) end end }) HousesSection:Button({ Name = "Refresh Houses", Style = "Dim", Callback = function() houseDropdown:Refresh(Main["Houses"]["Update List"]()) end }) end do -- \\ ATMs local ATMSection = TransportationSubPage:Section({ Name = "ATMs", Side = "Left" }) local atmDropdown atmDropdown = ATMSection:Dropdown({ Name = "Select ATM", Flag = "ATMDropdown", Default = "", Multi = false, Items = Main["ATMs"]["Update List"](), Callback = function(v) if v and v ~= "" then Configuration["Selected ATM"] = v end end }) ATMSection:Button({ Name = "Teleport To ATM", Callback = function() local atm = Configuration["Selected ATM"] if atm then Main["ATMs"]["Teleport"](atm) end end }) ATMSection:Button({ Name = "Refresh ATMs", Style = "Dim", Callback = function() atmDropdown:Refresh(Main["ATMs"]["Update List"]()) end }) end do -- \\ Gun Shop local GunShopSection = TransportationSubPage:Section({ Name = "Gun Shop", Side = "Left" }) local gunDropdown gunDropdown = GunShopSection:Dropdown({ Name = "Select Gun", Flag = "GunDropdown", Default = "", Multi = false, Items = Main["Gun Shop"]["Update List"](), Callback = function(v) if v and v ~= "" then Configuration["Selected Gun"] = v end end }) GunShopSection:Button({ Name = "Buy Gun", Callback = function() local gun = Configuration["Selected Gun"] if not gun then return end gunDropdown:Refresh(Main["Gun Shop"]["Update List"]()) local ok, err = Main["Gun Shop"]["Buy"](gun) if not ok then Library:Notification("Gun Shop", tostring(err), 4) else Library:Notification("Gun Shop", "Bought " .. gun, 3) end end }) GunShopSection:Button({ Name = "Refresh Guns", Style = "Dim", Callback = function() gunDropdown:Refresh(Main["Gun Shop"]["Update List"]()) end }) end do -- \\ Ammo Shop local AmmoShopSection = TransportationSubPage:Section({ Name = "Ammo Shop", Side = "Right" }) local ammoDropdown ammoDropdown = AmmoShopSection:Dropdown({ Name = "Select Ammo", Flag = "AmmoDropdown", Default = "", Multi = false, Items = Main["Ammo Shop"]["Update List"](), Callback = function(v) if v and v ~= "" then Configuration["Selected Ammo"] = v end end }) AmmoShopSection:Button({ Name = "Buy Ammo", Callback = function() local ammo = Configuration["Selected Ammo"] if not ammo then return end local ok, err = Main["Ammo Shop"]["Buy"](ammo) if not ok then Library:Notification("Ammo Shop", tostring(err), 4) else Library:Notification("Ammo Shop", "Bought " .. ammo, 3) end end }) AmmoShopSection:Button({ Name = "Refresh Ammo", Style = "Dim", Callback = function() ammoDropdown:Refresh(Main["Ammo Shop"]["Update List"]()) end }) end end do -- \\ Target local TargetPickSection = TargetSubPage:Section({ Name = "Target Player", Side = "Left" }) local InfoSection = TargetSubPage:Section({ Name = "Selected Player Information", Side = "Right" }) local playerDropdown playerDropdown = TargetPickSection:Dropdown({ Name = "Select Player", Flag = "TargetMenu_PlayerDropdown", Default = "", Multi = false, Items = Main["Target Menu"]["Update Player List"](), Callback = function(v) if v and v ~= "" then Main["Target Menu"]["Find Player"](v) SyncPreview() end end }) Players.PlayerAdded:Connect(function() playerDropdown:Refresh(Main["Target Menu"]["Update Player List"]()) end) Players.PlayerRemoving:Connect(function() playerDropdown:Refresh(Main["Target Menu"]["Update Player List"]()) end) TargetPickSection:Toggle({ Name = "Spectate", Flag = "TargetMenu_Spectate", Default = false, Callback = function(v) Main["Target Menu"]["Spectate"](v) end }) TargetPickSection:Toggle({ Name = "Bring Player", Flag = "TargetMenu_BringToggle", Default = false, Callback = function(v) Main["Target Menu"]["BringPlayerToggle"](v) end }) TargetPickSection:Toggle({ Name = "Auto Kill Player - Hold Gun", Flag = "TargetMenu_AutoKill", Default = false, Callback = function(v) Main["Target Menu"]["SetAutoKill"](v) end }) TargetPickSection:Button({ Name = "Kill Player - Hold Gun", Callback = function() Main["Target Menu"]["Kill Once"]() end }) TargetPickSection:Button({ Name = "Teleport To Player", Style = "Dim", Callback = function() Main["Target Menu"]["Teleport"]() end }) TargetPickSection:Button({ Name = "Teleport To Player's Car", Style = "Dim", Callback = function() Main["Target Menu"]["TeleportToCar"]() end }) TargetPickSection:Button({ Name = "Teleport To Player's House", Style = "Dim", Callback = function() Main["Target Menu"]["TeleportToHouse"]() end }) do -- \\ Inventory Searcher local InvSection = TargetSubPage:Section({ Name = "Inventory Searcher", Side = "Left" }) local LabelCache = {} local function Refresh() for _, L in ipairs(LabelCache) do SetLabel(L, "") end local Items = Main["Target Menu"]["Fetch Inventory"]() if not Items then return end for i, Item in ipairs(Items) do if not LabelCache[i] then break end SetLabel(LabelCache[i], Item) end end InvSection:Dropdown({ Name = "Searching Mode", Flag = "InvSearcher_Mode", Default = Configuration["Inventory Searcher"]["Searching Mode"], Multi = false, Items = { "Selected Player", "All Players" }, Callback = function(v) Configuration["Inventory Searcher"]["Searching Mode"] = v task.spawn(Refresh) end }) InvSection:Textbox({ Name = "Search Key Word", Flag = "InvSearcher_Keyword", Default = Configuration["Inventory Searcher"]["Search Key Word"], Placeholder = "Search", Callback = function(v) Configuration["Inventory Searcher"]["Search Key Word"] = v task.spawn(Refresh) end }) InvSection:Button({ Name = "Refresh List", Callback = Refresh }) InvSection:Label("Items:") for i = 1, 40 do local L = InvSection:Label("") table.insert(LabelCache, L) end task.spawn(function() local LastSelected = nil while true do task.wait(0.5) local Cur = Main["Target Menu"]["Get Selected"]() local CurName = Cur and Cur.Name or nil if CurName ~= LastSelected then LastSelected = CurName Refresh() end end end) end local HealthLabel = InfoSection:Label("Health: N/A") local DistanceLabel = InfoSection:Label("Distance: N/A") local HeldItemLabel = InfoSection:Label("Held Item: N/A") local StatusLabel = InfoSection:Label("Status: N/A") local CurrencyHeader = InfoSection:Label("Currency:") local CurrencyBank = InfoSection:Label(" Bank: N/A") local CurrencyCash = InfoSection:Label(" Cash: N/A") local CurrencyDirty = InfoSection:Label(" Dirty: N/A") local CurrencyNetWorth = InfoSection:Label(" NetWorth: N/A") local AbilitiesHeader = InfoSection:Label("Abilities:") local AbilitiesSmarts = InfoSection:Label(" Smarts: N/A") local AbilitiesStamina = InfoSection:Label(" Stamina: N/A") local AbilitiesStrength= InfoSection:Label(" Strength: N/A") local AbilitiesStress = InfoSection:Label(" Stress: N/A") local AttributesHeader = InfoSection:Label("Attributes:") local AttributesEnergy = InfoSection:Label(" Energy: N/A") local AttributesHunger = InfoSection:Label(" Hunger: N/A") local AttributesIncar = InfoSection:Label(" Incarcerated: N/A") local function readAttr(bag, key) if not bag then return "N/A" end local attrs = bag:GetAttributes() if attrs[key] == nil then return "N/A" end return tostring(attrs[key]) end task.spawn(function() while true do task.wait(0.25) local Selected = Main["Target Menu"]["Get Selected"]() if not Selected or not Selected.Parent then SetLabel(HealthLabel, "Health: N/A") SetLabel(DistanceLabel, "Distance: N/A") SetLabel(HeldItemLabel, "Held Item: N/A") SetLabel(StatusLabel, "Status: N/A") SetLabel(CurrencyBank, " Bank: N/A") SetLabel(CurrencyCash, " Cash: N/A") SetLabel(CurrencyDirty, " Dirty: N/A") SetLabel(CurrencyNetWorth, " NetWorth: N/A") SetLabel(AbilitiesSmarts, " Smarts: N/A") SetLabel(AbilitiesStamina, " Stamina: N/A") SetLabel(AbilitiesStrength, " Strength: N/A") SetLabel(AbilitiesStress, " Stress: N/A") SetLabel(AttributesEnergy, " Energy: N/A") SetLabel(AttributesHunger, " Hunger: N/A") SetLabel(AttributesIncar, " Incarcerated: N/A") continue end local char = Selected.Character if not char then SetLabel(HealthLabel, "Health: Loading...") SetLabel(DistanceLabel, "Distance: Loading...") SetLabel(HeldItemLabel, "Held Item: Loading...") SetLabel(StatusLabel, "Status: Loading...") else local hum = char:FindFirstChildOfClass("Humanoid") if hum then SetLabel(HealthLabel, "Health: " .. math.floor(hum.Health) .. " / " .. math.floor(hum.MaxHealth)) else SetLabel(HealthLabel, "Health: N/A") end local localHRP = Client.Character and Client.Character:FindFirstChild("HumanoidRootPart") local targetHRP = char:FindFirstChild("HumanoidRootPart") if localHRP and targetHRP then SetLabel(DistanceLabel, "Distance: " .. math.floor((localHRP.Position - targetHRP.Position).Magnitude) .. " studs") else SetLabel(DistanceLabel, "Distance: N/A") end SetLabel(HeldItemLabel, "Held Item: " .. Main["Target Menu"]["Get Held Item"](Selected)) SetLabel(StatusLabel, "Status: " .. Main["Target Menu"]["Get Status"](Selected)) end local settings = Selected:FindFirstChild("Settings") local currencyBag = settings and settings:FindFirstChild("Currency") local abilitiesBag = settings and settings:FindFirstChild("Abilities") local attributesBag = settings and settings:FindFirstChild("Attributes") SetLabel(CurrencyBank, " Bank: " .. readAttr(currencyBag, "Bank")) SetLabel(CurrencyCash, " Cash: " .. readAttr(currencyBag, "Cash")) SetLabel(CurrencyDirty, " Dirty: " .. readAttr(currencyBag, "Dirty")) SetLabel(CurrencyNetWorth, " NetWorth: " .. readAttr(currencyBag, "NetWorth")) SetLabel(AbilitiesSmarts, " Smarts: " .. readAttr(abilitiesBag, "Smarts")) SetLabel(AbilitiesStamina, " Stamina: " .. readAttr(abilitiesBag, "Stamina")) SetLabel(AbilitiesStrength, " Strength: " .. readAttr(abilitiesBag, "Strength")) SetLabel(AbilitiesStress, " Stress: " .. readAttr(abilitiesBag, "Stress")) SetLabel(AttributesEnergy, " Energy: " .. readAttr(attributesBag, "Energy")) SetLabel(AttributesHunger, " Hunger: " .. readAttr(attributesBag, "Hunger")) SetLabel(AttributesIncar, " Incarcerated: " .. readAttr(attributesBag, "Incarcerated")) end end) end end do -- \\ Combat Page local SilentAimSubPage = CombatPage:SubPage({ Name = "Silent Aim", Icon = "Crosshair" }) local AimbotSubPage = CombatPage:SubPage({ Name = "Aimbot", Icon = "Eye" }) local RageSubPage = CombatPage:SubPage({ Name = "Rage", Icon = "Bolt" }) do -- \\ Silent Aim local FOVSection = SilentAimSubPage:Section({ Name = "Field Of View", Side = "Left" }) local VisualsSection = SilentAimSubPage:Section({ Name = "Target Visuals", Side = "Left" }) local MainSection = SilentAimSubPage:Section({ Name = "Silent Aim", Side = "Right" }) local ChecksSection = SilentAimSubPage:Section({ Name = "Target Checks", Side = "Right" }) FOVSection:Toggle({ Name = "Enable Field Of View", Flag = "SilentAim_FOV_Enabled", Default = Configuration["Silent Aim FOV"]["Enabled"], Callback = function(Value) Configuration["Silent Aim FOV"]["Enabled"] = Value end }) FOVSection:Toggle({ Name = "Draw Field Of View", Flag = "SilentAim_FOV_Draw", Default = Configuration["Silent Aim FOV"]["Draw"], Callback = function(Value) Configuration["Silent Aim FOV"]["Draw"] = Value end }) FOVSection:Toggle({ Name = "Fill Field Of View", Flag = "SilentAim_FOV_Fill", Default = Configuration["Silent Aim FOV"]["Fill"], Callback = function(Value) Configuration["Silent Aim FOV"]["Fill"] = Value end }) FOVSection:Slider({ Name = "Field Of View Radius", Flag = "SilentAim_FOV_Radius", Min = 0, Max = 100, Suffix = "px", Decimals = 1, Default = Configuration["Silent Aim FOV"]["Radius"] / 10, Callback = function(Value) Configuration["Silent Aim FOV"]["Radius"] = Value * 10 end }) FOVSection:Slider({ Name = "Field Of View NumSides", Flag = "SilentAim_FOV_NumSides", Min = 3, Max = 100, Suffix = "px", Decimals = 1, Default = Configuration["Silent Aim FOV"]["NumSides"], Callback = function(Value) Configuration["Silent Aim FOV"]["NumSides"] = Value end }) local HighlightToggle = VisualsSection:Toggle({ Name = "Highlight Target", Flag = "SilentAim_HighlightTarget", Default = Configuration["Silent Aim"]["Highlight Target"], Callback = function(Value) Configuration["Silent Aim"]["Highlight Target"] = Value end }) HighlightToggle:Colorpicker({ Name = "Highlight Color", Flag = "SilentAim_HighlightColor", Default = Configuration["Silent Aim"]["Highlight Color"], Alpha = 0, Callback = function(Value) Configuration["Silent Aim"]["Highlight Color"] = Value end }) VisualsSection:Slider({ Name = "Highlight Transparency", Flag = "SilentAim_HighlightTransparency", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = Configuration["Silent Aim"]["Highlight Transparency"] * 100, Callback = function(Value) Configuration["Silent Aim"]["Highlight Transparency"] = Value / 100 end }) local SnaplineToggle = VisualsSection:Toggle({ Name = "Draw Snapline", Flag = "SilentAim_DrawSnapline", Default = Configuration["Silent Aim"]["Draw Snapline"], Callback = function(Value) Configuration["Silent Aim"]["Draw Snapline"] = Value end }) SnaplineToggle:Colorpicker({ Name = "Snapline Color", Flag = "SilentAim_SnaplineColor", Default = Configuration["Silent Aim"]["Snapline Color"], Alpha = 0, Callback = function(Value) Configuration["Silent Aim"]["Snapline Color"] = Value end }) VisualsSection:Slider({ Name = "Snapline Thickness", Flag = "SilentAim_SnaplineThickness", Min = 0, Max = 8, Suffix = "px", Decimals = 1, Default = Configuration["Silent Aim"]["Snapline Thickness"], Callback = function(Value) Configuration["Silent Aim"]["Snapline Thickness"] = Value end }) MainSection:Toggle({ Name = "Enable Silent Aim", ToolTip = { Name = "Silent Aim", Description = "Redirects bullets to the closest target from the mouse" }, Flag = "EnableSilentAim", Default = Configuration["Silent Aim"]["Enable Silent Aim"], Callback = function(Value) Configuration["Silent Aim"]["Enable Silent Aim"] = Value end }) MainSection:Slider({ Name = "Hit Chance", Flag = "HitChance", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = Configuration["Silent Aim"]["Hit Chance"], Callback = function(Value) Configuration["Silent Aim"]["Hit Chance"] = Value end }) MainSection:Dropdown({ Name = "Hit Parts", Flag = "HitParts", Default = Configuration["Silent Aim"]["Hit Parts"], Multi = true, Items = { "Head", "UpperTorso", "LeftUpperArm", "LeftLowerArm", "RightUpperArm", "RightLowerArm", "LowerTorso", "HumanoidRootPart", "LeftUpperLeg", "LeftLowerLeg", "RightUpperLeg", "RightLowerLeg", "LeftFoot", "RightFoot" }, Callback = function(Value) if Value then Configuration["Silent Aim"]["Hit Parts"] = Value end end }) ChecksSection:Toggle({ Name = "Closest Player", Flag = "SilentAim_ClosestPlayer", Default = Configuration["Target Checks"]["Closest Player"], Callback = function(Value) Configuration["Target Checks"]["Closest Player"] = Value end }) ChecksSection:Toggle({ Name = "Health Check", Flag = "SilentAim_HealthCheck", Default = Configuration["Target Checks"]["Health Check"], Callback = function(Value) Configuration["Target Checks"]["Health Check"] = Value end }) ChecksSection:Slider({ Name = "Minimum Health", Flag = "SilentAim_MinimumHealth", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = Configuration["Target Checks"]["Minimum Health"], Callback = function(Value) Configuration["Target Checks"]["Minimum Health"] = Value end }) ChecksSection:Toggle({ Name = "Friend Check", Flag = "SilentAim_FriendCheck", Default = Configuration["Target Checks"]["Friend Check"], Callback = function(Value) Configuration["Target Checks"]["Friend Check"] = Value end }) ChecksSection:Toggle({ Name = "Visible Check", Flag = "SilentAim_VisibleCheck", Default = Configuration["Target Checks"]["Visible Check"], Callback = function(Value) Configuration["Target Checks"]["Visible Check"] = Value end }) ChecksSection:Toggle({ Name = "Distance Check", Flag = "SilentAim_DistanceCheck", Default = Configuration["Target Checks"]["Distance Check"], Callback = function(Value) Configuration["Target Checks"]["Distance Check"] = Value end }) ChecksSection:Slider({ Name = "Maximum Distance", Flag = "SilentAim_MaximumDistance", Min = 0, Max = 1000, Suffix = " studs", Decimals = 1, Default = Configuration["Target Checks"]["Maximum Distance"], Callback = function(Value) Configuration["Target Checks"]["Maximum Distance"] = Value end }) ChecksSection:Toggle({ Name = "Safezone Check", Flag = "SilentAim_SafezoneCheck", Default = Configuration["Target Checks"]["Safezone Check"], Callback = function(Value) Configuration["Target Checks"]["Safezone Check"] = Value end }) end do -- \\ Aimbot local FOVSection = AimbotSubPage:Section({ Name = "Field Of View", Side = "Left" }) local VisualsSection = AimbotSubPage:Section({ Name = "Target Visuals", Side = "Left" }) local MainSection = AimbotSubPage:Section({ Name = "Aimlock", Side = "Right" }) local ChecksSection = AimbotSubPage:Section({ Name = "Target Checks", Side = "Right" }) FOVSection:Toggle({ Name = "Enable Field Of View", Flag = "Aimbot_FOV_Enabled", Default = Configuration["Aimbot FOV"]["Enabled"], Callback = function(Value) Configuration["Aimbot FOV"]["Enabled"] = Value end }) FOVSection:Toggle({ Name = "Draw Field Of View", Flag = "Aimbot_FOV_Draw", Default = Configuration["Aimbot FOV"]["Draw"], Callback = function(Value) Configuration["Aimbot FOV"]["Draw"] = Value end }) FOVSection:Toggle({ Name = "Fill Field Of View", Flag = "Aimbot_FOV_Fill", Default = Configuration["Aimbot FOV"]["Fill"], Callback = function(Value) Configuration["Aimbot FOV"]["Fill"] = Value end }) FOVSection:Slider({ Name = "Field Of View Radius", Flag = "Aimbot_FOV_Radius", Min = 0, Max = 100, Suffix = "px", Decimals = 1, Default = Configuration["Aimbot FOV"]["Radius"] / 10, Callback = function(Value) Configuration["Aimbot FOV"]["Radius"] = Value * 10 end }) FOVSection:Slider({ Name = "Field Of View NumSides", Flag = "Aimbot_FOV_NumSides", Min = 3, Max = 100, Suffix = "px", Decimals = 1, Default = Configuration["Aimbot FOV"]["NumSides"], Callback = function(Value) Configuration["Aimbot FOV"]["NumSides"] = Value end }) MainSection:Toggle({ Name = "Enable Aimlock", Flag = "EnableAimlock", Default = Configuration["Aimlock"]["Enable Aimlock"], Callback = function(Value) Configuration["Aimlock"]["Enable Aimlock"] = Value end }) local AimlockKeybind AimlockKeybind = MainSection:Keybind({ Name = "Aimlock Key", Flag = "AimlockKeybind", Default = Configuration["Aimlock"]["Keybind"], Mode = "Hold", Callback = function(Toggled) Configuration["Aimlock"]["Aimlock_Active"] = Toggled if AimlockKeybind and AimlockKeybind.Key then Configuration["Aimlock"]["Keybind"] = AimlockKeybind.Key Configuration["Aimlock"]["Mode"] = AimlockKeybind.Mode end end }) MainSection:Slider({ Name = "Aimlock Smoothness", Flag = "AimlockSmoothness", Min = 0, Max = 1, Suffix = "x", Decimals = .05, Default = Configuration["Aimlock"]["Aimlock Smoothness"], Callback = function(Value) Configuration["Aimlock"]["Aimlock Smoothness"] = Value end }) MainSection:Dropdown({ Name = "Hit Part", Flag = "AimlockHitPart", Default = "Head", Multi = false, Items = { "Head", "UpperTorso", "LeftUpperArm", "LeftLowerArm", "RightUpperArm", "RightLowerArm", "LowerTorso", "HumanoidRootPart", "LeftUpperLeg", "LeftLowerLeg", "RightUpperLeg", "RightLowerLeg", "LeftFoot", "RightFoot" }, Callback = function(Value) if Value then Configuration["Aimlock"]["Hit Part"] = Value end end }) local HighlightToggle = VisualsSection:Toggle({ Name = "Highlight Target", Flag = "Aimbot_HighlightTarget", Default = Configuration["Aimlock"]["Highlight Target"], Callback = function(Value) Configuration["Aimlock"]["Highlight Target"] = Value end }) HighlightToggle:Colorpicker({ Name = "Highlight Color", Flag = "Aimbot_HighlightColor", Default = Configuration["Aimlock"]["Highlight Color"], Alpha = 0, Callback = function(Value) Configuration["Aimlock"]["Highlight Color"] = Value end }) VisualsSection:Slider({ Name = "Highlight Transparency", Flag = "Aimbot_HighlightTransparency", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = Configuration["Aimlock"]["Highlight Transparency"] * 100, Callback = function(Value) Configuration["Aimlock"]["Highlight Transparency"] = Value / 100 end }) local SnaplineToggle = VisualsSection:Toggle({ Name = "Draw Snapline", Flag = "Aimbot_DrawSnapline", Default = Configuration["Aimlock"]["Draw Snapline"], Callback = function(Value) Configuration["Aimlock"]["Draw Snapline"] = Value end }) SnaplineToggle:Colorpicker({ Name = "Snapline Color", Flag = "Aimbot_SnaplineColor", Default = Configuration["Aimlock"]["Snapline Color"], Alpha = 0, Callback = function(Value) Configuration["Aimlock"]["Snapline Color"] = Value end }) VisualsSection:Slider({ Name = "Snapline Thickness", Flag = "Aimbot_SnaplineThickness", Min = 0, Max = 8, Suffix = "px", Decimals = 1, Default = Configuration["Aimlock"]["Snapline Thickness"], Callback = function(Value) Configuration["Aimlock"]["Snapline Thickness"] = Value end }) ChecksSection:Toggle({ Name = "Closest Player", Flag = "Aimbot_ClosestPlayer", Default = Configuration["Target Checks"]["Closest Player"], Callback = function(Value) Configuration["Target Checks"]["Closest Player"] = Value end }) ChecksSection:Toggle({ Name = "Health Check", Flag = "Aimbot_HealthCheck", Default = Configuration["Target Checks"]["Health Check"], Callback = function(Value) Configuration["Target Checks"]["Health Check"] = Value end }) ChecksSection:Slider({ Name = "Minimum Health", Flag = "Aimbot_MinimumHealth", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = Configuration["Target Checks"]["Minimum Health"], Callback = function(Value) Configuration["Target Checks"]["Minimum Health"] = Value end }) ChecksSection:Toggle({ Name = "Friend Check", Flag = "Aimbot_FriendCheck", Default = Configuration["Target Checks"]["Friend Check"], Callback = function(Value) Configuration["Target Checks"]["Friend Check"] = Value end }) ChecksSection:Toggle({ Name = "Visible Check", Flag = "Aimbot_VisibleCheck", Default = Configuration["Target Checks"]["Visible Check"], Callback = function(Value) Configuration["Target Checks"]["Visible Check"] = Value end }) ChecksSection:Toggle({ Name = "Distance Check", Flag = "Aimbot_DistanceCheck", Default = Configuration["Target Checks"]["Distance Check"], Callback = function(Value) Configuration["Target Checks"]["Distance Check"] = Value end }) ChecksSection:Slider({ Name = "Maximum Distance", Flag = "Aimbot_MaximumDistance", Min = 0, Max = 1000, Suffix = " studs", Decimals = 1, Default = Configuration["Target Checks"]["Maximum Distance"], Callback = function(Value) Configuration["Target Checks"]["Maximum Distance"] = Value end }) ChecksSection:Toggle({ Name = "Safezone Check", Flag = "Aimbot_SafezoneCheck", Default = Configuration["Target Checks"]["Safezone Check"], Callback = function(Value) Configuration["Target Checks"]["Safezone Check"] = Value end }) end do -- \\ Rage local KillAuraSection = RageSubPage:Section({ Name = "Kill Aura", Side = "Left" }) local HeadExpanderSection = RageSubPage:Section({ Name = "Head Expander", Side = "Left" }) local GunModsSection = RageSubPage:Section({ Name = "Gun Modifications", Side = "Right" }) local Cfg = Configuration["Gun Modifications"] KillAuraSection:Toggle({ Name = "Enable Kill Aura", Flag = "KillAura_Enabled", Default = Configuration["Kill Aura"]["Enable Kill Aura"], Callback = function(Value) Configuration["Kill Aura"]["Enable Kill Aura"] = Value end }) KillAuraSection:Slider({ Name = "Delay", Flag = "KillAura_Delay", Min = 0.01, Max = 1, Suffix = "s", Decimals = .01, Default = Configuration["Kill Aura"]["Delay"], Callback = function(Value) Configuration["Kill Aura"]["Delay"] = Value end }) KillAuraSection:Dropdown({ Name = "Hit Part", Flag = "KillAura_HitPart", Default = "Head", Multi = false, Items = { "Head", "UpperTorso", "LowerTorso", "HumanoidRootPart" }, Callback = function(Value) if Value then Configuration["Kill Aura"]["Hit Part"] = Value end end }) KillAuraSection:Toggle({ Name = "Friend Check", Flag = "KillAura_FriendCheck", Default = Configuration["Kill Aura"]["Friend Check"], Callback = function(Value) Configuration["Kill Aura"]["Friend Check"] = Value end }) KillAuraSection:Toggle({ Name = "Visible Check", Flag = "KillAura_VisibleCheck", Default = Configuration["Kill Aura"]["Visible Check"], Callback = function(Value) Configuration["Kill Aura"]["Visible Check"] = Value end }) KillAuraSection:Toggle({ Name = "Distance Check", Flag = "KillAura_DistanceCheck", Default = Configuration["Kill Aura"]["Distance Check"], Callback = function(Value) Configuration["Kill Aura"]["Distance Check"] = Value end }) KillAuraSection:Slider({ Name = "Maximum Distance", Flag = "KillAura_MaximumDistance", Min = 0, Max = 1000, Suffix = " studs", Decimals = 1, Default = Configuration["Kill Aura"]["Maximum Distance"], Callback = function(Value) Configuration["Kill Aura"]["Maximum Distance"] = Value end }) KillAuraSection:Toggle({ Name = "Safezone Check", Flag = "KillAura_SafezoneCheck", Default = Configuration["Kill Aura"]["Safezone Check"], Callback = function(Value) Configuration["Kill Aura"]["Safezone Check"] = Value end }) HeadExpanderSection:Toggle({ Name = "Enable Head Expander", Flag = "EnableHeadExpander", Default = Configuration["Head Expander"]["Enable Head Expander"], Callback = function(Value) Configuration["Head Expander"]["Enable Head Expander"] = Value end }) HeadExpanderSection:Slider({ Name = "Head Size Multiplier", Flag = "HeadSizeMultiplier", Min = 1, Max = 25, Suffix = "x", Decimals = 1, Default = Configuration["Head Expander"]["Head Size Multiplier"], Callback = function(Value) Configuration["Head Expander"]["Head Size Multiplier"] = Value end }) HeadExpanderSection:Toggle({ Name = "Enable Head Transparency", Flag = "EnableHeadTransparency", Default = Configuration["Head Expander"]["Enable Head Transparency"], Callback = function(Value) Configuration["Head Expander"]["Enable Head Transparency"] = Value end }) HeadExpanderSection:Slider({ Name = "Head Transparency", Flag = "HeadTransparency", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = Configuration["Head Expander"]["Head Transparency"] * 100, Callback = function(Value) Configuration["Head Expander"]["Head Transparency"] = Value / 100 end }) HeadExpanderSection:Toggle({ Name = "Ignore Dead People", Flag = "IgnoreDeadPeople", Default = Configuration["Head Expander"]["Ignore Dead People"], Callback = function(Value) Configuration["Head Expander"]["Ignore Dead People"] = Value end }) HeadExpanderSection:Toggle({ Name = "Friend Check", Flag = "HeadExpander_FriendCheck", Default = Configuration["Head Expander"]["Friend Check"], Callback = function(Value) Configuration["Head Expander"]["Friend Check"] = Value end }) HeadExpanderSection:Toggle({ Name = "Visible Check", Flag = "HeadExpander_VisibleCheck", Default = Configuration["Head Expander"]["Visible Check"], Callback = function(Value) Configuration["Head Expander"]["Visible Check"] = Value end }) HeadExpanderSection:Toggle({ Name = "Distance Check", Flag = "HeadExpander_DistanceCheck", Default = Configuration["Head Expander"]["Distance Check"], Callback = function(Value) Configuration["Head Expander"]["Distance Check"] = Value end }) HeadExpanderSection:Toggle({ Name = "Safezone Check", Flag = "HeadExpander_SafezoneCheck", Default = Configuration["Head Expander"]["Safezone Check"], Callback = function(Value) Configuration["Head Expander"]["Safezone Check"] = Value end }) HeadExpanderSection:Slider({ Name = "Maximum Distance", Flag = "HeadExpander_MaximumDistance", Min = 0, Max = 1000, Suffix = " studs", Decimals = 1, Default = Configuration["Head Expander"]["Maximum Distance"], Callback = function(Value) Configuration["Head Expander"]["Maximum Distance"] = Value end }) GunModsSection:Toggle({ Name = "Full Auto", Flag = "GunMods_FullAuto", Default = Cfg["Full Auto"], Callback = function(Value) Cfg["Full Auto"] = Value; if reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Toggle({ Name = "One Shot Damage", Flag = "GunMods_OneShot", Default = Cfg["One Shot Damage"], Callback = function(Value) Cfg["One Shot Damage"] = Value; if reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Toggle({ Name = "No Recoil", Flag = "GunMods_NoRecoil", Default = Cfg["No Recoil"], Callback = function(Value) Cfg["No Recoil"] = Value; if reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Slider({ Name = "Recoil Percentage", Flag = "GunMods_RecoilMultiplier", Min = 0, Max = 1, Suffix = "x", Decimals = .05, Default = Cfg["Recoil Percentage"], Callback = function(Value) Cfg["Recoil Percentage"] = Value; if Cfg["No Recoil"] and reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Toggle({ Name = "No Spread", Flag = "GunMods_NoSpread", Default = Cfg["No Spread"], Callback = function(Value) Cfg["No Spread"] = Value; if reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Slider({ Name = "Spread Percentage", Flag = "GunMods_SpreadMultiplier", Min = 0, Max = 1, Suffix = "x", Decimals = .05, Default = Cfg["Spread Percentage"], Callback = function(Value) Cfg["Spread Percentage"] = Value; if Cfg["No Spread"] and reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Toggle({ Name = "Multi Shot", Flag = "GunMods_MultiShot", Default = Cfg["Multi Shot"], Callback = function(Value) Cfg["Multi Shot"] = Value; if reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Slider({ Name = "Multi Shot Count", Flag = "GunMods_MultiShotCount", Min = 1, Max = 50, Suffix = " bullets", Decimals = 1, Default = Cfg["Multi Shot Count"], Callback = function(Value) Cfg["Multi Shot Count"] = Value; if Cfg["Multi Shot"] and reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Toggle({ Name = "Rapid Fire", Flag = "GunMods_RapidFire", Default = Cfg["Rapid Fire"], Callback = function(Value) Cfg["Rapid Fire"] = Value; if reapplyToCurrent then reapplyToCurrent() end end }) GunModsSection:Slider({ Name = "Rapid Fire Multiplier", Flag = "GunMods_RapidFireMultiplier", Min = 0.01, Max = 1, Suffix = "x", Decimals = .01, Default = Cfg["Rapid Fire Multiplier"], Callback = function(Value) Cfg["Rapid Fire Multiplier"] = Value; if Cfg["Rapid Fire"] and reapplyToCurrent then reapplyToCurrent() end end }) end end do -- \\ Visuals Page local ESPSubPage = VisualsPage:SubPage({ Name = "Player Visuals", Icon = "Person" }) local WorldSubPage = VisualsPage:SubPage({ Name = "World", Icon = "Globe" }) do -- \\ ESP local ESPSection = ESPSubPage:Section({ Name = "Player Visuals", Side = "Left" }) local VisualsSection = ESPSubPage:Section({ Name = "Visual Settings", Side = "Right" }) local ChecksSection = ESPSubPage:Section({ Name = "Target Checks", Side = "Right" }) ESPSection:Toggle({ Name = "Enable ESP", Flag = "ESP_Enabled", Default = EspCfg["Enabled"], Callback = function(v) EspCfg["Enabled"] = v; SyncPreview() end }) local BoxesToggle = ESPSection:Toggle({ Name = "Boxes", Flag = "ESP_Boxes", Default = EspCfg["Boxes"]["Enabled"], Callback = function(v) EspCfg["Boxes"]["Enabled"] = v; SyncPreview() end }) BoxesToggle:Colorpicker({ Name = "Box Color", Flag = "ESP_BoxColor", Default = EspCfg["Boxes"]["Gradients"]["Top"], Alpha = 0, Callback = function(c) EspCfg["Boxes"]["Gradients"]["Top"] = c EspCfg["Boxes"]["Gradients"]["Bot"] = c SyncPreview() end }) ESPSection:Toggle({ Name = "Bounding Box", Flag = "ESP_BB", Default = EspCfg["Boxes"]["Bounding Box"]["Enabled"], Callback = function(v) EspCfg["Boxes"]["Bounding Box"]["Enabled"] = v end }) ESPSection:Slider({ Name = "Bounding Box X", Flag = "ESP_BB_X", Min = -30, Max = 30, Suffix = " px", Decimals = 1, Default = EspCfg["Boxes"]["Bounding Box"]["BoxX"], Callback = function(v) EspCfg["Boxes"]["Bounding Box"]["BoxX"] = v end }) ESPSection:Slider({ Name = "Bounding Box Y", Flag = "ESP_BB_Y", Min = -30, Max = 30, Suffix = " px", Decimals = 1, Default = EspCfg["Boxes"]["Bounding Box"]["BoxY"], Callback = function(v) EspCfg["Boxes"]["Bounding Box"]["BoxY"] = v end }) local GlowToggle = ESPSection:Toggle({ Name = "Box Glow", Flag = "ESP_Glow", Default = EspCfg["Boxes"]["Box Glow"]["Enabled"], Callback = function(v) EspCfg["Boxes"]["Box Glow"]["Enabled"] = v end }) GlowToggle:Colorpicker({ Name = "Glow Color", Flag = "ESP_GlowColor", Default = EspCfg["Boxes"]["Box Glow"]["Top"], Alpha = 0, Callback = function(c) EspCfg["Boxes"]["Box Glow"]["Top"] = c EspCfg["Boxes"]["Box Glow"]["Bot"] = c end }) local FillToggle = ESPSection:Toggle({ Name = "Filled Box", Flag = "ESP_Fill", Default = EspCfg["Boxes"]["Filled"]["Enabled"], Callback = function(v) EspCfg["Boxes"]["Filled"]["Enabled"] = v; SyncPreview() end }) FillToggle:Colorpicker({ Name = "Fill Color", Flag = "ESP_FillColor", Default = EspCfg["Boxes"]["Filled"]["Top"], Alpha = 0, Callback = function(c) EspCfg["Boxes"]["Filled"]["Top"] = c EspCfg["Boxes"]["Filled"]["Bot"] = c SyncPreview() end }) ESPSection:Dropdown({ Name = "Box Type", Flag = "ESP_BoxType", Default = EspCfg["Boxes"]["Type"], Multi = false, Items = { "2D", "Corner" }, Callback = function(v) EspCfg["Boxes"]["Type"] = v; SyncPreview() end }) local HealthToggle = ESPSection:Toggle({ Name = "Health Bar", Flag = "ESP_Health", Default = EspCfg["Bars"]["Health Bar"]["Enabled"], Callback = function(v) EspCfg["Bars"]["Health Bar"]["Enabled"] = v; SyncPreview() end }) local NameToggle = VisualsSection:Toggle({ Name = "Name", Flag = "ESP_Name", Default = EspCfg["Texts"]["Name"]["Enabled"], Callback = function(v) EspCfg["Texts"]["Name"]["Enabled"] = v; SyncPreview() end }) NameToggle:Colorpicker({ Name = "Name Color", Flag = "ESP_NameColor", Default = EspCfg["Texts"]["Name"]["Color"], Alpha = 0, Callback = function(c) EspCfg["Texts"]["Name"]["Color"] = c SyncPreview() end }) local DistToggle = VisualsSection:Toggle({ Name = "Distance Text", Flag = "ESP_DistText", Default = EspCfg["Texts"]["Distance"]["Enabled"], Callback = function(v) EspCfg["Texts"]["Distance"]["Enabled"] = v; SyncPreview() end }) DistToggle:Colorpicker({ Name = "Distance Color", Flag = "ESP_DistColor", Default = EspCfg["Texts"]["Distance"]["Color"], Alpha = 0, Callback = function(c) EspCfg["Texts"]["Distance"]["Color"] = c SyncPreview() end }) local WeaponToggle = VisualsSection:Toggle({ Name = "Weapon Text", Flag = "ESP_WeaponText", Default = EspCfg["Texts"]["Weapon"]["Enabled"], Callback = function(v) EspCfg["Texts"]["Weapon"]["Enabled"] = v; SyncPreview() end }) WeaponToggle:Colorpicker({ Name = "Weapon Color", Flag = "ESP_WeaponColor", Default = EspCfg["Texts"]["Weapon"]["Color"], Alpha = 0, Callback = function(c) EspCfg["Texts"]["Weapon"]["Color"] = c SyncPreview() end }) VisualsSection:Toggle({ Name = "Walking Flag", Flag = "ESP_FlagWalk", Default = EspCfg["Flags"]["Walking"]["Enabled"], Callback = function(v) EspCfg["Flags"]["Walking"]["Enabled"] = v end }) VisualsSection:Toggle({ Name = "Jumping Flag", Flag = "ESP_FlagJump", Default = EspCfg["Flags"]["Jumping"]["Enabled"], Callback = function(v) EspCfg["Flags"]["Jumping"]["Enabled"] = v end }) VisualsSection:Toggle({ Name = "Swimming Flag", Flag = "ESP_FlagSwim", Default = EspCfg["Flags"]["Swimming"]["Enabled"], Callback = function(v) EspCfg["Flags"]["Swimming"]["Enabled"] = v end }) ChecksSection:Toggle({ Name = "Health Check", Flag = "ESP_HealthCheck", Default = EspCfg["Checks"]["Health Check"], Callback = function(v) EspCfg["Checks"]["Health Check"] = v end }) ChecksSection:Slider({ Name = "Minimum Health", Flag = "ESP_MinimumHealth", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = EspCfg["Checks"]["Minimum Health"], Callback = function(v) EspCfg["Checks"]["Minimum Health"] = v end }) ChecksSection:Toggle({ Name = "Friend Check", Flag = "ESP_FriendCheck", Default = EspCfg["Checks"]["Friend Check"], Callback = function(v) EspCfg["Checks"]["Friend Check"] = v end }) ChecksSection:Toggle({ Name = "Visible Check", Flag = "ESP_VisibleCheck", Default = EspCfg["Checks"]["Visible Check"], Callback = function(v) EspCfg["Checks"]["Visible Check"] = v end }) ChecksSection:Toggle({ Name = "Distance Check", Flag = "ESP_DistanceCheck", Default = EspCfg["Checks"]["Distance Check"], Callback = function(v) EspCfg["Checks"]["Distance Check"] = v end }) ChecksSection:Slider({ Name = "Maximum Distance", Flag = "ESP_MaximumDistance", Min = 0, Max = 1000, Suffix = " studs", Decimals = 1, Default = EspCfg["Checks"]["Maximum Distance"], Callback = function(v) EspCfg["Checks"]["Maximum Distance"] = v end }) ChecksSection:Toggle({ Name = "Safezone Check", Flag = "ESP_SafezoneCheck", Default = EspCfg["Checks"]["Safezone Check"], Callback = function(v) EspCfg["Checks"]["Safezone Check"] = v end }) end do -- \\ World local AtmosphereSection = WorldSubPage:Section({ Name = "Atmosphere", Side = "Left" }) AtmosphereSection:Toggle({ Name = "Full Bright", Flag = "WV_Full_Bright", Default = Configuration["World Visuals"]["Full Bright"], Callback = function(v) Configuration["World Visuals"]["Full Bright"] = v end }) AtmosphereSection:Toggle({ Name = "No Fog", Flag = "WV_No_Fog", Default = Configuration["World Visuals"]["No Fog"], Callback = function(v) Configuration["World Visuals"]["No Fog"] = v end }) local AmbiencyToggle = AtmosphereSection:Toggle({ Name = "Change Ambiency", Flag = "WV_Change_Ambiency", Default = Configuration["World Visuals"]["Change Ambiency"], Callback = function(v) Configuration["World Visuals"]["Change Ambiency"] = v end }) AmbiencyToggle:Colorpicker({ Name = "Ambiency Color", Flag = "WV_Ambiency_Color", Default = Configuration["World Visuals"]["Ambiency Color"], Alpha = 0, Callback = function(v) Configuration["World Visuals"]["Ambiency Color"] = v end }) AtmosphereSection:Toggle({ Name = "Change Saturation", Flag = "WV_Change_Saturation", Default = Configuration["World Visuals"]["Change Saturation"], Callback = function(v) Configuration["World Visuals"]["Change Saturation"] = v end }) AtmosphereSection:Slider({ Name = "Modify Saturation", Flag = "WV_Saturation_Value", Min = 0, Max = 100, Suffix = "%", Decimals = 1, Default = (Configuration["World Visuals"]["Saturation Value"] or 1) * 100, Callback = function(v) Configuration["World Visuals"]["Saturation Value"] = v / 100 end }) end end do -- \\ Settings Page local SettingsSubPage = SettingsPage:SubPage({ Name = "Settings", Icon = "Settings" }) local GeneralSection = SettingsSubPage:Section({ Name = "General", Side = "Left" }) local AppearanceSection = SettingsSubPage:Section({ Name = "Appearance", Side = "Left" }) local ThemingSection = SettingsSubPage:Section({ Name = "Theming", Side = "Right" }) local MenuKeybind MenuKeybind = GeneralSection:Keybind({ Name = "Menu Keybind", Flag = "MenuKeybind", Default = Enum.KeyCode.Z, Mode = "Toggle", Callback = function() if MenuKeybind and MenuKeybind.Key then Library:SetMenuKeybind(MenuKeybind.Key, MenuKeybind.Mode) end end }) GeneralSection:Toggle({ Name = "Keybind List", Flag = "ShowKeybinds", Default = true, Callback = function(Value) Library:SetKeybindList(Value) end }) GeneralSection:Toggle({ Name = "Watermark", Flag = "ShowWatermark", Default = true, Callback = function(Value) Library:SetWatermark(Value, { Name = "nex.lol" }) end }) GeneralSection:Toggle({ Name = "ESP Preview", Flag = "ShowEspPreview", Default = true, Callback = function(Value) Library:SetEspPreview(Value, { Title = "nex.lol | ESP Preview" }) end }) AppearanceSection:Slider({ Name = "UI Scale", Flag = "UIScale", Min = 0.5, Max = 1.5, Suffix = "x", Decimals = 2, Default = Library.UIScale or 1, Callback = function(Value) Library:SetUIScale(Value) end }) AppearanceSection:Toggle({ Name = "Mobile Menu Button", Flag = "MobileButton", Default = UserInputService.TouchEnabled, Callback = function(Value) Library:SetMobileButton(Value) end }) for Name, Value in Library.Theme do ThemingSection:Label(Name, "Left"):Colorpicker({ Name = Name, Flag = "Theme" .. Name, Default = Value, Callback = function(Value2) Library.Theme[Name] = Value2 Library:ChangeTheme(Name, Value2) end }) end end do -- \\ Configs Page local ConfigsSubPage = ConfigsPage:SubPage({ Name = "Configs", Icon = "Folder" }) local ConfigsSection = ConfigsSubPage:Section({ Name = "Configs", Side = "Left" }) local ConfigName = "" local ConfigSelected = nil local ConfigsDropdown = ConfigsSection:Dropdown({ Name = "Configs", Flag = "ConfigsList", Items = { }, Multi = false, MaxSize = 85, Callback = function(Value) ConfigSelected = Value end }) ConfigsSection:Textbox({ Name = "Config Name", Default = "", Flag = "ConfigName", Placeholder = "...", Callback = function(Value) ConfigName = Value end }) ConfigsSection:Button({ Name = "Load Config", Callback = function() if not ConfigSelected then return end local Path = Library.Folders.Configs .. "/" .. ConfigSelected .. ".json" local Ok, Data = pcall(readfile, Path) if not Ok then Library:Notification("Error", "Config not found", 3) return end Library:LoadConfig(Data) Library:Notification("Config", "Loaded " .. ConfigSelected, 3) end }):SubButton({ Name = "Save Config", Callback = function() Library:SaveConfig(ConfigSelected) end }) ConfigsSection:Button({ Name = "Create Config", Callback = function() if ConfigName == "" then return end local Path = Library.Folders.Configs .. "/" .. ConfigName .. ".json" if isfile(Path) then Library:Notification("Error", "Config already exists", 3) return end local Ok = pcall(writefile, Path, Library:GetConfig()) if Ok then Library:RefreshConfigsList(ConfigsDropdown) Library:Notification("Config", "Created " .. ConfigName, 3) end end }):SubButton({ Name = "Delete Config", Callback = function() if not ConfigSelected then return end Library:DeleteConfig(ConfigSelected) Library:RefreshConfigsList(ConfigsDropdown) end }) Library:RefreshConfigsList(ConfigsDropdown) end Library:Notification("nex.lol", "Loaded - menu key: " .. Library.FormatKeyName(Library.MenuKeybind), 4) -- DEBUG TAIL task.delay(2, function() local okf = pcall(function() Library.SetFlags["ESP_Enabled"](true) end) print("DBG flag", tostring(okf)) end) task.delay(4, function() local EspLib = Esp.Library local n = 0 for plr, data in pairs(EspLib.Cache) do n = n + 1 if n <= 6 then local ok, err = pcall(function() local w, h, x, y, on = EspLib:CalculateBox(data) print("DBG", plr.Name, "root", tostring(data.RootPart ~= nil), "alive", tostring(data.Alive), "kids", tostring(data.Children and #data.Children), "box", tostring(w), tostring(on)) end) if not ok then print("DBG err", plr.Name, tostring(err)) end end end print("DBG cached", n) local vis = 0 for _, data in pairs(EspLib.Cache) do if data.Objects.TargetHolder and data.Objects.TargetHolder.Visible then vis = vis + 1 end end print("DBG vis", vis, "enabled", tostring(Esp.Table.Enabled)) end)