repeat task.wait() until game:IsLoaded() local StartTick = tick() local Env = getgenv() if Env.Puppyware and Env.Puppyware.Libraries and Env.Puppyware.Libraries.Utility and Env.Puppyware.Libraries.Utility.Unload then Env.Puppyware.Libraries.Utility:Unload() end -- Variables -- Game / Random Functions local game = game local assert, loadstring, select, next, type, typeof, pcall, xpcall, setmetatable, tick, warn, pairs = assert, loadstring, select, next, type, typeof, pcall, xpcall, setmetatable, tick, warn, pairs local stringformat = string.format local getgenv, getrawmetatable, gethiddenproperty = getgenv, getrawmetatable, gethiddenproperty local osclock = os.clock local game_mt = getrawmetatable(game) local game_index = game_mt.__index local GetServiceFunc = game_index(game, "GetService") local GetService = function(...) return GetServiceFunc(game, ...) end local FindFirstChild = game_index(game, "FindFirstChild") local FindFirstChildWhichIsA = game_index(game, "FindFirstChildWhichIsA") local IsA = game_index(game, "IsA") local camera_mt = getrawmetatable(workspace.CurrentCamera) local camera_index = camera_mt.__index local WorldToViewportPoint = camera_index(workspace.CurrentCamera, "WorldToViewportPoint") local workspace_mt = getrawmetatable(workspace) local workspace_index = workspace_mt.__index local Raycast = workspace_index(workspace, "Raycast") -- -- Services local Players = GetService("Players") local UserInputService = GetService("UserInputService") local RunService = GetService("RunService") local HttpService = GetService("HttpService") local Workspace = GetService("Workspace") local CoreGui = GetService("CoreGui") local ContextActionService = GetService("ContextActionService") local TeleportService = GetService("TeleportService") local Lighting = GetService("Lighting") local Stats = GetService("Stats") local TweenService = GetService("TweenService") local Debris = GetService("Debris") local TextChatService = GetService("TextChatService") local ReplicatedStorage = GetService("ReplicatedStorage") -- -- Game local Camera = Workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local PlaceId = game.PlaceId local Mouse = LocalPlayer:GetMouse() local TextChannels = FindFirstChild(TextChatService, "TextChannels") local MainChannel = TextChannels and FindFirstChild(TextChannels, "RBXGeneral") -- -- Position Spaces local Vector2new = Vector2.new local Vector3new = Vector3.new local CFramenew = CFrame.new local CFrameAngles = CFrame.Angles local Vector2zero = Vector2.zero local Vector3zero = Vector3.zero local UDim2new = UDim2.new local UDimnew = UDim.new local UDim2offset = UDim2.fromOffset -- -- Math Functions local mathclamp = math.clamp local mathfloor = math.floor local mathcos = math.cos local mathabs = math.abs local mathatan2 = math.atan2 local mathrad = math.rad local mathsin = math.sin local mathmax = math.max local mathmin = math.min local mathpi = math.pi local mathacos = math.acos local mathsqrt = math.sqrt local mathrandom = math.random local mathdeg = math.deg local halfpi = mathpi / 2 -- -- Color Functions local Color3new = Color3.new local Color3fromRGB = Color3.fromRGB local Color3fromHSV = Color3.fromHSV local Color3fromHex = Color3.fromHex -- -- Table Functions local tableremove = table.remove local tableinsert = table.insert local tablefind = table.find local tablesort = table.sort local tableclear = table.clear local tableconcat = table.concat local tableunpack = table.unpack -- -- Extra Functions local coroutinewrap = coroutine.wrap local taskwait = task.wait local Drawingnew = Drawing.new local Instancenew = Instance.new local taskspawn = task.spawn local MouseMoveRel = Env.mousemoverel -- local Controller = { Alive = false, RootPart = nil, Humanoid = nil, Character = nil } local Misc = { ChatSpam = { Nerd = { "im such a skid ๐Ÿ˜œ", "math is hard ๐Ÿงฎ", "i speak klingon ๐Ÿ‘ฝ", "i wear socks with sandals ๐Ÿ‘ฃ", "my pocket ๐Ÿ˜Ž protector brings all the nerds to the yard", "phd in quantum mechanics from hogwarts ๐ŸŽ“", "im a nerd and im proud ๐Ÿค“๐Ÿ‘Š", "i mainframe ๐Ÿ’ป for fun", "i dream in binary ๐Ÿ’ญ", "im fluent in c++ ๐Ÿ’ป", "my code is poetry ๐Ÿ“", }, Random = { "sorry i hurt your roblox ego but look -> ๐Ÿค I DON'T CARE", "i ๐Ÿ˜Ž hacked my toaster", "i eat ones ๐Ÿ˜‹ and zeros for breakfast", "i hacked nasa ๐Ÿš€", "im a keyboard ninja โŒจ๏ธ๐Ÿฅ‹", "i hacked ๐Ÿ˜ˆ my calculator", "banlands ๐Ÿ”จ ๐Ÿ—ป down ๐Ÿš๏ธ โฌ STOP CRASHING BANLANDS!! ๐Ÿคฃ", "password is ๐Ÿ˜ก password", "i can hack anything ๐Ÿ’ป๐Ÿ”“", "i can play doom on a pregnancy test ๐ŸŽฎ๐Ÿคฐ๐Ÿ˜Ž", "i can play doom on my fridge ๐ŸŽฎ๐Ÿ•", "my screen ๐ŸŽจ is my canvas", "i'm the king ๐Ÿ‘‘ of cyber", "TURN YOUR HACKS OFF!!! ๐Ÿฅน๐Ÿฅน๐Ÿ˜ค๐Ÿ˜ก๐Ÿ˜ก๐Ÿ˜ก", "BROO THIS IS SO UNFAIR ๐Ÿ˜ญ๐Ÿ˜ข TURN OFF PATHFINDING ๐Ÿ˜ก๐Ÿ’ข๐Ÿ’ข๐Ÿ’ข๐Ÿ’ข๐Ÿ’ข๐Ÿ˜’๐Ÿ™„", "TURN TELEPORT SCANNING OFF NOWWW ๐Ÿ˜ก๐Ÿ˜ก๐Ÿ’ข๐Ÿ’ข๐Ÿ’ข๐Ÿ’ข๐Ÿ’ข๐Ÿ’ข๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ", "i surf the dark web ๐Ÿ•ธ๏ธ", "votekick him!!!!!!! ๐Ÿ˜  vk VK VK VK VOTEKICK HIM!!!!!!!!! ๐Ÿ˜  ๐Ÿ˜ข VOTE KICK !!!!! PRESS Y WHY DIDNT U PRESS Y LOL!!!!!! ๐Ÿ˜ญ ", "YOU VOtEkickED tHe wrong PERson!!!!!!!!!", "i dream in code ๐Ÿ’ญ๐Ÿ’ป", "i kick kittens ๐Ÿฑ๐Ÿ‘Ÿ", "i once ๐Ÿ˜‚ kicked a soccer ball", "ๅบ†ๅด‡ไฝ ๅฅฝๆˆ‘่ฎจๅŽŒไฝ ๆ„š่ ข็š„ๆฏๆ„š่ ข็š„ๆฏๅบ†ๅด‡", "ๅฎŒๆˆไธŽ่‰ๅฑ‹ไธคไธช่‹ๅทดๅฎŒๆˆไธŽ่‰ๅฑ‹ไธคไธช่‹ๅทดๅฎŒๆˆไธŽ่‰ๅฑ‹", "่ฏถๆฏ”่ฅฟ่ฟชไผŠ่‰พๅผ—ๅ‰่‰พๅฐบ่‰พๆฐๅผ€่‰พๅ‹’่‰พ้ฉฌ่‰พๅจœๅ“ฆๅฑๅ‰ๅพ", "ๆŒๆœ‰ๆฏ็ญๆ€ง็š„็ฅž็ป้‡ๆ™ฏๆฐ”ๆธธ่กŒ่„ธ็บข้’้“œ่‰ฒ็ฑปๅˆซๅˆ›ๆ„ๆกˆ", "้Ÿณ้ข‘ๅฐ‘ๅนดๅ…ฌๆฐ‘่ฎฐๅฟ†ๆฌฒๆฑ‚ๆ— ๅฐฝ heywe ๅƒตๅฐธๅผบ่ฟซ่บซไฝ“ๅ“‘้›†ไธญๆŽ’ๆฐด", "SETBASEWALKSPEED(999) SPEED CHEAT!!!!", "i kick ๐Ÿšช doors open", "i kicked a hole in space โฐ time", "i kicked my computer ๐Ÿ’ป๐Ÿ‘Ÿ", "PASTE PASTE ITS PASTEEEEEDDDDDDD!!!!!!!", "HAHAHAHAHAHAHA", "i kicked a can down the road ๐Ÿฅซ๐Ÿ‘Ÿ", "i kickflip in my dreams ๐Ÿ›น๐Ÿ’ญ", "i kickstart my day โ˜• with coffee", "i kick back ๐Ÿ›‹๏ธ and relax", "i kickstart revolutions ๐Ÿ”„๐Ÿ‘Ÿ", "i kickflip over obstacles ๐Ÿ›นโ†—๏ธ", "global๐ŸŒ warming๐Ÿฅต freezing โ„๏ธ", "i cooked soup ๐Ÿฒ in the fridge โ„๏ธ", "im a ๐Ÿฆ popsicle", "sweating like a โ˜€๏ธ snowman in summer ๐Ÿ˜…", "squirrel using ๐Ÿฟ๏ธ oven mitts ๐ŸฅŠ", "cold as polar bear ๐Ÿปโ„๏ธ toenails", "im hotter than the โ˜€๏ธ sun ๐Ÿ”ฅ", "im colder than ๐Ÿช pluto โ„๏ธ", "im as cool as ice โ„๏ธ", "im melting like ๐Ÿงˆ butter ๐Ÿ”ฅ", "im burning like a ๐Ÿ”ฅ furnace ๐Ÿ’จ", "monkey see ๐Ÿ’", "monkey do ๐Ÿ™ˆ", "banana time ๐ŸŒ", "monkey business ๐Ÿต๐Ÿ’ผ", "monkeying around ๐Ÿ™Š", "ape escape ๐Ÿฆ", "chimp champ ๐Ÿต๐Ÿ†", "gorilla warfare ๐Ÿฆโš”๏ธ", "jungle swing ๐ŸŒด๐Ÿ’", "primate party ๐ŸŽ‰๐Ÿต", "ape-tastic ๐Ÿฆ๐ŸŽ‰", }, }, Emojis = { [1] = "๐Ÿ˜Š", [2] = "๐Ÿ˜ข", [3] = "๐Ÿ˜‚", [4] = "โค๏ธ", [5] = "๐Ÿ‘", [6] = "๐Ÿ‘Ž", [7] = "๐Ÿ”ฅ", [8] = "๐Ÿ‘", [9] = "๐Ÿš€", [10] = "๐Ÿค”", [11] = "๐Ÿ˜ฎ", [12] = "๐Ÿ˜Ž", [13] = "๐Ÿ˜", [14] = "๐Ÿ˜ก", [15] = "๐Ÿ‘ป", [16] = "๐Ÿ‘ฝ", [17] = "๐Ÿค–", [18] = "๐Ÿฆ„", [19] = "๐Ÿ˜บ", [20] = "๐Ÿถ", [21] = "๐Ÿ ", [22] = "๐Ÿ•", [23] = "๐ŸŒฎ", [24] = "๐Ÿฐ", [25] = "โ˜•", [26] = "๐Ÿบ", [27] = "๐Ÿท", [28] = "๐Ÿน", [29] = "๐ŸŽต", [30] = "๐ŸŽฌ", [31] = "๐ŸŽฎ", [32] = "โšฝ", [33] = "๐Ÿ€", [34] = "โšพ", [35] = "๐Ÿˆ", [36] = "๐ŸŽพ", [37] = "โ›ณ", [38] = "๐Ÿ„", [39] = "โ›ท๏ธ", [40] = "๐Ÿ‚", [41] = "๐Ÿšด", [42] = "๐ŸŠ", [43] = "๐Ÿƒ", [44] = "๐Ÿฅพ", }, Symbols = { [1] = "!", [2] = "@", [3] = "#", [4] = "$", [5] = "%", [6] = "^", [7] = "&", [8] = "*", [9] = "(", [10] = ")", [11] = "-", [12] = "_", [13] = "+", [14] = "=", [15] = "[", [16] = "{", [17] = "]", [18] = "}", [19] = "|", [20] = [[\]], [21] = ";", [22] = ":", [23] = '"', [24] = "'", [25] = "<", [26] = ",", [27] = ">", [28] = ".", [29] = "?", [30] = "/", }, Sleeping = false, Gun = { Shotguns = { "[Double-Barrel SG]", "[TacticalShotgun]", "[Shotgun]" } }, GunConnections = {}, CurrentHealth = {}, Hitsounds = { ["Skeet"] = "rbxassetid://5447626464", ["Slap"] = "rbxassetid://5447626464", ["Rust"] = "rbxassetid://5043539486", ["Bag"] = "rbxassetid://5043539486" }, Prediction = { ["Close"] = { [30] = 0.12542465767834, [40] = 0.12742, [60] = 0.134543, [70] = 0.141, [80] = 0.1413, [90] = 0.1487, [120] = 0.15738, [140] = 0.12534, [200] = 0.1652131 }, ["Mid"] = { [30] = 0.12588, [40] = 0.11, [50] = 0.127668, [60] = 0.12731, [80] = 0.1365, [90] = 0.138, [120] = 0.157, [140] = 0.13432, [200] = 0.16779123 }, ["Far"] = { [30] = 0.11120, [40] = 0.11120, [50] = 0.12542465767834, [60] = 0.12921, [70] = 0.1311, [80] = 0.1311, [90] = 0.1311, [120] = 0.14325, [140] = 0.138876, [200] = 0.165455312399999 } } } local Visuals = { BulletTracers = { ["Default"] = "rbxassetid://446111271", ["Beam"] = "rbxassetid://7151777149", ["Ion Beam"] = "rbxassetid://2950987173", ["Lightning"] = "rbxassetid://7151778302", ["Pulsing"] = "rbxassetid://11226108137", ["DNA"] = "rbxassetid://6511613786", }, Materials = { ["ForceField"] = Enum.Material.ForceField, -- ["Glass"] = Enum.Material.Glass, -- ["Neon"] = Enum.Material.Neon, -- ["Plastic"] = Enum.Material.Plastic, -- ["Foil"] = Enum.Material.Foil, -- ["Ice"] = Enum.Material.Ice, -- ["Snow"] = Enum.Material.Snow, -- ["Cobblestone"] = Enum.Material.Cobblestone, -- ["Marble"] = Enum.Material.Marble, }, Skyboxes = { ["Purple Nebula"] = { SkyboxBk = "rbxassetid://159454299", SkyboxDn = "rbxassetid://159454296", SkyboxFt = "rbxassetid://159454293", SkyboxLf = "rbxassetid://159454286", SkyboxRt = "rbxassetid://159454300", SkyboxUp = "rbxassetid://159454288" }, ["Night Sky"] = { SkyboxBk = "rbxassetid://12064107", SkyboxDn = "rbxassetid://12064152", SkyboxFt = "rbxassetid://12064121", SkyboxLf = "rbxassetid://12063984", SkyboxRt = "rbxassetid://12064115", SkyboxUp = "rbxassetid://12064131" }, ["Pink Daylight"] = { SkyboxBk = "rbxassetid://271042516", SkyboxDn = "rbxassetid://271077243", SkyboxFt = "rbxassetid://271042556", SkyboxLf = "rbxassetid://271042310", SkyboxRt = "rbxassetid://271042467", SkyboxUp = "rbxassetid://271077958" }, ["Morning Glow"] = { SkyboxBk = "rbxassetid://1417494030", SkyboxDn = "rbxassetid://1417494146", SkyboxFt = "rbxassetid://1417494253", SkyboxLf = "rbxassetid://1417494402", SkyboxRt = "rbxassetid://1417494499", SkyboxUp = "rbxassetid://1417494643" }, ["Setting Sun"] = { SkyboxBk = "rbxassetid://626460377", SkyboxDn = "rbxassetid://626460216", SkyboxFt = "rbxassetid://626460513", SkyboxLf = "rbxassetid://626473032", SkyboxRt = "rbxassetid://626458639", SkyboxUp = "rbxassetid://626460625" }, ["Cache"] = { SkyboxBk = "rbxassetid://220513302", SkyboxDn = "rbxassetid://213221473", SkyboxFt = "rbxassetid://220513328", SkyboxLf = "rbxassetid://220513318", SkyboxRt = "rbxassetid://220513279", SkyboxUp = "rbxassetid://220513345" }, ["Fade Blue"] = { SkyboxBk = "rbxassetid://153695414", SkyboxDn = "rbxassetid://153695352", SkyboxFt = "rbxassetid://153695452", SkyboxLf = "rbxassetid://153695320", SkyboxRt = "rbxassetid://153695383", SkyboxUp = "rbxassetid://153695471" }, ["Elegant Morning"] = { SkyboxBk = "rbxassetid://153767241", SkyboxDn = "rbxassetid://153767216", SkyboxFt = "rbxassetid://153767266", SkyboxLf = "rbxassetid://153767200", SkyboxRt = "rbxassetid://153767231", SkyboxUp = "rbxassetid://153767288" }, ["Neptune"] = { SkyboxBk = "rbxassetid://218955819", SkyboxDn = "rbxassetid://218953419", SkyboxFt = "rbxassetid://218954524", SkyboxLf = "rbxassetid://218958493", SkyboxRt = "rbxassetid://218957134", SkyboxUp = "rbxassetid://218950090" }, ["Redshift"] = { SkyboxBk = "rbxassetid://401664839", SkyboxDn = "rbxassetid://401664862", SkyboxFt = "rbxassetid://401664960", SkyboxLf = "rbxassetid://401664881", SkyboxRt = "rbxassetid://401664901", SkyboxUp = "rbxassetid://401664936" }, ["Aesthetic Night"] = { SkyboxBk = "rbxassetid://1045964490", SkyboxDn = "rbxassetid://1045964368", SkyboxFt = "rbxassetid://1045964655", SkyboxLf = "rbxassetid://1045964655", SkyboxRt = "rbxassetid://1045964655", SkyboxUp = "rbxassetid://1045962969" }, ["Minecraft"] = { SkyboxBk = "rbxassetid://1876545003", SkyboxDn = "rbxassetid://1876544331", SkyboxFt = "rbxassetid://1876542941", SkyboxLf = "rbxassetid://1876543392", SkyboxRt = "rbxassetid://1876543764", SkyboxUp = "rbxassetid://1876544642" } }, PartMaterials = { Minecraft = { Wood = "rbxassetid://3258599312", WoodPlanks = "rbxassetid://8676581022", Brick = "rbxassetid://8558400252", Cobblestone = "rbxassetid://5003953441", Concrete = "rbxassetid://7341687607", DiamondPlate = "rbxassetid://6849247561", Fabric = "rbxassetid://118776397", Granite = "rbxassetid://4722586771", Grass = "rbxassetid://4722588177", Ice = "rbxassetid://3823766459", Marble = "rbxassetid://62967586", Metal = "rbxassetid://62967586", Sand = "rbxassetid://152572215" }, }, Hits = {} } local ESP = { Players = {}, Items = {}, Image = nil, EnemyImage = nil, TeamImage = nil, FileType = nil, EnemyFileType = nil, TeamFileType = nil, } local Aimbot = { Targets = {}, Target = nil, elapsedTime = 0, OldTarget = nil, Position = nil, } local SilentAim = { Targets = {}, Target = nil, Position = nil, } local ConvertKeys = { [Enum.KeyCode.LeftShift] = "LS", [Enum.KeyCode.RightShift] = "RS", [Enum.KeyCode.LeftControl] = "LC", [Enum.KeyCode.RightControl] = "RC", [Enum.KeyCode.Insert] = "INS", [Enum.KeyCode.Backspace] = "BS", [Enum.KeyCode.Return] = "Ent", [Enum.KeyCode.LeftAlt] = "LA", [Enum.KeyCode.RightAlt] = "RA", [Enum.KeyCode.CapsLock] = "CAPS", [Enum.KeyCode.One] = "1", [Enum.KeyCode.Two] = "2", [Enum.KeyCode.Three] = "3", [Enum.KeyCode.Four] = "4", [Enum.KeyCode.Five] = "5", [Enum.KeyCode.Six] = "6", [Enum.KeyCode.Seven] = "7", [Enum.KeyCode.Eight] = "8", [Enum.KeyCode.Nine] = "9", [Enum.KeyCode.Zero] = "0", [Enum.KeyCode.KeypadOne] = "Num1", [Enum.KeyCode.KeypadTwo] = "Num2", [Enum.KeyCode.KeypadThree] = "Num3", [Enum.KeyCode.KeypadFour] = "Num4", [Enum.KeyCode.KeypadFive] = "Num5", [Enum.KeyCode.KeypadSix] = "Num6", [Enum.KeyCode.KeypadSeven] = "Num7", [Enum.KeyCode.KeypadEight] = "Num8", [Enum.KeyCode.KeypadNine] = "Num9", [Enum.KeyCode.KeypadZero] = "Num0", [Enum.KeyCode.Minus] = "-", [Enum.KeyCode.Equals] = "=", [Enum.KeyCode.Tilde] = "~", [Enum.KeyCode.LeftBracket] = "[", [Enum.KeyCode.RightBracket] = "]", [Enum.KeyCode.RightParenthesis] = ")", [Enum.KeyCode.LeftParenthesis] = "(", [Enum.KeyCode.Semicolon] = ",", [Enum.KeyCode.Quote] = "'", [Enum.KeyCode.BackSlash] = "\\", [Enum.KeyCode.Comma] = ",", [Enum.KeyCode.Period] = ".", [Enum.KeyCode.Slash] = "/", [Enum.KeyCode.Asterisk] = "*", [Enum.KeyCode.Plus] = "+", [Enum.KeyCode.Period] = ".", [Enum.KeyCode.Backquote] = "`", [Enum.UserInputType.MouseButton1] = "MB1", [Enum.UserInputType.MouseButton2] = "MB2", [Enum.UserInputType.MouseButton3] = "MB3", [Enum.KeyCode.Escape] = "ESC", [Enum.KeyCode.Space] = "SPC", } local Library = { Objects = {}, ThemeMap = {}, ThemeInstances = {}, Images = { Saturation = "rbxassetid://13901004307", Checkers = "http://www.roblox.com/asset/?id=18274452449", Scroll = "rbxassetid://12776289446" }, Theme = { ["Outline"] = Color3fromRGB(0, 0, 0), ["Background"] = Color3fromRGB(37, 37, 37), ["Accent"] = Color3fromRGB(0, 122, 204), ["Text"] = Color3fromRGB(255, 255, 255), ["Tab Enabled"] = Color3fromRGB(65, 65, 65), ["Tab Disabled"] = Color3fromRGB(45, 45, 45), ["Element Background"] = Color3fromRGB(45, 45, 45), ["Dark Text"] = Color3fromRGB(190, 190, 190) }, OriginalTheme = { ["Outline"] = Color3fromRGB(0, 0, 0), ["Background"] = Color3fromRGB(37, 37, 37), ["Accent"] = Color3fromRGB(0, 122, 204), ["Text"] = Color3fromRGB(255, 255, 255), ["Tab Enabled"] = Color3fromRGB(65, 65, 65), ["Tab Disabled"] = Color3fromRGB(45, 45, 45), ["Element Background"] = Color3fromRGB(45, 45, 45), ["Dark Text"] = Color3fromRGB(190, 190, 190) }, Folder = "Puppyware", ScreenGui = nil, TweenSpeed = 0.2, LerpSpeed = 0.02, TweenEasingStyle = Enum.EasingStyle.Quint, Flags = {}, ConfigFlags = {}, CopiedColor = { c = Color3fromRGB(255, 255, 255), a = 1, }, Keybinds = {}, Notifications = {}, Fps = 0 } local Utility = { Connections = {}, Objects = {}, Drawings = {}, BindToRenderSteps = {}, DrawingTypes = { "Quad", "Square", "Circle", "Text", "Line", "Triangle", "Font" }, Errors = {}, } local Desync = { Positions = { Old = nil, New = nil }, Overwriten = nil, ClonedCharacter = nil, NewStatus = nil, } local Puppyware = { Libraries = { Controller = Controller, Misc = Misc, Visuals = Visuals, ESP = ESP, Aimbot = Aimbot, Library = Library, Utility = Utility, Desync = Desync }, User = "developer", Players = {}, } local Games = { [2788229376] = {Arg = "UpdateMousePosI", Remote = "MainEvent"}, [16033173781] = {Arg = "UpdateMousePosI", Remote = "MainEvent"}, [17344804827] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [7213786345] = {Arg = "UpdateMousePosI", Remote = "MainEvent"}, [9825515356] = {Arg = "MousePosUpdate", Remote = "MainEvent"}, [5602055394] = {Arg = "MousePos", Remote = "Bullets"}, [7951883376] = {Arg = "MousePos", Remote = "Bullets"}, [9183932460] = {Arg = "UpdateMousePos", Remote = ".gg/untitledhood"}, [17403265390] = {Arg = "MOUSE", Remote = "MAINEVENT"}, [14412601883] = {Arg = "MOUSE", Remote = "MAINEVENT"}, [18111448661] = {Arg = "MOUSE", Remote = "MAINEVENT"}, [14487637618] = {Arg = "MOUSE", Remote = "MAINEVENT"}, [11143225577] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [14413712255] = {Arg = "MOUSE", Remote = "MAINEVENT"}, [17714122625] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [12867571492] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [11867820563] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [17109142105] = {Arg = "MoonUpdateMousePos", Remote = "MainEvent"}, [15186202290] = {Arg = "MOUSE", Remote = "MAINEVENT"}, [16469595315] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [17319408836] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [14975320521] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, [17200018150] = {Arg = "UpdateMousePos", Remote = "MainEvent"}, } local Gravity = Vector3new(0, workspace.Gravity, 0) Env.Puppyware = Puppyware -- -- Adonis Bypass do -- i do this, so these variables go nowhere else, i got this bypass from J. if getrenv and getrenv().debug and getrenv().debug.info and hookfunction and setthreadidentity then local Hooked = {} local Detected, Kill setthreadidentity(2) for _,v in getgc(true) do if type(v) == "table" then local DetectFunc = rawget(v, "Detected") local KillFunc = rawget(v, "Kill") if type(DetectFunc) == "function" and not Detected then Detected = DetectFunc local Old; Old = hookfunction(Detected, function(Action, Info, NoCrash) return true end) table.insert(Hooked, Detected) end if rawget(v, "Variables") and rawget(v, "Process") and type(KillFunc) == "function" and not Kill then Kill = KillFunc table.insert(Hooked, Kill) end end end local OldInfo; OldInfo = hookfunction(getrenv().debug.info, newcclosure(function(...) local LevelOrFunc, Info = ... if Detected and LevelOrFunc == Detected then return coroutine.yield(coroutine.running()) end return OldInfo(...) end)) setthreadidentity(7) end end -- -- Custom Fonts local fonts = { { ttf = "Proggy.ttf", json = "Proggy.json", url = "https://raw.githubusercontent.com/OxygenClub/Random-LUAS/main/Proggy.txt", name = "Proggy" }, { ttf = "Minecraftia.ttf", json = "Minecraftia.json", url = "https://raw.githubusercontent.com/OxygenClub/Random-LUAS/main/Minecraftia.txt", name = "Minecraftia" }, { ttf = "SmallestPixel7.ttf", json = "SmallestPixel7.json", url = "https://raw.githubusercontent.com/OxygenClub/Random-LUAS/main/Smallest%20Pixel.txt", name = "SmallestPixel7" }, { ttf = "Verdana.ttf", json = "Verdana.json", url = "https://raw.githubusercontent.com/OxygenClub/Random-LUAS/main/Verdana.txt", name = "Verdana" }, { ttf = "VerdanaBold.ttf", json = "VerdanaBold.json", url = "https://raw.githubusercontent.com/OxygenClub/Random-LUAS/main/Verdana%20Bold.txt", name = "VerdanaBold" }, { ttf = "Tahoma.ttf", json = "Tahoma.json", url = "https://raw.githubusercontent.com/OxygenClub/Random-LUAS/main/Tahoma.txt", name = "Tahoma" }, { ttf = "TahomaBold.ttf", json = "TahomaBold.json", url = "https://raw.githubusercontent.com/OxygenClub/Random-LUAS/main/Tahoma%20Bold.txt", name = "TahomaBold" } } for _, font in fonts do if not isfile(font.ttf) then writefile(font.ttf, base64_decode(game:HttpGet(font.url))) end if not isfile(font.json) then local fontConfig = { name = font.name, faces = { { name = "Regular", weight = 200, style = "normal", assetId = getcustomasset(font.ttf) } } } writefile(font.json, HttpService:JSONEncode(fontConfig)) end end local DrawingFontsEnum = { [0] = Font.new(getcustomasset("Verdana.json"), Enum.FontWeight.Regular), [1] = Font.new(getcustomasset("SmallestPixel7.json"), Enum.FontWeight.Regular), [2] = Font.new(getcustomasset("Proggy.json"), Enum.FontWeight.Regular), [3] = Font.new(getcustomasset("Minecraftia.json"), Enum.FontWeight.Regular), [4] = Font.new(getcustomasset("VerdanaBold.json"), Enum.FontWeight.Regular), [5] = Font.new(getcustomasset("Tahoma.json"), Enum.FontWeight.Regular), [6] = Font.new(getcustomasset("TahomaBold.json"), Enum.FontWeight.Regular), } function GetFontFromIndex(fontIndex) return DrawingFontsEnum[fontIndex] end local Fonts = { ["Verdana"] = 0, ["Smallest Pixel-7"] = 1, ["Proggy"] = 2, ["Minecraftia"] = 3, ["Verdana Bold"] = 4, ["Tahoma"] = 5, ["Tahoma Bold"] = 6 } -- -- Utility -- define random utils local BLRayParams = RaycastParams.new() BLRayParams.FilterDescendantsInstances = { Camera, workspace:FindFirstChild("Ignore"), workspace:FindFirstChild("Ignored"), workspace:FindFirstChild("ignored"), workspace:FindFirstChild("ignore"), workspace:FindFirstChild("Debris"), workspace:FindFirstChild("debris") } BLRayParams.FilterType = Enum.RaycastFilterType.Exclude BLRayParams.IgnoreWater = true Utility.Blacklist = BLRayParams function Utility:New(type, props, secondarg) local IsDrawing = tablefind(Utility.DrawingTypes, type) local NewFunction = IsDrawing and Drawingnew or Instancenew local Object = NewFunction(type, secondarg) if props then for _,v in props do Object[_] = v end end if IsDrawing then Utility.Drawings[#Utility.Drawings + 1] = Object else Utility.Objects[#Utility.Objects + 1] = Object end return Object end function Utility:Connect(signal, func, name) name = name or "Undefined" local Connection; Connection = signal:Connect(function(...) local Args = {...} local Success, Message = pcall(function() coroutinewrap(func)(unpack(Args)) end) if not Success and not Utility.Errors[Message] then warn(('ERROR!!!\nAn error has occurred with the message:\n%s\nSignal Type: %s\nName: %s'):format(Message, tostring(signal), name)) if Library.Notify then Library:Notify({ Text =('ERROR!!! \nAn error has occurred with the message:\n%s\nSignal Type: %s\nName: %s'):format(Message, tostring(signal), name), Time = 5000, Type = "Warning", Animation = "Bounce", }) end Utility.Errors[Message] = Message if Utility.Connections[Connection] then Utility.Connections[Connection] = nil end return Connection:Disconnect() end end) if Connection then tableinsert(Utility.Connections, Connection) end return Connection end function Utility:BindToRenderStep(name, enum, callback) RunService:BindToRenderStep(name, enum, callback) Utility.BindToRenderSteps[name] = name end function Utility:CFrameToVector3(cframe) return Vector3new(cframe.X, cframe.Y, cframe.Z) end function Utility:Lerp(a, b, c) c = c or 1 / 8 local offset = mathabs(b - a) if (offset < c) then return b end return a + (b - a) * c end function Utility:Round(number, float) local multiplier = 1 / (float or 1) return mathfloor(number * multiplier + 0.5) / multiplier end function Utility:CalculateVelocity(Part, Type) if not Type then return Part.Velocity; else local OldPosition = Part.Position local OldTime = tick() taskwait() local NewPosition = Part.Position local NewTime = tick() local DistanceTraveled = NewPosition - OldPosition local TimeInterval = NewTime - OldTime local Velocity = DistanceTraveled / TimeInterval return Velocity end end function Utility:ConvertToEnum(Value) local enumParts = {} for part in string.gmatch(Value, "[%w_]+") do tableinsert(enumParts, part) end local enumTable = Enum for i = 2, #enumParts do local enumItem = enumTable[enumParts[i]] enumTable = enumItem end return enumTable end function Utility:GetRotate(Vec, Rads) local vec = Vec.Unit local sin = mathsin(Rads) local cos = mathcos(Rads) local x = (cos * vec.x) - (sin * vec.y) local y = (sin * vec.x) + (cos * vec.y) return Vector2new(x, y).Unit * Vec.Magnitude end function Utility:MouseOver(object) local posX, posY = object.AbsolutePosition.X, object.AbsolutePosition.Y local size = object.AbsoluteSize local sizeX, sizeY = posX + size.X, posY + size.Y local position = UserInputService:GetMouseLocation() - Vector2new(0, 38) if position.X >= posX and position.Y >= posY and position.X <= sizeX and position.Y <= sizeY then return true end return false end function Utility:CreateBulletTracer(origin, endpos, color, trans, time, decal) local Decal = Visuals.BulletTracers[decal] or "rbxassetid://446111271" local OriginAttachment = Utility:New("Attachment", { Position = origin, Parent = workspace.Terrain }) local EndAttachment = Utility:New("Attachment", { Position = endpos, Parent = workspace.Terrain }) local Beam = Utility:New("Beam", { Texture = Decal, LightEmission = 1, LightInfluence = 0, TextureSpeed = 10, Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, color), ColorSequenceKeypoint.new(1, color) }), Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, trans), NumberSequenceKeypoint.new(1, trans), }), Width0 = 1.2, Width1 = 1.2, Attachment0 = OriginAttachment, Attachment1 = EndAttachment, Enabled = true, Parent = Workspace.Terrain }) Debris:AddItem(OriginAttachment, time) Debris:AddItem(EndAttachment, time) Debris:AddItem(Beam, time) end function Utility:PlaySound(id, volume, pitch) local Sound = Utility:New("Sound", { Parent = Camera, Volume = volume / 100, Pitch = pitch / 100, SoundId = id, PlayOnRemove = true }):Destroy() end function Utility:GetPrediction(ping, distance) local PingTable = distance <= 37 and Misc.Prediction.Close or distance <= 68 and Misc.Prediction.Mid or distance <= 9e9 and Misc.Prediction.Far if ping <= 30 then return PingTable[30] elseif ping <= 40 then return PingTable[40] elseif ping <= 50 then return PingTable[50] elseif ping <= 60 then return PingTable[60] elseif ping <= 80 then return PingTable[80] elseif ping <= 90 then return PingTable[90] elseif ping <= 120 then return PingTable[120] elseif ping <= 140 then return PingTable[140] elseif ping <= 200 then return PingTable[200] end end function Utility:Line(obj, from, to) local direction = (to - from) local center = (to + from) / 2 local distance = direction.Magnitude local theta = math.deg(math.atan2(direction.Y, direction.X)) obj.Position = UDim2new(0, math.floor(center.X), 0, math.floor(center.Y)) obj.Rotation = theta obj.Size = UDim2new(0, math.floor(distance), 0, 1) end function Utility.GetFiles(folder, extensions) local LibraryFolder = `{Library.Folder}/{folder}/` if not isfolder(LibraryFolder) then makefolder(LibraryFolder) end local Files = isfolder(LibraryFolder) and listfiles(LibraryFolder) or {} local StoredFiles = {} local FileNames = {} for _,v in Files do for _,ext in extensions do if v:find(ext) then StoredFiles[#StoredFiles + 1] = v FileNames[#FileNames + 1] = v:gsub(LibraryFolder, ""):gsub(ext, "") end end end return StoredFiles, FileNames end -- Functions to change for multi-game support. function Utility:GetTeam(player) return IsA(player, "Player") and player.Team or nil end function Utility:GetCharacter(player) return player.Character or nil end function Utility:GetHumanoid(character) return FindFirstChildWhichIsA(character, "Humanoid") end function Utility:GetRootPart(character, humanoid) return FindFirstChild(character, "HumanoidRootPart") or humanoid and humanoid.RootPart or character.PrimaryPart or nil end function Utility:GetPlayers() return Players:GetPlayers() end function Utility:GetName(player) return player.Name end function Utility:GetStyleName(player) return player.Name end function Utility:GetHealth(plr, humanoid) return humanoid and humanoid.Health or 100, humanoid and humanoid.MaxHealth or 100 end function Utility:GetBodyPart(character, name) return name == "HumanoidRootPart" and Utility:GetRootPart(character, nil) or FindFirstChild(character, name) end local RigParts = { ["Left Arm"] = "LeftLowerArm", ["Right Arm"] = "RightLowerArm", ["Left Leg"] = "LeftLowerLeg", ["Right Leg"] = "RightLowerLeg" } function Utility:GetPart(character, name) return FindFirstChild(character, name) or RigParts[name] and FindFirstChild(character, RigParts[name]) or nil end function Utility:GetLocalPlayerCharacter() return Utility:GetCharacter(LocalPlayer) end function Utility:GetToolName(player, character) local Tool = FindFirstChildWhichIsA(character, "Tool") return Tool and Tool.Name end function Utility:GetRootPart(character, humanoid) local BodyEffects = FindFirstChild(character, "BodyEffects") local Knocked = BodyEffects and FindFirstChild(BodyEffects, "K.O") local KnockedValue = Knocked and Knocked.Value or false return KnockedValue and FindFirstChild(character, "LowerTorso") or FindFirstChild(character, "HumanoidRootPart") or humanoid and humanoid.RootPart or character.PrimaryPart or nil end -- function Visuals:CopyPlayerCharacter(player, time, color) local Character = Utility:GetCharacter(player) if Character then for _,v in next, Character:GetChildren() do if (IsA(v, "BasePart") or IsA(v, "Part") or IsA(v, "MeshPart")) and v.Name ~= "HumanoidRootPart" and v.Transparency ~= 1 then local BodyPart = v:Clone() BodyPart.Anchored = true BodyPart.CanCollide = false BodyPart:ClearAllChildren() BodyPart.Parent = Workspace.Terrain Visuals:ApplyChams(BodyPart, "ForceField", color.c, 1 - color.a, 0) Debris:AddItem(BodyPart, time) end end end end -- generic unloading function Utility:Unload() for _,v in Utility.Connections do v:Disconnect() end for _,v in Utility.BindToRenderSteps do RunService:UnbindFromRenderStep(v) end for _,v in Utility.Objects do v:Destroy() end for _,v in Utility.Drawings do if v and v.Remove then v:Remove() end end end -- -- Library Library.__index = Library if not isfolder(Library.Folder) then makefolder(Library.Folder) end if not isfolder(Library.Folder .. "/Configs") then makefolder(Library.Folder .. "/Configs") end if not isfolder(Library.Folder .. "/Images") then makefolder(Library.Folder .. "/Images") end if not isfile(Library.Folder .. "/Chat-Spam.txt") then writefile(Library.Folder .. "/Chat-Spam.txt", "Hey change your chatspam!\nWoah, this guy didn't change his chatspam >_<.\nJust change your chatspam.") end Library.Font = GetFontFromIndex(2) Library.FontSize = 12 Library.ScreenGui = Utility:New("ScreenGui", { Name = "\0", Parent = CoreGui, }) Library.Popups = Utility:New("ScreenGui",{ Name = "\0", Parent = CoreGui }) Library.ListsGui = Utility:New("ScreenGui", { Name = "\0", Parent = CoreGui }) --[[ Toggle - Done, Slider - Done, Button - Done, Dropdown - Done, Keybind - Done, Colorpicker - Not Done, List - Not Done, Textbox - Done ]]-- function Library:CreateSelects(position) local Selectables = {} -- Keybind Mode local KeybindMode = { Flag = "" } local KeybindModeOutline = Library:New("Frame", { Name = "KeybindModeOutline", Visible = false, Parent = Library.Popups, BorderSizePixel = 0, Position = UDim2new(0, 500, 0, 500), Size = UDim2new(0, 200, 0, 46), }) KeybindMode.Holder = KeybindModeOutline KeybindModeOutline.Active = true KeybindModeOutline.Draggable = true Library:AddTheme(KeybindModeOutline, { BackgroundColor3 = "Outline", }) local KeybindModeBackground = Library:New("Frame", { Name = "KeybindModeBackground", Parent = KeybindModeOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(KeybindModeBackground, { BackgroundColor3 = "Background", }) local KeybindModeDropdownHolder = Library:New("Frame", { Name = "KeybindModeBackground", Parent = KeybindModeOutline, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 5, 0, 5), Size = UDim2new(1, -10, 1, -10), }) local KeybindModeDropdown; KeybindModeDropdown = Library.Dropdown({Holder = KeybindModeDropdownHolder, ContentHolder = Library.Popups}, {Name = "Keybind Mode", Values = {"Toggle", "Hold", "Always"}, Ignore = true, Callback = function(v) local ConfigFlag = Library.ConfigFlags[KeybindMode.Flag] if ConfigFlag then KeybindModeDropdown.Show(false) ConfigFlag.Set(v) KeybindModeOutline.Visible = false KeybindMode.Flag = "" end end}) KeybindMode.Dropdown = KeybindModeDropdown Selectables.KeybindMode = KeybindMode -- -- Colorpicker local Colorpicker = { Transparency = 0, Color = Color3fromRGB(255, 255, 255), HuePosition = 0, SlidingSaturation = false, SlidingHue = false, SlidingAlpha = false, Flag = "" } local ColorpickerWindow = Library:Window({ Name = "Colorpicker Window", Size = Vector2new(230, 281), Selects = false, Holder = Library.Popups, Position = UDim2new(0, position.x - 235, 0, position.y) }) --ColorpickerWindow.OutlineHolder.Visible = false Colorpicker.Window = ColorpickerWindow -- Picker Tab local PickerTab = ColorpickerWindow:Tab({ Name = "Picker" }) local Hue, Sat, Val local ColorpickerHolder = Library:New("Frame", { Name = "ColorpickerHolder", Parent = PickerTab.Page, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 1, 0), }) -- Saturation local ColorpickerSaturationOutline = Library:New("Frame", { Name = "ColorpickerSaturationOutline", Parent = ColorpickerHolder, BackgroundColor3 = Color3fromRGB(0, 0, 0), BorderColor3 = Color3fromRGB(0, 0, 0), BorderSizePixel = 0, Size = UDim2new(1, -24, 1, -24), }) Library:AddTheme(ColorpickerSaturationOutline, { BackgroundColor3 = "Outline", }) local ColorpickerSaturationBackground = Library:New("Frame", { Name = "ColorpickerSaturationBackground", Parent = ColorpickerSaturationOutline, BackgroundColor3 = Color3fromRGB(255, 255, 255), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:New("ImageLabel", { Name = "ColorpickerSaturationImage", Parent = ColorpickerSaturationBackground, BackgroundColor3 = Color3fromRGB(255, 255, 255), BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), Image = Library.Images.Saturation, }) local ColorpickerSaturationPickerOutline = Library:New("Frame", { Name = "ColorpickerSaturationPickerOutline", Parent = ColorpickerSaturationBackground, BorderSizePixel = 0, Size = UDim2new(0, 4, 0, 4), }) Library:AddTheme(ColorpickerSaturationPickerOutline, { BackgroundColor3 = "Outline", }) Library:New("Frame", { Name = "ColorpickerSaturationPickerBackground", Parent = ColorpickerSaturationPickerOutline, BackgroundColor3 = Color3fromRGB(255, 255, 255), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) local ColorpickerSaturationButton = Library:New("TextButton", { Parent = ColorpickerSaturationBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2.new(1, 0, 1, 0), Text = "", TextColor3 = Color3.fromRGB(0, 0, 0), TextSize = 1, }) -- -- Alpha local ColorpickerAlphaOutline = Library:New("Frame", { Name = "ColorpickerAlphaOutline", Parent = ColorpickerHolder, BorderSizePixel = 0, Position = UDim2new(0, 0, 1, -20), Size = UDim2new(1, -24, 0, 20), }) Library:AddTheme(ColorpickerAlphaOutline, { BackgroundColor3 = "Outline", }) local ColorpickerAlphaImage = Library:New("ImageLabel", { Name = "ColorpickerAlphaImage", Parent = ColorpickerAlphaOutline, BackgroundColor3 = Color3fromRGB(255, 255, 255), BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), Image = Library.Images.Checkers, ScaleType = Enum.ScaleType.Tile, TileSize = UDim2new(0, 6, 0, 6), }) local ColorpickerAlphaBackground = Library:New("Frame", { Name = "ColorpickerAlphaBackground", Parent = ColorpickerAlphaImage, BackgroundTransparency = 0, BackgroundColor3 = Color3fromRGB(255, 255, 255), BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 1, 0), }) local ColorpickerAlphaGradient = Library:New("UIGradient", { Parent = ColorpickerAlphaBackground, Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 0), }) }) local ColorpickerAlphaPickerOutline = Library:New("Frame", { Name = "ColorpickerAlphaPickerOutline", Parent = ColorpickerAlphaBackground, BorderSizePixel = 0, Size = UDim2new(0, 3, 1, 0), }) Library:AddTheme(ColorpickerAlphaPickerOutline, { BackgroundColor3 = "Outline", }) Library:New("Frame", { Name = "ColorpickerAlphaPickerBackground", Parent = ColorpickerAlphaPickerOutline, BackgroundColor3 = Color3fromRGB(255, 255, 255), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 0), Size = UDim2new(1, -2, 1, 0), }) local ColorpickerAlphaButton = Library:New("TextButton", { Parent = ColorpickerAlphaBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2.new(1, 0, 1, 0), Text = "", TextColor3 = Color3.fromRGB(0, 0, 0), TextSize = 1, }) -- -- Hue local ColorpickerHueOutline = Library:New("Frame", { Name = "ColorpickerHueOutline", Parent = ColorpickerHolder, BorderSizePixel = 0, Position = UDim2new(1, -20, 0, 0), Size = UDim2new(0, 20, 1, -24), }) Library:AddTheme(ColorpickerHueOutline, { BackgroundColor3 = "Outline", }) local ColorpickerHueBackground = Library:New("Frame", { Name = "ColorpickerHueBackground", Parent = ColorpickerHueOutline, BackgroundColor3 = Color3fromRGB(255, 255, 255), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.17, Color3fromRGB(255, 0, 255)), ColorSequenceKeypoint.new(0.33, Color3fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(0.50, Color3fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.67, Color3fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.83, Color3fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(255, 0, 0))}, Rotation = 90, Parent = ColorpickerHueBackground, }) local ColorpickerHuePickerOutline = Library:New("Frame", { Name = "ColorpickerHuePickerOutline", Parent = ColorpickerHueBackground, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 3), }) Library:AddTheme(ColorpickerHuePickerOutline, { BackgroundColor3 = "Outline", }) Library:New("Frame", { Name = "ColorpickerHuePickerBackground", Parent = ColorpickerHuePickerOutline, BackgroundColor3 = Color3fromRGB(255, 255, 255), BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 1), Size = UDim2new(1, 0, 1, -2), }) local ColorpickerHueButton = Library:New("TextButton", { Parent = ColorpickerHueBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2.new(1, 0, 1, 0), Text = "", TextColor3 = Color3.fromRGB(0, 0, 0), TextSize = 1, }) -- -- Color Value local ColorpickerOutline = Library:New("Frame", { Name = "ColorpickerOutline", Parent = ColorpickerHolder, BorderSizePixel = 0, Position = UDim2new(1, -20, 1, -20), Size = UDim2new(0, 20, 0, 20), }) Library:AddTheme(ColorpickerOutline, { BackgroundColor3 = "Outline" }) local ColorpickerBackground = Library:New("Frame", { Name = "ColorpickerBackground", Parent = ColorpickerOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(149, 149, 149))}, Rotation = 90, Parent = ColorpickerBackground, }) -- function Colorpicker.Set(color, transparency, ignore) transparency = transparency or Colorpicker.Transparency if type(color) == "table" then transparency = color.a color = color.c end Hue, Sat, Val = color:ToHSV() Colorpicker.Color = color Colorpicker.Transparency = transparency if not ignore then ColorpickerSaturationPickerOutline.Position = UDim2new( mathclamp(Sat, 0, 1), Sat < 1 and -1 or -3, mathclamp(1 - Val, 0, 1), 1 - Val < 1 and -1 or -3 ) Colorpicker.HuePosition = Hue ColorpickerHuePickerOutline.Position = UDim2new( 0, 0, mathclamp(1 - Hue, 0, 1), 1 - Hue < 1 and -1 or -2 ) ColorpickerAlphaPickerOutline.Position = UDim2new( mathclamp(transparency, 0, 1), transparency < 1 and -1 or -2, 0, 0 ) end if Library.ConfigFlags[Colorpicker.Flag] then Library.ConfigFlags[Colorpicker.Flag].Set({ c = color, a = transparency }) end ColorpickerAlphaBackground.BackgroundColor3 = color ColorpickerSaturationBackground.BackgroundColor3 = Color3fromHSV(Colorpicker.HuePosition, 1, 1) ColorpickerBackground.BackgroundColor3 = color end function Colorpicker.SlideSaturation(input) local SizeX = mathclamp((input.Position.X - ColorpickerSaturationOutline.AbsolutePosition.X) / ColorpickerSaturationOutline.AbsoluteSize.X, 0, 1) local SizeY = 1 - mathclamp((input.Position.Y - ColorpickerSaturationOutline.AbsolutePosition.Y) / ColorpickerSaturationOutline.AbsoluteSize.Y, 0, 1) ColorpickerSaturationPickerOutline.Position = UDim2new(SizeX, SizeX < 1 and -1 or -3, 1 - SizeY, 1 - SizeY < 1 and -1 or -3) Colorpicker.Set(Color3fromHSV(Colorpicker.HuePosition, SizeX, SizeY), Colorpicker.Transparency, true) end Utility:Connect(ColorpickerSaturationButton.MouseButton1Down, function() Colorpicker.SlidingSaturation = true Colorpicker.SlideSaturation({ Position = UserInputService:GetMouseLocation() - Vector2new(0, 38) }) end) function Colorpicker.SlideHue(input) local SizeY = 1 - mathclamp((input.Position.Y - ColorpickerHueOutline.AbsolutePosition.Y) / ColorpickerHueOutline.AbsoluteSize.Y, 0, 1) ColorpickerHuePickerOutline.Position = UDim2new(0, 0, 1 - SizeY, 1 - SizeY < 1 and -1 or -2) Colorpicker.HuePosition = SizeY Colorpicker.Set(Color3fromHSV(SizeY, Sat, Val), Colorpicker.Transparency, true) end Utility:Connect(ColorpickerHueButton.MouseButton1Down, function() Colorpicker.SlidingHue = true Colorpicker.SlideHue({ Position = UserInputService:GetMouseLocation() - Vector2new(0, 38) }) end) function Colorpicker.SlideAlpha(input) local SizeX = mathclamp((input.Position.X - ColorpickerAlphaOutline.AbsolutePosition.X) / ColorpickerAlphaOutline.AbsoluteSize.X, 0, 1) ColorpickerAlphaPickerOutline.Position = UDim2new(SizeX, SizeX < 1 and -1 or -2, 0, 0) Colorpicker.Set(Color3fromHSV(Colorpicker.HuePosition, Sat, Val), SizeX, true) end Utility:Connect(ColorpickerAlphaButton.MouseButton1Down, function() Colorpicker.SlidingAlpha = true Colorpicker.SlideAlpha({ Position = UserInputService:GetMouseLocation() - Vector2new(0, 38) }) end) Utility:Connect(UserInputService.InputEnded, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Colorpicker.SlidingSaturation, Colorpicker.SlidingHue, Colorpicker.SlidingAlpha = false, false, false end end) Utility:Connect(UserInputService.InputChanged, function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then if Colorpicker.SlidingSaturation then Colorpicker.SlideSaturation({ Position = UserInputService:GetMouseLocation() - Vector2new(0, 38) }) elseif Colorpicker.SlidingHue then Colorpicker.SlideHue({ Position = UserInputService:GetMouseLocation() - Vector2new(0, 38) }) elseif Colorpicker.SlidingAlpha then Colorpicker.SlideAlpha({ Position = UserInputService:GetMouseLocation() - Vector2new(0, 38) }) end end end) Colorpicker.Set(Colorpicker.Color, Colorpicker.Transparency) -- -- Animation Tab -- local AnimationsTab = ColorpickerWindow:Tab({ -- Name = "Animations" -- }) -- -- Copying local CopyingTab = ColorpickerWindow:Tab({ Name = "Copying" }) local CopyingHolder = Library:New("Frame", { Name = "CopyingHolder", Parent = CopyingTab.Page, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 1, 0), }) Library:New("UIListLayout", { Parent = CopyingHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 4), }) local ColorBackground local ColorAlphaBackground local ColorLine = Library:New("Frame", { Name = "ColorLine", Parent = CopyingHolder, BackgroundTransparency = 0, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 0, 103), }) Library:AddTheme(ColorLine, { BackgroundColor3 = "Outline", }) ColorBackground = Library:New("Frame", { Name = "ColorBackground", Parent = ColorLine, BackgroundTransparency = 0, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(0.5, -2, 1, -2), }) local ColorBackgroundImage = Library:New("ImageLabel", { Name = "ColorBackgroundImage", Parent = ColorLine, BackgroundColor3 = Color3fromRGB(255, 255, 255), BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0.5, 1, 0, 1), Size = UDim2new(0.5, -2, 1, -2), Image = Library.Images.Checkers, ScaleType = Enum.ScaleType.Tile, TileSize = UDim2new(0, 6, 0, 6), }) ColorAlphaBackground = Library:New("Frame", { Name = "ColorBackground", Parent = ColorBackgroundImage, BackgroundTransparency = 0, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 1, 0), }) local RGBValue local HSVValue local AlphaValue function Colorpicker.UpdateValues() local Color = Library.CopiedColor.c if RGBValue then RGBValue.ChangeText(("RGB: %s, %s, %s"):format(mathfloor(Color.r * 255), mathfloor(Color.g * 255), mathfloor(Color.b * 255))) end Hue, Sat, Val = Color:ToHSV() if HSVValue then HSVValue.ChangeText(("HSV: %s, %s, %s"):format(tostring(Hue):sub(0, 3), tostring(Sat):sub(0, 3), tostring(Val):sub(0, 3))) end if AlphaValue then AlphaValue.ChangeText(("Alpha: %s"):format(tostring(Library.CopiedColor.a):sub(0, 3))) end if ColorBackground then ColorBackground.BackgroundColor3 = Color end if ColorAlphaBackground then ColorAlphaBackground.BackgroundColor3 = Color ColorAlphaBackground.BackgroundTransparency = 1 - Library.CopiedColor.a end end Library.Button({Holder = CopyingHolder}, {Name = "Copy", Callback = function() Library.CopiedColor = { c = Colorpicker.Color, a = Colorpicker.Transparency } Colorpicker.UpdateValues() end}) Library.Button({Holder = CopyingHolder}, {Name = "Paste", Callback = function() Colorpicker.Set(Library.CopiedColor) end}) RGBValue = Library.Label({Holder = CopyingHolder}, {Name = "RGB: "}) HSVValue = Library.Label({Holder = CopyingHolder}, {Name = "HSV: "}) AlphaValue = Library.Label({Holder = CopyingHolder}, {Name = "Alpha: "}) Colorpicker.UpdateValues() -- PickerTab.Select(true) Selectables.Colorpicker = Colorpicker -- return Selectables end function Library:MakeResizable(Holder, Drag) local start, startSize, resizing local CurrentSize = Holder.Size local OriginalSize = Holder.Size Drag.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then resizing = true start = input.Position startSize = Holder.Size end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement and resizing then local viewportWidth = Camera.ViewportSize.X local viewportHeight = Camera.ViewportSize.Y CurrentSize = UDim2.new( startSize.X.Scale, mathclamp( startSize.X.Offset + (input.Position.X - start.X), OriginalSize.X.Offset, viewportWidth ), startSize.Y.Scale, mathclamp( startSize.Y.Offset + (input.Position.Y - start.Y), OriginalSize.Y.Offset, viewportHeight ) ) Holder.Size = CurrentSize end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 and resizing then resizing = false end end) end function Library:New(type, props, ignore) ignore = ignore or false local Object = Utility:New(type, props) if not ignore then Library.Objects[#Library.Objects + 1] = Object end return Object end function Library:AddTheme(obj, props) local Data = { Instance = obj, Properties = props, Index = #Library.ThemeInstances + 1 } for _,v in Data.Properties do if type(v) == "string" then Data.Instance[_] = Library.Theme[v] else Data.Instance[_] = v() end end table.insert(Library.ThemeInstances, Data) Library.ThemeMap[obj] = Data end function Library:Tween(obj, info, props) info = not info and TweenInfo.new(Library.TweenSpeed, Library.TweenEasingStyle) or info local Tween = TweenService:Create(obj, info, props) Tween:Play() return Tween end function Library:ChangeObjectTheme(obj, props, tween) if Library.ThemeMap[obj] then local Data = Library.ThemeMap[obj] Data.Properties = props for i,v in props do if type(v) == "string" then if tween then Data.Tween = Library:Tween(Data.Instance, nil, { [i] = Library.Theme[v], }) else Data.Instance[i] = Library.Theme[v] end else Data.Instance[i] = v() end end Library.ThemeMap[obj] = Data end end function Library:ChangeTheme(theme, color) Library.Theme[theme] = color for obj,v in Library.ThemeMap do local Properties = v.Properties for propName, propTheme in Properties do if propTheme == theme then if v.Tween then v.Tween:Cancel() end obj[propName] = color end end end end function Library:Notify(cfg) cfg = { Time = cfg.Time or 5, Text = cfg.Text or "this is a test notification.", Prefix = cfg.Prefix or "[Puppyware] ", Type = cfg.Type or "Normal", Animation = cfg.Animation or "None" } local Notification = { Text = cfg.Text, Time = cfg.Time, ClockTime = osclock() + cfg.Time, Prefix = cfg.Prefix, Type = cfg.Type, Animation = cfg.Animation, Direction = 1, Lerps = { Offset = 1, Main = 1, Once = 1, OffsetOnce = 1, SizeX = 1, SizeY = 1, } } local NotificationBackground = Library:New("Frame", { Parent = Library.ListsGui, BackgroundTransparency = 1, Size = UDim2new(0, 0, 0, 0), ClipsDescendants = true, }, true) Library:AddTheme(NotificationBackground, { BorderColor3 = "Outline", BackgroundColor3 = "Element Background", }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = NotificationBackground, }) Notification.Background = NotificationBackground local NotificationText = Library:New("TextLabel", { BackgroundTransparency = 1, TextTransparency = 1, AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), Position = UDim2new(0, 5, 0, 2), FontFace = Library.Font, Text = cfg.Prefix .. cfg.Text, TextSize = Library.FontSize, Parent = NotificationBackground, TextStrokeTransparency = 0, RichText = true, TextXAlignment = Enum.TextXAlignment.Left, }, true) Library:AddTheme(NotificationText, { TextColor3 = "Text", }) Notification.Lerps.SizeY = NotificationText.TextBounds.Y + 5 Notification.Lerps.SizeX = NotificationText.TextBounds.X + 8 Notification.TextObj = NotificationText local NotificationAccent = Library:New("Frame", { Name = "NotificationAccent", Parent = NotificationBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(0, 1, 1, 0), }, true) Notification.Accent = NotificationAccent local NotificationLine = Library:New("Frame", { Name = "NotificationLine", Parent = NotificationBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 1, -1), Size = UDim2new(0, 0, 0, 1), }, true) Notification.Line = NotificationLine Library.Notifications[#Library.Notifications + 1] = Notification return Notification end local NotificationPosition = Vector2new(10, 32) local function Sine(delta) return mathsin(halfpi * delta - halfpi) + 1 end Utility:Connect(RunService.Heartbeat, function(step) Library.Fps = mathfloor(1 / step) local YOffset = 0 local AccentColor = Library.Theme.Accent local ClockPulse = osclock() for _,v in Library.Notifications do if not v.ClockTime then continue end -- Random Variables local Time = v.Time local ClockTime = v.ClockTime -- Lerps local Lerps = v.Lerps if ClockPulse >= ClockTime then Lerps.Main = Utility:Lerp(Lerps.Main, 0, Library.LerpSpeed) else Lerps.Main = Utility:Lerp(Lerps.Main, 255, Library.LerpSpeed) Lerps.Once = Utility:Lerp(Lerps.Once, 255, Library.LerpSpeed) Lerps.OffsetOnce = Utility:Lerp(Lerps.OffsetOnce, 255, Library.LerpSpeed) end local MainLerp = Lerps.Main local MainLerpSine = MainLerp / 255 local OnceLerpSine = Lerps.Once / 255 -- Objects local Background = v.Background local Text = v.TextObj local Accent = v.Accent local Line = v.Line local WarningColor = Color3new(0, mathabs(mathsin(ClockPulse * 3)), 0) local PrefixColor = v.Type == "Warning" and WarningColor or AccentColor local Prefix = v.Prefix Text.Text = (Prefix ~= "" and ('%s'):format( mathfloor(PrefixColor.r * 255), mathfloor(PrefixColor.g * 255), mathfloor(PrefixColor.b * 255), v.Prefix ) or "") .. v.Text local TextBounds = Text.TextBounds Lerps.SizeX = Utility:Lerp(Lerps.SizeX, TextBounds.X + 8, Library.LerpSpeed) Lerps.SizeY = Utility:Lerp(Lerps.SizeY, TextBounds.Y + 5, Library.LerpSpeed) local SizeX = Lerps.SizeX local SizeY = Lerps.SizeY Background.Size = UDim2new(0, SizeX, 0, SizeY) Background.Position = UDim2new(0, NotificationPosition.x, 0, NotificationPosition.y + YOffset) - UDim2new(0, 45 * (1 - OnceLerpSine)) local Animation = v.Animation if Animation == "Bounce" then local ClockPulseSine = ClockPulse / 2 local SineValue = 0 if ClockPulseSine <= 0.5 then SineValue = 0.5 * Sine(2 * ClockPulseSine) else SineValue = 0.5 * (1 - Sine(-2 * ClockPulseSine + 2)) + 0.5 end local LineSize = (SizeX / 3) * mathmax(0, 1 - mathabs(SineValue - 0.5) * 2) Line.Size = UDim2new(0, LineSize, 0, 1) Line.Position = UDim2new(SineValue, 0, 1, -1) elseif Animation == "Time" then Line.Size = UDim2new(1 - ((ClockTime - ClockPulse) / Time), 0, 0, 1) end if v.Type == "Warning" then Accent.BackgroundColor3 = WarningColor if Line then Line.BackgroundColor3 = WarningColor end else Accent.BackgroundColor3 = AccentColor if Line then Line.BackgroundColor3 = AccentColor end end Background.BackgroundTransparency = 1 - MainLerpSine Text.TextTransparency = 1 - MainLerpSine Accent.BackgroundTransparency = 1 - MainLerpSine if Line then Line.BackgroundTransparency = 1 - MainLerpSine end Lerps.Offset = Utility:Lerp(Lerps.Offset, (SizeY + 5) * (Lerps.OffsetOnce / 255), Library.LerpSpeed) YOffset += Lerps.Offset if MainLerp <= 80 then Lerps.OffsetOnce = Utility:Lerp(Lerps.OffsetOnce, 0, Library.LerpSpeed) end if Lerps.OffsetOnce <= 0 then Background:Destroy() --tableremove(Library.Notifications, _) Library.Notifications[_] = {} continue end end end, "Main UI Loop") local LoadingNotification = Library:Notify({ Text = "Loading cheat, might take a bit...", Time = 9e9, Animation = "Bounce" }) function Library:Window(cfg) cfg = { Name = cfg.Name or "New Window", Size = cfg.Size or Vector2new(498, 398), Selects = cfg.Selects == nil and true or cfg.Selects, Holder = cfg.Holder or Library.ScreenGui, Position = cfg.Position or nil, Watermark = cfg.Watermark == nil and false or cfg.Watermark, Keybinds = cfg.Keybinds == nil and false or cfg.Keybinds, Fading = cfg.Fading == nil and true or cfg.Fading, Tabs = cfg.Tabs == nil and true or cfg.Tabs, Resizing = cfg.Resizing == nil and true or cfg.Resizing, } local Watermark if cfg.Watermark then Watermark = Library:Watermark({ Visible = true }) end local WindowOutline = Library:New("Frame", { Name = "WindowOutline", Parent = cfg.Holder, BorderSizePixel = 0, Position = cfg.Position or UDim2new(0.5, -(cfg.Size.x / 2), 0.5, -(cfg.Size.y / 2)), Size = UDim2new(0, cfg.Size.x, 0, cfg.Size.y), }) if cfg.Selects then Library.Selectables = Library:CreateSelects(WindowOutline.AbsolutePosition) end WindowOutline.Active = true WindowOutline.Draggable = true Library:AddTheme(WindowOutline, { BackgroundColor3 = "Outline", }) local WindowBackground = Library:New("Frame", { Name = "WindowBackground", Parent = WindowOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(WindowBackground, { BackgroundColor3 = "Background", }) if cfg.Resizing then local ResizeBox = Library:New("TextButton", { Name = "ResizeBox", Parent = WindowBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Text = "", Position = UDim2new(1, -10, 1, -10), Size = UDim2new(0, 10, 0, 10), }) Library:MakeResizable(WindowOutline, ResizeBox) end local TitleBackground = Library:New("Frame", { Name = "TitleBackground", Parent = WindowBackground, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 24), }) Library:AddTheme(TitleBackground, { BackgroundColor3 = "Accent", }) Library:New("UIPadding", { Parent = TitleBackground, PaddingBottom = UDimnew(0, 5), PaddingLeft = UDimnew(0, 5), PaddingRight = UDimnew(0, 5), PaddingTop = UDimnew(0, 5), }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(149, 149, 149))}, Rotation = 90, Parent = TitleBackground, }) local TitleLabel = Library:New("TextLabel", { Name = "TitleLabel", Parent = TitleBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(TitleLabel, { TextColor3 = "Text", }) local TabHolderBackground if cfg.Tabs then local TabHolderOutline = Library:New("Frame", { Name = "TabHolderOutline", Parent = WindowBackground, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 24), Size = UDim2new(1, 0, 0, 27), }) Library:AddTheme(TabHolderOutline, { BackgroundColor3 = "Outline", }) TabHolderBackground = Library:New("Frame", { Name = "TabHolderBackground", Parent = TabHolderOutline, BackgroundColor3 = Color3fromRGB(65, 65, 65), BorderColor3 = Color3fromRGB(0, 0, 0), BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 1), Size = UDim2new(1, 0, 1, -2), }) Library:AddTheme(TabHolderBackground, { BackgroundColor3 = "Tab Enabled", }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(111, 111, 111))}, Rotation = 90, Parent = TabHolderBackground, }) Library:New("UITableLayout", { Parent = TabHolderBackground, FillDirection = Enum.FillDirection.Horizontal, SortOrder = Enum.SortOrder.LayoutOrder, FillEmptySpaceColumns = true, FillEmptySpaceRows = true, Padding = UDim2new(0, 1, 0, 0), }) end local WindowPageHolder = Library:New("Frame", { Visible = false, Name = "WindowPageHolder", Parent = WindowBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 9, 0, 60), Size = UDim2new(1, -18, 1, -69), }) local KeybindList if cfg.Keybinds then KeybindList = Library:InitList({Name = "Keybinds List", Position = UDim2new(0, 10, 0.5, 0)}) KeybindList.GetItems = function() return Library.Keybinds end end if cfg.Keybinds or cfg.Watermark then Utility:Connect(RunService.Heartbeat, function(step) if Watermark then Watermark.Think() end if KeybindList then KeybindList.Think() end end, "UI Window Loop") end local Items = {} return setmetatable({ OutlineHolder = WindowOutline, Holder = WindowBackground, TabHolder = TabHolderBackground, Items = Items, Title = TitleLabel, Watermark = Watermark, KeybindList = KeybindList, SelectedTab = nil, OldTab = nil, Fading = cfg.Fading, PageHolder = WindowPageHolder, }, Library) end function Library:Tab(cfg) local Parent = self cfg = { Name = cfg.Name or "New Tab" } local TabHolder = Parent.TabHolder local Holder = Parent.Holder local Items = Parent.Items local TabOutline = Library:New("Frame", { Name = "TabOutline", Parent = TabHolder, Size = UDim2new(1, 0, 1, 0), }) Library:AddTheme(TabOutline, { BorderColor3 = "Outline", BackgroundColor3 = "Tab Disabled" }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = TabOutline, }) local TabLabel = Library:New("TextLabel", { Name = "TabLabel", Parent = TabOutline, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), Text = cfg.Name, FontFace = Library.Font, TextSize = Library.FontSize, TextStrokeTransparency = 0, }) Library:AddTheme(TabLabel, { TextColor3 = "Text", }) local PageHolder = Library:New("Frame", { Visible = false, Name = "PageHolder", Parent = Holder, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 9, 0, 60), Size = UDim2new(1, -18, 1, -69), }) local LeftSide = Library:New("Frame", { Name = "LeftSide", Parent = PageHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(0.5, -5, 1, 0), }) Library:New("UIListLayout", { Parent = LeftSide, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 10), }) local RightSide = Library:New("Frame", { Name = "RightSide", Parent = PageHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0.5, 5, 0, 0), Size = UDim2new(0.5, -5, 1, 0), }) Library:New("UIListLayout", { Parent = RightSide, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 10), }) local MiddleSide = Library:New("Frame", { Name = "MiddleSide", Parent = PageHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 1, 0), }) Library:New("UIListLayout", { Parent = RightSide, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 10), }) local PageFade = Library:New("Frame", { Name = "PageFade", Parent = Holder, BackgroundTransparency = 1, Visible = false, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 55), Size = UDim2new(1, 0, 1, -64), }) Library:AddTheme(PageFade, { BackgroundColor3 = "Background", }) local Tab = { Name = cfg.Name, Selected = false, TabOutline = TabOutline, Page = PageHolder, Left = LeftSide, Right = RightSide, Middle = MiddleSide, PageFade = PageFade, CurrentTween = nil } tableinsert(Items, Tab) function Tab.Select(status, looped, oldpage) Tab.Selected = status Library:Tween(TabOutline, nil, { Transparency = status and 1 or 0 }) if not looped then for _,v in Items do if v == Tab then continue end if Parent.SelectedTab == v then Parent.OldTab = v v.Select(false, true, Parent.SelectedTab) else v.Select(false, true) end end Parent.SelectedTab = Tab end if Parent.Fading then if not looped then taskspawn(function() local OldTab = Parent.OldTab if OldTab then OldTab.PageFade.Visible = true Tab.CurrentTween = Library:Tween(OldTab.PageFade, nil, { BackgroundTransparency = 0 }) taskwait(Library.TweenSpeed) OldTab.Page.Visible = false OldTab.PageFade.Visible = false PageFade.Visible = true PageFade.BackgroundTransparency = 0 PageHolder.Visible = true Tab.CurrentTween = Library:Tween(PageFade, nil, { BackgroundTransparency = 1 }) taskwait(Library.TweenSpeed) PageFade.Visible = false else PageFade.Visible = true PageFade.BackgroundTransparency = 0 PageHolder.Visible = true Tab.CurrentTween = Library:Tween(PageFade, nil, { BackgroundTransparency = 1 }) taskwait(Library.TweenSpeed) PageFade.Visible = false end end) elseif not oldpage then PageHolder.Visible = false end else PageHolder.Visible = status end end Utility:Connect(TabOutline.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Tab.Select(true, false) end end) if #Items == 1 then Tab.Select(true) end return setmetatable(Tab, Library) end function Library:Section(cfg) local Parent = self cfg = { Size = cfg.Size or UDim2new(1, 0, 1, 0), Name = cfg.Name or "New Section", Side = cfg.Side or "Left", Visible = cfg.Visible == nil and true or cfg.Visible, } local Section = {} local Left = Parent.Left local Right = Parent.Right local Middle = Parent.Middle local Side = cfg.Side == "Left" and Left or cfg.Side == "Middle" and Middle or Right local FMiddleSide, SMiddleSide if cfg.Side == "Middle" then FMiddleSide = Library:New("Frame", { Name = "FMiddleSide", Parent = Left, BorderSizePixel = 0, BackgroundTransparency = 1, Size = cfg.Size, Visible = cfg.Visible, }) SMiddleSide = Library:New("Frame", { Name = "SMiddleSide", Parent = Right, BorderSizePixel = 0, BackgroundTransparency = 1, Size = cfg.Size, Visible = cfg.Visible, }) end local SectionOutline = Library:New("Frame", { Name = "SectionOutline", Parent = Side, BorderSizePixel = 0, Size = cfg.Size, Visible = cfg.Visible, }) Library:AddTheme(SectionOutline, { BackgroundColor3 = "Outline" }) local SectionAccent = Library:New("Frame", { Name = "SectionAccent", Parent = SectionOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(SectionAccent, { BackgroundColor3 = "Accent" }) local SectionInline = Library:New("Frame", { Name = "SectionInline", Parent = SectionAccent, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(SectionInline, { BackgroundColor3 = "Outline" }) local SectionBackground = Library:New("Frame", { Name = "SectionBackground", Parent = SectionInline, BackgroundColor3 = Color3fromRGB(37, 37, 37), BorderColor3 = Color3fromRGB(0, 0, 0), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(SectionBackground, { BackgroundColor3 = "Background" }) local SectionLabel = Library:New("TextLabel", { Name = "SectionLabel", Parent = SectionBackground, BorderSizePixel = 0, Position = UDim2new(0, 5, 0, -8), AutomaticSize = Enum.AutomaticSize.X, Size = UDim2new(0, 0, 0, 12), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(SectionLabel, { BackgroundColor3 = "Background", TextColor3 = "Text" }) local SectionScrollingHolder = Library:New("ScrollingFrame", { Name = "SectionScrollingHolder", Parent = SectionBackground, Active = true, BackgroundTransparency = 1, BorderSizePixel = 0, AutomaticCanvasSize = Enum.AutomaticSize.Y, Position = UDim2new(0, 5, 0, 10), Size = UDim2new(1, -10, 1, -15), BottomImage = Library.Images.Scroll, CanvasSize = UDim2new(0, 0, 0, 0), MidImage = Library.Images.Scroll, ScrollBarThickness = 3, TopImage = Library.Images.Scroll, }) Library:AddTheme(SectionScrollingHolder, { ScrollBarImageColor3 = "Accent", }) local SectionHolder = Library:New("TextButton", { Name = "SectionHolder", Parent = SectionScrollingHolder, BackgroundTransparency = 1, BorderSizePixel = 0, AutomaticSize = Enum.AutomaticSize.Y, Size = UDim2new(1, 0, 0, 0), Text = "", TextSize = 0, }) Library:New("UIListLayout", { Parent = SectionHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 4), }) Utility:Connect(SectionScrollingHolder:GetPropertyChangedSignal("AbsoluteSize"), function() if SectionScrollingHolder.AbsoluteCanvasSize.Y > SectionScrollingHolder.AbsoluteSize.Y then SectionHolder.Size = UDim2new(1, -8, 0, 0) else SectionHolder.Size = UDim2new(1, 0, 0, 0) end end) Utility:Connect(SectionScrollingHolder:GetPropertyChangedSignal("AbsoluteCanvasSize"), function() if SectionScrollingHolder.AbsoluteCanvasSize.Y > SectionScrollingHolder.AbsoluteSize.Y then SectionHolder.Size = UDim2new(1, -8, 0, 0) else SectionHolder.Size = UDim2new(1, 0, 0, 0) end end) Section.Holder = SectionHolder function Section.SetVisibility(status) SectionOutline.Visible = status if FMiddleSide then FMiddleSide.Visible = status end if SMiddleSide then SMiddleSide.Visible = status end end return setmetatable(Section, Library) end function Library:Toggle(cfg) local Parent = self cfg = { Name = cfg.Name or "New Toggle", Status = cfg.Status == nil and false or cfg.Status, Visible = cfg.Visible == nil and true or cfg.Visible, Flag = cfg.Flag or math.random(5^12), Callback = cfg.Callback or function() end } local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local Toggle = { Status = false, } local ToggleHolder = Library:New("Frame", { Name = "ToggleHolder", Parent = ChildHolder or Holder, Visible = cfg.Visible, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), AutomaticSize = Enum.AutomaticSize.Y, }) --if not ChildHolder then Library:New("UIListLayout", { Parent = ToggleHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) --end local ToggleLine = Library:New("Frame", { Name = "ToggleLine", Parent = ToggleHolder, Visible = not ChildHolder and cfg.Visible or true, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), }) local ToggleLabel = Library:New("TextLabel", { Name = "ToggleLabel", Parent = ToggleLine, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 18, 0, 0), Size = UDim2new(1, -18, 1, 0), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(ToggleLabel, { TextColor3 = "Text" }) Library:New("UIListLayout", { Parent = ToggleLabel, FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) local ToggleOutline = Library:New("Frame", { Name = "ToggleOutline", Parent = ToggleLine, BorderSizePixel = 0, Size = UDim2new(0, 13, 0, 13), }) Library:AddTheme(ToggleOutline, { BackgroundColor3 = "Outline" }) local ToggleBackground = Library:New("Frame", { Name = "ToggleBackground", Parent = ToggleOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(ToggleBackground, { BackgroundColor3 = "Element Background" }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = ToggleBackground, }) function Toggle.Set(status) Toggle.Status = status Library:ChangeObjectTheme(ToggleBackground, { BackgroundColor3 = status and "Accent" or "Element Background" }, true) Library.Flags[cfg.Flag] = status cfg.Callback(status) end function Toggle.SetVisibility(status) ToggleHolder.Visible = status end Utility:Connect(ToggleLine.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Toggle.Set(not Toggle.Status) end end) Toggle.Set(cfg.Status) Library.ConfigFlags[cfg.Flag] = Toggle Toggle.ChildHolder = ToggleHolder Toggle.TextLabel = ToggleLabel return setmetatable(Toggle, Library) end function Library:Slider(cfg) local Parent = self cfg = { Name = cfg.Name or "New Slider", Value = cfg.Value or 0, Min = cfg.Min or -50, Max = cfg.Max or 50, Float = cfg.Float or 0.1, Suffix = cfg.Suffix or "", Flag = cfg.Flag or math.random(5^12), Visible = cfg.Visible == nil and true or cfg.Visible, Callback = cfg.Callback or function() end } local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local Slider = { Value = 0, Sliding = false } local SliderHolder = Library:New("Frame", { Name = "SliderHolder", Parent = ChildHolder or Holder, BackgroundTransparency = 1, Visible = cfg.Visible, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) Library:New("UIListLayout", { Parent = SliderHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) if not ChildHolder then Library:New("UIListLayout", { Parent = SliderHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) end local SliderLine = Library:New("Frame", { Name = "SliderLine", Parent = SliderHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) local SliderLabel = Library:New("TextLabel", { Name = "SliderLabel", Parent = SliderLine, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:New("UIListLayout", { Parent = SliderLabel, FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) Library:AddTheme(SliderLabel, { TextColor3 = "Text" }) local SliderOutline = Library:New("Frame", { Name = "SliderOutline", Parent = SliderLine, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 15), Size = UDim2new(1, 0, 0, 15), }) Library:AddTheme(SliderOutline, { BackgroundColor3 = "Outline" }) local SliderBackground = Library:New("Frame", { Name = "SliderBackground", Parent = SliderOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(SliderBackground, { BackgroundColor3 = "Element Background" }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = SliderBackground, }) local SliderAccent = Library:New("Frame", { Name = "SliderAccent", Parent = SliderBackground, BorderSizePixel = 0, Size = UDim2new(0, 0, 1, 0), }) Library:AddTheme(SliderAccent, { BackgroundColor3 = "Accent" }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = SliderAccent, }) local SliderValue = Library:New("TextLabel", { Name = "SliderValue", Parent = SliderOutline, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), FontFace = Library.Font, TextSize = Library.FontSize, TextStrokeTransparency = 0, }) Library:AddTheme(SliderValue, { TextColor3 = "Text" }) function Slider.Set(value) Slider.Value = mathclamp(Utility:Round(value, cfg.Float), cfg.Min, cfg.Max) SliderValue.Text = stringformat("%s%s", tostring(Slider.Value), cfg.Suffix) Library:Tween(SliderAccent, nil, { Size = UDim2new((Slider.Value - cfg.Min) / (cfg.Max - cfg.Min), 0, 1, 0) }) Library.Flags[cfg.Flag] = Slider.Value cfg.Callback(Slider.Value) end function Slider.SetVisibility(status) SliderHolder.Visible = status end Utility:Connect(SliderLine.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Slider.Sliding = true local sizeX = (input.Position.X - SliderLine.AbsolutePosition.X) / SliderLine.AbsoluteSize.X local value = ((cfg.Max - cfg.Min) * sizeX) + cfg.Min Slider.Set(value) end end) Utility:Connect(SliderLine.InputEnded, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Slider.Sliding = false end end) Utility:Connect(UserInputService.InputChanged, function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then if Slider.Sliding then local sizeX = (input.Position.X - SliderLine.AbsolutePosition.X) / SliderLine.AbsoluteSize.X local value = ((cfg.Max - cfg.Min) * sizeX) + cfg.Min Slider.Set(value) end end end) Slider.Set(cfg.Value) Library.ConfigFlags[cfg.Flag] = Slider Slider.ChildHolder = SliderHolder Slider.TextLabel = SliderLabel return setmetatable(Slider, Library) end function Library:Button(cfg) local Parent = self cfg = { Name = cfg.Name or "New Button", Confirm = cfg.Confirm or false, Callback = cfg.Callback or function() end, Visible = cfg.Visible == nil and true or cfg.Visible, } local Button = { Clicked = false, ConfirmCountdown = 0, ConfirmationWrap = nil } local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local ButtonHolder = Library:New("Frame", { Name = "ButtonHolder", Parent = ChildHolder or Holder, BorderSizePixel = 0, Visible = cfg.Visible, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) Library:New("UIListLayout", { Parent = ButtonHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) local ButtonLine = Library:New("Frame", { Name = "ButtonLine", Parent = ButtonHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 20), }) local ButtonOutline = Library:New("Frame", { Name = "ButtonOutline", Parent = ButtonLine, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), }) Library:AddTheme(ButtonOutline, { BackgroundColor3 = "Outline" }) local ButtonBackground = Library:New("Frame", { Name = "ButtonBackground", Parent = ButtonOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(ButtonBackground, { BackgroundColor3 = "Element Background" }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = ButtonBackground, }) local ButtonLabel = Library:New("TextLabel", { Name = "ButtonLabel", Parent = ButtonBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 5, 0, 0), Size = UDim2new(1, -5, 1, 0), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, }) Library:AddTheme(ButtonLabel, { TextColor3 = "Text" }) function Button.StartConfirmation() Button.Clicked = true Button.ConfirmCountdown = 5 ButtonLabel.Text = "Confirm: " .. cfg.Name .. " (" .. Button.ConfirmCountdown .. "s)?" Button.ConfirmationWrap = coroutine.create(function() for _ = 1, 5 do taskwait(1) Button.ConfirmCountdown = Button.ConfirmCountdown - 1 if Button.ConfirmCountdown > 0 then ButtonLabel.Text = "Confirm: " .. cfg.Name .. " (" .. Button.ConfirmCountdown .. "s)?" else ButtonLabel.Text = cfg.Name if Button.Clicked then Library:ChangeObjectTheme(ButtonLabel, { TextColor3 = "Text" }, true) Button.Clicked = false end break end end end) coroutine.resume(Button.ConfirmationWrap) end function Button.SetVisibility(status) ButtonHolder.Visible = status end Utility:Connect(ButtonLine.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then if not cfg.Confirm then Library:ChangeObjectTheme(ButtonLabel, { TextColor3 = "Accent" }, true) taskwait(Library.TweenSpeed) Library:ChangeObjectTheme(ButtonLabel, { TextColor3 = "Text" }, true) cfg.Callback(true) else if not Button.Clicked then Library:ChangeObjectTheme(ButtonLabel, { TextColor3 = "Accent" }, true) Button.StartConfirmation() elseif Button.Clicked then Library:ChangeObjectTheme(ButtonLabel, { TextColor3 = "Text" }, true) coroutine.close(Button.ConfirmationWrap) ButtonLabel.Text = cfg.Name Button.Clicked = false cfg.Callback(true) end end end end) Button.ChildHolder = ButtonHolder return setmetatable(Button, Library) end function Library:Dropdown(cfg) local Parent = self cfg = { Name = cfg.Name or "New Dropdown", Value = cfg.Value or "Value 1", Values = cfg.Values or {"Value 1", "Value 2", "Value 3", "Value 4"}, Multi = cfg.Multi or false, Flag = cfg.Flag or math.random(5^12), Ignore = cfg.Ignore or false, Callback = cfg.Callback or function() end, Visible = cfg.Visible == nil and true or cfg.Visible, Close = cfg.Close or false, } local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local ContentHolder = Parent.ContentHolder local Dropdown = { Items = {}, Selected = cfg.Multi and {} or "" } local DropdownHolder = Library:New("Frame", { Name = "DropdownHolder", Parent = ChildHolder or Holder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Visible = cfg.Visible, }) Library:New("UIListLayout", { Parent = DropdownHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) local DropdownLine = Library:New("Frame", { Name = "DropdownLine", Parent = DropdownHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) local DropdownOutline = Library:New("Frame", { Name = "DropdownOutline", Parent = DropdownLine, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 15), Size = UDim2new(1, 0, 0, 20), }) Library:AddTheme(DropdownOutline, { BackgroundColor3 = "Outline" }) local DropdownBackground = Library:New("Frame", { Name = "DropdownBackground", Parent = DropdownOutline, BackgroundColor3 = Color3fromRGB(45, 45, 45), BorderColor3 = Color3fromRGB(0, 0, 0), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(DropdownBackground, { BackgroundColor3 = "Element Background" }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = DropdownBackground, }) local DropdownValue = Library:New("TextLabel", { Name = "DropdownValue", Parent = DropdownOutline, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 5, 0, 0), Size = UDim2new(1, -5, 1, 0), FontFace = Library.Font, Text = "-", TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(DropdownValue, { TextColor3 = "Text" }) local DropdownStatusOutline = Library:New("Frame", { Name = "DropdownStatusOutline", Parent = DropdownOutline, BorderSizePixel = 0, Position = UDim2new(1, -20, 0, 0), Size = UDim2new(0, 20, 0, 20), }) Library:AddTheme(DropdownStatusOutline, { BackgroundColor3 = "Outline" }) local DropdownStatusBackground = Library:New("Frame", { Name = "DropdownStatusBackground", Parent = DropdownStatusOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(DropdownStatusBackground, { BackgroundColor3 = "Accent" }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(149, 149, 149))}, Rotation = 90, Parent = DropdownStatusBackground, }) local DropdownStatusLabel = Library:New("TextLabel", { Name = "DropdownStatusLabel", Parent = DropdownStatusBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), FontFace = Library.Font, Text = "โ†“", TextScaled = true, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextWrapped = true, }) Library:AddTheme(DropdownStatusLabel, { TextColor3 = "Text" }) local DropdownLabel = Library:New("TextLabel", { Name = "DropdownLabel", Parent = DropdownLine, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(DropdownLabel, { TextColor3 = "Text" }) Library:New("UIListLayout", { Parent = DropdownLabel, FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) local DropdownContentOutline = Library:New("Frame", { Name = "DropdownContentOutline", Parent = ContentHolder or Library.ScreenGui, Visible = false, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(0, 0, 0, 0), }) Library:New("TextButton", { Name = "IgnoreButton", Parent = DropdownContentOutline, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), Text = "", TextSize = 0, }) Library:AddTheme(DropdownContentOutline, { BackgroundColor3 = "Outline" }) local DropdownContentBackground = Library:New("Frame", { Name = "DropdownContentBackground", Parent = DropdownContentOutline, BackgroundColor3 = Color3fromRGB(37, 37, 37), BorderColor3 = Color3fromRGB(0, 0, 0), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(DropdownContentBackground, { BackgroundColor3 = "Background" }) Library:New("UIPadding", { Parent = DropdownContentBackground, PaddingBottom = UDimnew(0, 5), PaddingTop = UDimnew(0, 5), PaddingRight = UDimnew(0, 5) }) local DropdownScrollingHolder = Library:New("ScrollingFrame", { Name = "DropdownScrollingHolder", Parent = DropdownContentBackground, Active = true, BackgroundTransparency = 1, BorderSizePixel = 0, AutomaticCanvasSize = Enum.AutomaticSize.Y, Size = UDim2new(1, 0, 1, 0), BottomImage = Library.Images.Scroll, CanvasSize = UDim2new(0, 0, 0, 0), MidImage = Library.Images.Scroll, ScrollBarThickness = 3, TopImage = Library.Images.Scroll, }) Library:AddTheme(DropdownScrollingHolder, { ScrollBarImageColor3 = "Accent", }) Library:New("UIListLayout", { Parent = DropdownScrollingHolder, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 2), }) Library:New("UIPadding", { Parent = DropdownScrollingHolder, PaddingLeft = UDimnew(0, 5), }) function Dropdown.UpdateAbsolute() DropdownContentOutline.Size = UDim2new(0, DropdownOutline.AbsoluteSize.x, 0, DropdownContentOutline.AbsoluteSize.y) DropdownContentOutline.Position = UDim2new(0, DropdownOutline.AbsolutePosition.x, 0, DropdownOutline.AbsolutePosition.y + DropdownOutline.AbsoluteSize.y - 1) end function Dropdown.SetVisibility(status) DropdownHolder.Visible = status if not status then Dropdown.Show(status) end end function Dropdown.Show(status) DropdownContentOutline.Visible = status Library:Tween(DropdownStatusLabel, nil, { Rotation = status and 180 or 0, Position = UDim2new(0, status and 1 or 0, 0, status and 2 or 0) }) Dropdown.UpdateAbsolute() end function Dropdown.Display() if cfg.Multi then local CurrentText = {} if #Dropdown.Selected > 0 then for _, option in Dropdown.Selected do tableinsert(CurrentText, option) local Text = tableconcat(CurrentText, ", ") DropdownValue.Text = Text end else DropdownValue.Text = "-" end else local Selected = Dropdown.Selected DropdownValue.Text = Selected == "" or Selected == nil and "-" or Selected end end function Dropdown.Set(item) if cfg.Multi then if type(item) == "table" then -- too lazy to implement a for loop for a table, just set it for every item ig. for _,v in item do if not tablefind(Dropdown.Selected, v) then Dropdown.Set(v) end end else local Index = tablefind(Dropdown.Selected, item) local Item = Dropdown.Items[item] if Item then if Index then Item.Selected = false Library:ChangeObjectTheme(Item.Text, { TextColor3 = "Text" }, true) tableremove(Dropdown.Selected, Index) Dropdown.Display() if not cfg.Ignore then Library.Flags[cfg.Flag] = Dropdown.Selected end cfg.Callback(Dropdown.Selected) else Item.Selected = true Library:ChangeObjectTheme(Item.Text, { TextColor3 = "Accent" }, true) tableinsert(Dropdown.Selected, item) Dropdown.Display() if not cfg.Ignore then Library.Flags[cfg.Flag] = Dropdown.Selected end cfg.Callback(Dropdown.Selected) end end end else for _,v in Dropdown.Items do Library:ChangeObjectTheme(v.Text, { TextColor3 = _ == item and "Accent" or "Text" }, true) v.Selected = _ == item end Dropdown.Selected = item Dropdown.Display() if not cfg.Ignore then Library.Flags[cfg.Flag] = item end cfg.Callback(item) end if cfg.Close then Dropdown.Show(false) end end local function GetTblSize(tbl) local Count = 0 for _,v in tbl do Count += 1 end return Count end function Dropdown.NewItem(item) if Dropdown.Items[item] then return end local Item = { Name = item, Selected = false } local DropdownContentLabel = Library:New("TextLabel", { Name = "DropdownContentLabel", Parent = DropdownScrollingHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 15), FontFace = Library.Font, Text = item, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(DropdownContentLabel, { TextColor3 = "Text" }) Item.Text = DropdownContentLabel Utility:Connect(DropdownContentLabel.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Dropdown.Set(item) end end) Dropdown.Items[item] = Item -- SOME GAY SIZE MATH local Size = 0 for _,v in DropdownScrollingHolder:GetChildren() do if IsA(v, "TextLabel") then Size += v.AbsoluteSize.y + 2 end end Size += 10 -- uipadding shiz. -- if GetTblSize(Dropdown.Items) <= 6 then DropdownContentOutline.Size = UDim2new(0, DropdownContentOutline.AbsoluteSize.x, 0, Size) end end function Dropdown.Refresh(tbl) for _,v in Dropdown.Items do v.Text:Destroy() Dropdown.Items[_] = nil end for _,v in tbl do Dropdown.NewItem(v) end end for _,v in cfg.Values do Dropdown.NewItem(v) end Dropdown.Set(cfg.Value) Library.Flags[cfg.Flag] = Dropdown.Selected Library.ConfigFlags[cfg.Flag] = Dropdown Utility:Connect(DropdownLine.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Dropdown.Show(not DropdownContentOutline.Visible) end end) Utility:Connect(DropdownOutline:GetPropertyChangedSignal("AbsolutePosition"), function() Dropdown.UpdateAbsolute() end) Utility:Connect(DropdownOutline:GetPropertyChangedSignal("AbsoluteSize"), function() Dropdown.UpdateAbsolute() end) Dropdown.ChildHolder = DropdownHolder Dropdown.TextLabel = DropdownLabel return setmetatable(Dropdown, Library) end function Library:List(cfg) local Parent = self cfg = { Size = cfg.Size or 150, Name = cfg.Name or "New List", Value = cfg.Value or "Value 1", Values = cfg.Values or {"Value 1", "Value 2", "Value 3", "Value 4"}, Multi = cfg.Multi or false, Flag = cfg.Flag or math.random(5^12), Ignore = cfg.Ignore or false, Callback = cfg.Callback or function() end, Visible = cfg.Visible == nil and true or cfg.Visible, } local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local List = { Items = {}, Selected = cfg.Multi and {} or "" } local ListHolder = Library:New("Frame", { Name = "ListHolder", Parent = ChildHolder or Holder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, Visible = cfg.Visible, }) Library:New("UIListLayout", { Parent = ListHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) local ListLine = Library:New("Frame", { Name = "ListLine", Parent = ListHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) local ListOutline = Library:New("Frame", { Name = "ListOutline", Parent = ListLine, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 15), Size = UDim2new(1, 0, 0, cfg.Size), }) Library:AddTheme(ListOutline, { BackgroundColor3 = "Outline" }) local ListBackground = Library:New("Frame", { Name = "ListBackground", Parent = ListOutline, BackgroundColor3 = Color3fromRGB(45, 45, 45), BorderColor3 = Color3fromRGB(0, 0, 0), BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(ListBackground, { BackgroundColor3 = "Element Background" }) Library:New("UIPadding", { Parent = ListBackground, PaddingBottom = UDimnew(0, 5), PaddingTop = UDimnew(0, 5), PaddingRight = UDimnew(0, 5) }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = ListBackground, }) local ListScrollingHolder = Library:New("ScrollingFrame", { Name = "ListScrollingHolder", Parent = ListBackground, Active = true, BackgroundTransparency = 1, BorderSizePixel = 0, AutomaticCanvasSize = Enum.AutomaticSize.Y, Size = UDim2new(1, 0, 1, 0), BottomImage = Library.Images.Scroll, CanvasSize = UDim2new(0, 0, 0, 0), MidImage = Library.Images.Scroll, ScrollBarThickness = 3, TopImage = Library.Images.Scroll, }) Library:AddTheme(ListScrollingHolder, { ScrollBarImageColor3 = "Accent", }) Library:New("UIListLayout", { Parent = ListScrollingHolder, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 2), }) Library:New("UIPadding", { Parent = ListScrollingHolder, PaddingLeft = UDimnew(0, 5), }) local ListLabel = Library:New("TextLabel", { Name = "ListLabel", Parent = ListLine, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), FontFace = Library.Font, Text = cfg.Name, TextColor3 = Color3fromRGB(255, 255, 255), TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(ListLabel, { TextColor3 = "Text" }) Library:New("UIListLayout", { Parent = ListLabel, FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) function List.SetVisibility(status) ListHolder.Visible = status end function List.Set(item) if cfg.Multi then if type(item) == "table" then for _,v in item do if not tablefind(List.Selected, v) then List.Set(v) end end return end local Index = tablefind(List.Selected, item) local Item = List.Items[item] if Item then if Index then tableremove(List.Selected, Index) Item.Selected = false Library:ChangeObjectTheme(Item.Text, { TextColor3 = "Text" }, true) if not cfg.Ignore then Library.Flags[cfg.Flag] = List.Selected end cfg.Callback(List.Selected) else tableinsert(List.Selected, item) Item.Selected = true Library:ChangeObjectTheme(Item.Text, { TextColor3 = "Accent" }, true) if not cfg.Ignore then Library.Flags[cfg.Flag] = List.Selected end cfg.Callback(List.Selected) end end else for _,v in List.Items do Library:ChangeObjectTheme(v.Text, { TextColor3 = _ == item and "Accent" or "Text" }, true) v.Selected = _ == item end List.Selected = item if not cfg.Ignore then Library.Flags[cfg.Flag] = item end cfg.Callback(item) end end function List.NewItem(item) local ImageId = nil if type(item) == "table" then ImageId = item.ImageId item = item.Name end if List.Items[item] then return end local Item = { Name = item, Selected = false } local ListContentBackground = Library:New("Frame", { Name = "ListContentBackground", BackgroundTransparency = 1, Parent = ListScrollingHolder, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 15), }) local ListContentLabel = Library:New("TextLabel", { Name = "ListContentLabel", Parent = ListContentBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, ImageId and 18 or 0, 0, 0), Size = UDim2new(1, ImageId and -18 or 0, 1, 0), FontFace = Library.Font, Text = item, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) if ImageId then local ListContentImage = Library:New("ImageLabel", { Name = "ListContentImage", Parent = ListContentBackground, BackgroundColor3 = Color3fromRGB(255, 255, 255), BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(0, 15, 0, 15), Image = ImageId, }) end Library:AddTheme(ListContentLabel, { TextColor3 = "Text" }) Item.Holder = ListContentBackground Item.Text = ListContentLabel Utility:Connect(ListContentBackground.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then List.Set(item) end end) List.Items[item] = Item end function List.Refresh(tbl) for _,v in List.Items do v.Holder:Destroy() List.Items[_] = nil end for _,v in tbl do List.NewItem(v) end end for _,v in cfg.Values do List.NewItem(v) end List.Set(cfg.Value) Library.Flags[cfg.Flag] = List.Selected Library.ConfigFlags[cfg.Flag] = List List.ChildHolder = ListHolder List.TextLabel = ListLabel return setmetatable(List, Library) end function Library:Keybind(cfg) local Parent = self cfg = { Name = cfg.Name or "New Keybind", Key = cfg.Key or "-", Mode = cfg.Mode or "Toggle", Modes = cfg.Modes or true, Value = cfg.Value or false, Flag = cfg.Flag or math.random(5^12), Ignore = cfg.Ignore or false, Callback = cfg.Callback or function() end, Child = cfg.Child == nil and true or cfg.Child, Visible = cfg.Visible == nil and true or cfg.Visible, } local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local TextLabelHolder = Parent.TextLabel local Keybind = { Listening = false, Key = "", Value = cfg.Value, Mode = "" } local KeybindMode = Library.Selectables.KeybindMode local KeybindHolder = cfg.Child and TextLabelHolder or Library:New("Frame", { Name = "KeybindHolder", Parent = ChildHolder or Holder, BackgroundTransparency = 1, Visible = not TextLabelHolder and cfg.Visible or true, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), AutomaticSize = Enum.AutomaticSize.Y, }) local KeybindLabel if not (TextLabelHolder and cfg.Child) then local KeybindLine = Library:New("Frame", { Name = "KeybindLine", Parent = KeybindHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), }) KeybindLabel = Library:New("TextLabel", { Name = "KeybindLabel", Parent = KeybindLine, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(KeybindLabel, { TextColor3 = "Text" }) Library:New("UIListLayout", { Parent = KeybindLabel, FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) end local KeybindValue = Library:New("TextButton", { Name = "KeybindHolder", Parent = cfg.Child and TextLabelHolder or KeybindLabel, BackgroundTransparency = 1, BorderSizePixel = 0, Visible = TextLabelHolder and cfg.Visible or true, AutomaticSize = Enum.AutomaticSize.X, Size = UDim2new(0, 0, 1, 0), FontFace = Library.Font, Text = "[E]", TextSize = Library.FontSize, TextStrokeTransparency = 0, }) Library:AddTheme(KeybindValue, { TextColor3 = "Text" }) function Keybind.ChangeMode(mode) Keybind.Mode = mode if mode == "Always" then Keybind.Set(true) elseif mode == "Hold" then Keybind.Set(false) end end function Keybind.Set(input) if type(input) == "boolean" then local Value = input if Keybind.Mode == "Always" then Value = true end Keybind.Value = Value cfg.Callback(Keybind.Value or false) elseif tostring(input):find("Enum") then input = input.Name == "Escape" and "-" or input Keybind.Key = input or "-" local Text = (ConvertKeys[Keybind.Key] or tostring(Keybind.Key):gsub("Enum.", "")) local Text2 = (tostring(Text):gsub("KeyCode.", ""):gsub("UserInputType.", "")) or "-" KeybindValue.Text = "[" .. Text2 .. "]" cfg.Callback(Keybind.Value or false) elseif tablefind({"Toggle", "Hold", "Always"}, input) then Keybind.ChangeMode(input) cfg.Callback(Keybind.Value or false) elseif type(input) == "table" then input.Key = type(input.Key) == "string" and input.Key ~= "-" and Utility:ConvertToEnum(input.Key) or input.Key input.Key = input.Key == Enum.KeyCode.Escape and "-" or input.Key Keybind.Key = input.Key or "-" Keybind.Mode = input.Mode or "Toggle" if input.Value then Keybind.Value = input.Value end local Text = tostring(Keybind.Key) ~= "Enums" and (ConvertKeys[Keybind.Key] or tostring(Keybind.Key):gsub("Enum.", "")) or nil local Text2 = Text and (tostring(Text):gsub("KeyCode.", ""):gsub("UserInputType.", "")) KeybindValue.Text = "[" .. Text2 .. "]" or "[-]" cfg.Callback(Keybind.Value or false) end if not cfg.Ignore then Library.Keybinds[cfg.Flag] = { Flag = cfg.Flag, Status = Keybind.Value, Text = ("[%s]: %s"):format(tostring(Keybind.Key):gsub("Enum.KeyCode.", ""):gsub("Enum.UserInputType.", ""), cfg.Name) } end Library.Flags[cfg.Flag] = Keybind.Value Library.Flags[cfg.Flag .. "_data"] = { Key = Keybind.Key, Mode = Keybind.Mode, Value = Keybind.Value, } end function Keybind.SetVisibility(status) if not TextLabelHolder then KeybindHolder.Visible = status end if TextLabelHolder then KeybindValue.Visible = status end end Utility:Connect(KeybindValue.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 and not Keybind.Listening then Library:ChangeObjectTheme(KeybindValue, { TextColor3 = "Accent" }, true) taskwait() Keybind.Listening = true end if input.UserInputType == Enum.UserInputType.MouseButton2 then KeybindMode.Holder.Position = UDim2new(0, KeybindValue.AbsolutePosition.x, 0, KeybindValue.AbsolutePosition.y + KeybindValue.AbsoluteSize.y + 2) if KeybindMode.Flag ~= cfg.Flag then KeybindMode.Holder.Visible = true KeybindMode.Dropdown.Set(Keybind.Mode ~= "" and Keybind.Mode or "Toggle") KeybindMode.Flag = cfg.Flag else KeybindMode.Holder.Visible = false KeybindMode.Flag = "" end end end) Utility:Connect(UserInputService.InputBegan, function(input) if Keybind.Listening then Keybind.Set(input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode or input.UserInputType) Keybind.Listening = false Library:ChangeObjectTheme(KeybindValue, { TextColor3 = "Text" }, true) elseif input.KeyCode == Keybind.Key or input.UserInputType == Keybind.Key then Keybind.Set(not Keybind.Value) end end) Utility:Connect(UserInputService.InputEnded, function(input) if Keybind.Mode == "Hold" and (input.KeyCode == Keybind.Key or input.UserInputType == Keybind.Key) and not Keybind.Listening then Keybind.Set(false) end end) Keybind.Set({ Key = cfg.Key, Mode = cfg.Mode }) Library.ConfigFlags[cfg.Flag] = Keybind Library.ConfigFlags[cfg.Flag .. "_data"] = Keybind Keybind.ChildHolder = KeybindHolder Keybind.TextLabel = cfg.Child and TextLabelHolder or KeybindLabel return setmetatable(Keybind, Library) end function Library:Textbox(cfg) local Parent = self cfg = { Name = cfg.Name or "New Textbox", Value = cfg.Value or "", Flag = cfg.Flag or math.random(5^12), Callback = cfg.Callback or function() end, Visible = cfg.Visible == nil and true or cfg.Visible, } local Textbox = {} local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local TextboxHolder = Library:New("Frame", { Name = "TextboxHolder", Parent = ChildHolder or Holder, BorderSizePixel = 0, Visible = cfg.Visible, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) Library:New("UIListLayout", { Parent = TextboxHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) local TextboxLine = Library:New("Frame", { Name = "TextboxLine", Parent = TextboxHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 20), }) local TextboxOutline = Library:New("Frame", { Name = "TextboxOutline", Parent = TextboxLine, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), }) Library:AddTheme(TextboxOutline, { BackgroundColor3 = "Outline" }) local TextboxBackground = Library:New("Frame", { Name = "TextboxBackground", Parent = TextboxOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(TextboxBackground, { BackgroundColor3 = "Element Background" }) -- Library:New("UIGradient", { -- Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, -- Rotation = 90, -- Parent = TextboxBackground, -- }) local TextboxLabel = Library:New("TextBox", { Name = "TextboxLabel", Parent = TextboxBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 5, 0, 0), Size = UDim2new(1, -5, 1, 0), FontFace = Library.Font, Text = cfg.Value, PlaceholderText = cfg.Name, TextSize = Library.FontSize, ClearTextOnFocus = false, TextStrokeTransparency = 0, }) Library:AddTheme(TextboxLabel, { TextColor3 = "Text", PlaceholderColor3 = "Dark Text" }) function Textbox.SetVisibility(status) TextboxHolder.Visible = status end function Textbox.Set(value) TextboxLabel.Text = value Library.Flags[cfg.Flag] = value cfg.Callback(value) end Utility:Connect(TextboxLabel.FocusLost, function() Textbox.Set(TextboxLabel.Text) end) Utility:Connect(TextboxLabel:GetPropertyChangedSignal("Text"), function() Textbox.Set(TextboxLabel.Text) end) Textbox.ChildHolder = TextboxHolder Library.ConfigFlags[cfg.Flag] = Textbox return setmetatable(Textbox, Library) end function Library:Label(cfg) local Parent = self cfg = { Name = cfg.Name or "New Label", } local Label = {} local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local LabelHolder = Library:New("Frame", { Name = "LabelHolder", Parent = ChildHolder or Holder, BackgroundTransparency = 1, BorderSizePixel = 0, Visible = cfg.Visible, Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) Library:New("UIListLayout", { Parent = LabelHolder, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) local LabelLine = Library:New("Frame", { Name = "LabelLine", Parent = LabelHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), }) local LabelLabel = Library:New("TextLabel", { Name = "LabelLabel", Parent = LabelLine, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 1, 0), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, RichText = true, }) Library:AddTheme(LabelLabel, { TextColor3 = "Text" }) Library:New("UIListLayout", { Parent = LabelLabel, FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) function Label.SetVisibility(status) LabelHolder.Visible = status end function Label.ChangeText(text) LabelLabel.Text = text end Label.ChildHolder = LabelHolder Label.TextLabel = LabelLabel return setmetatable(Label, Library) end function Library:Colorpicker(cfg) local Parent = self cfg = { Name = cfg.Name or "New Colorpicker", Color = cfg.Color or Color3fromRGB(255, 255, 255), Transparency = cfg.Transparency or 1, Flag = cfg.Flag or math.random(5^12), Callback = cfg.Callback or function() end, Child = cfg.Child == nil and true or cfg.Child, Visible = cfg.Visible == nil and true or cfg.Visible, } local Holder = Parent.Holder local ChildHolder = Parent.ChildHolder local TextLabelHolder = Parent.TextLabel local Colorpicker = { Color = cfg.Color, Transparency = cfg.Transparency } local ColorpickerHolder = cfg.Child and TextLabelHolder or Library:New("Frame", { Name = "ColorpickerHolder", Parent = ChildHolder or Holder, BackgroundTransparency = 1, Visible = not TextLabelHolder and cfg.Visible or true, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), AutomaticSize = Enum.AutomaticSize.Y, }) local ColorpickerLabel if not (TextLabelHolder and cfg.Child) then local ColorpickerLine = Library:New("Frame", { Name = "ColorpickerLine", Parent = ColorpickerHolder, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 13), }) ColorpickerLabel = Library:New("TextLabel", { Name = "ColorpickerLabel", Parent = ColorpickerLine, BackgroundTransparency = 1, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }) Library:AddTheme(ColorpickerLabel, { TextColor3 = "Text" }) Library:New("UIListLayout", { Parent = ColorpickerLabel, FillDirection = Enum.FillDirection.Horizontal, HorizontalAlignment = Enum.HorizontalAlignment.Right, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 3), }) end local ColorpickerOutline = Library:New("Frame", { Name = "ColorpickerOutline", Parent = cfg.Child and TextLabelHolder or ColorpickerLabel, Visible = TextLabelHolder and cfg.Visible == nil and true or cfg.Visible, BorderSizePixel = 0, Size = UDim2new(0, 27, 1, 0), }) Library:AddTheme(ColorpickerOutline, { BackgroundColor3 = "Outline" }) local ColorpickerImage = Library:New("ImageLabel", { Name = "ColorpickerImage", Parent = ColorpickerOutline, BackgroundColor3 = Color3fromRGB(255, 255, 255), BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), Image = Library.Images.Checkers, ScaleType = Enum.ScaleType.Tile, TileSize = UDim2new(0, 6, 0, 6), }) local ColorpickerBackground = Library:New("Frame", { Name = "ColorpickerBackground", Parent = ColorpickerImage, BorderSizePixel = 0, Size = UDim2new(1, 0, 1, 0), }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(149, 149, 149))}, Rotation = 90, Parent = ColorpickerBackground, }) local ColorpickerButton = Library:New("TextButton", { Name = "ColorpickerButton", BackgroundTransparency = 1, Parent = ColorpickerBackground, BorderSizePixel = 0, Text = "", Size = UDim2new(1, 0, 1, 0), ZIndex = 10, }) function Colorpicker.Set(color, transparency) transparency = transparency or Colorpicker.Transparency if type(color) == "table" then transparency = color.a color = color.c end Colorpicker.Color = color Colorpicker.Transparency = transparency ColorpickerBackground.BackgroundColor3 = color ColorpickerBackground.BackgroundTransparency = 1 - transparency Library.Flags[cfg.Flag] = { a = transparency, c = color } cfg.Callback({ a = transparency, c = color }) end function Colorpicker.SetVisibility(status) if not TextLabelHolder then ColorpickerHolder.Visible = status end if TextLabelHolder then ColorpickerOutline.Visible = status end end Colorpicker.Set({ c = Colorpicker.Color, a = Colorpicker.Transparency }) Utility:Connect(ColorpickerButton.MouseButton1Down, function() local ColorpickerSelect = Library.Selectables.Colorpicker ColorpickerSelect.Window.Title.Text = cfg.Name -- if ColorpickerSelect.Window.OutlineHolder.Visible then -- ColorpickerSelect.Flag = "" -- --ColorpickerSelect.Window.OutlineHolder.Visible = false -- else ColorpickerSelect.Flag = cfg.Flag ColorpickerSelect.Set({ c = Colorpicker.Color, a = Colorpicker.Transparency }) --ColorpickerSelect.Window.OutlineHolder.Visible = true -- end end) Library.ConfigFlags[cfg.Flag] = Colorpicker Colorpicker.ChildHolder = ColorpickerHolder Colorpicker.TextLabel = cfg.Child and TextLabelHolder or ColorpickerLabel return setmetatable(Colorpicker, Library) end function Library:Show(value) Library.ScreenGui.Enabled = value Library.Popups.Enabled = value end function Library:GetConfig() local Config = {} for _,v in Library.ConfigFlags do local Value = Library.Flags[_] if type(Value) == "table" and Value["Key"] then Config[_] = {Value = Value.Value, Mode = Value.Mode, Key = tostring(Value.Key)} elseif type(Value) == "table" and Value["a"] and Value["c"] then Config[_] = {a = Value.a, c = Value.c:ToHex()} else Config[_] = Value end end return HttpService:JSONEncode(Config) end function Library:LoadConfig(config) local Config = HttpService:JSONDecode(config) for _,v in Config do local ConfigTable = Library.ConfigFlags[_] if ConfigTable then local Func = ConfigTable.Set if Func then if type(v) == "table" and v["a"] and v["c"] then Func({ a = v.a, c = type(v.c) == "string" and Color3fromHex(v.c) or v.c }) else Func(v) end end end end end function Library:InitList(cfg) cfg = { Name = cfg.Name or "New List", Position = cfg.Position or UDim2new(0, 300, 0, 300) } local WindowOutline = Library:New("Frame", { Name = "WindowOutline", Parent = Library.ListsGui, BorderSizePixel = 0, Position = cfg.Position, Size = UDim2new(0, 100, 0, 0), --AutomaticSize = Enum.AutomaticSize.Y, }, true) WindowOutline.Active = true WindowOutline.Draggable = true Library:AddTheme(WindowOutline, { BackgroundColor3 = "Outline", }) local WindowBackground = Library:New("Frame", { Name = "WindowBackground", Parent = WindowOutline, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }, true) Library:AddTheme(WindowBackground, { BackgroundColor3 = "Background", }) local ItemsHolder = Library:New("Frame", { Name = "WindowBackground", Parent = WindowBackground, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 0, 0), }, true) Library:New("UIPadding", { Parent = ItemsHolder, PaddingLeft = UDimnew(0, 5), PaddingRight = UDimnew(0, 5), }, true) local TitleBackground = Library:New("Frame", { Name = "TitleBackground", Parent = WindowBackground, BorderSizePixel = 0, Size = UDim2new(1, 0, 0, 24), }, true) Library:AddTheme(TitleBackground, { BackgroundColor3 = "Accent", }) Library:New("UIPadding", { Parent = TitleBackground, PaddingBottom = UDimnew(0, 5), PaddingLeft = UDimnew(0, 5), PaddingRight = UDimnew(0, 5), PaddingTop = UDimnew(0, 5), }, true) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(149, 149, 149))}, Rotation = 90, Parent = TitleBackground, }, true) local TitleLabel = Library:New("TextLabel", { Name = "TitleLabel", Parent = TitleBackground, BackgroundTransparency = 1, BorderSizePixel = 0, AutomaticSize = Enum.AutomaticSize.X, Size = UDim2new(0, 0, 1, 0), FontFace = Library.Font, Text = cfg.Name, TextSize = Library.FontSize, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, }, true) Library:AddTheme(TitleLabel, { TextColor3 = "Text", }) local TitleOutline = Library:New("Frame", { Name = "TitleOutline", Parent = WindowBackground, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 24), Size = UDim2new(1, 0, 0, 1), }, true) Library:AddTheme(TitleOutline, { BackgroundColor3 = "Outline", }) local List = { Items = {}, } local YOffset = 0 local BiggestX = TitleLabel.TextBounds.X local LerpedSize = TitleLabel.TextBounds.X function List.RenderItem(flag, text, status) if not List.Items[flag] then List.Items[flag] = { Object = Library:New("TextLabel", { Name = "ItemLabel", Parent = ItemsHolder, BackgroundTransparency = 1, TextTransparency = 1, Position = UDim2new(0, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), FontFace = Library.Font, Text = text, TextSize = Library.FontSize, TextStrokeTransparency = 0, }, true), Text = text, Status = status, Fade = 2, } Library:AddTheme(List.Items[flag].Object, { TextColor3 = "Text" }) return end local Item = List.Items[flag] local Object = Item.Object Item.Fade = Utility:Lerp(Item.Fade, status and 255 or 0, Library.LerpSpeed) Item.Text = text Item.Status = status Object.Text = Item.Text Object.Position = UDim2new(0, -(Object.TextBounds.X - (Object.TextBounds.X * (Item.Fade / 255))), 0, 30 + YOffset) Object.TextTransparency = 1 - (1 * (Item.Fade / 255)) if status and BiggestX < Object.TextBounds.X then BiggestX = mathmax(BiggestX, Object.TextBounds.X) end YOffset += (Object.TextBounds.Y + 3) * (Item.Fade / 255) end function List.GetItems() return { { Text = "Test22222222", Flag = "flag1", Status = true, }, { Text = "Test2", Flag = "flag2", Status = true, }, { Text = "Test3", Flag = "flag3", Status = true, }, { Text = "Test4", Flag = "flag4", Status = true, }, { Text = "Test5", Flag = "flag5", Status = true, }, } end function List.SetVisibility(status) WindowOutline.Visible = status end function List.Think() if not WindowOutline.Visible then return end YOffset = 0 BiggestX = TitleLabel.TextBounds.X for _,v in List.GetItems() do List.RenderItem(v.Flag, v.Text, v.Status) end LerpedSize = Utility:Lerp(LerpedSize, BiggestX + 15, Library.LerpSpeed) WindowOutline.Size = UDim2new(0, LerpedSize, 0, 35 + YOffset) end return List end function Library:TextTriggers(text) local AccentTheme = Library.Theme.Accent local Triggers = { ['{user}'] = Puppyware.User, ['{name}'] = ('Puppyware'):format(mathfloor(AccentTheme.r * 255), mathfloor(AccentTheme.g * 255), mathfloor(AccentTheme.b * 255)), ['{hour}'] = os.date("%H"), ['{minute}'] = os.date("%M"), ['{second}'] = os.date("%S"), ['{ap}'] = os.date("%p"), ['{month}'] = os.date("%b"), ['{day}'] = os.date("%d"), ['{year}'] = os.date("%Y"), ['{fps}'] = Library.Fps, ['{ping}'] = mathfloor(Stats.PerformanceStats.Ping:GetValue() or 0), ['{time}'] = os.date("%H:%M:%S"), ['{date}'] = os.date("%b. %d, %Y") } for _,v in Triggers do text = string.gsub(text, _, v) end return text end function Library:Watermark(cfg) cfg = { Text = cfg.Text or "{name} | {user} | rtt: {ping}ms | {time}", Visible = cfg.Visible or true, TickRate = cfg.TickRate or 0.2 } local Watermark = { Visible = cfg.Visible, Text = cfg.Text, TickRate = cfg.TickRate, Time = osclock() - 1000 } local WatermarkBackground = Library:New("Frame", { Name = "WatermarkBackground", Parent = Library.ListsGui, AutomaticSize = Enum.AutomaticSize.XY, Position = UDim2new(0, 10, 0, 5), Size = UDim2new(0, 0, 0, 0), Visible = cfg.Visible, }, true) local WatermarkLabel = Library:New("TextLabel", { Name = "WatermarkLabel", Parent = WatermarkBackground, BackgroundTransparency = 1, BorderSizePixel = 0, AutomaticSize = Enum.AutomaticSize.XY, Position = UDim2new(0, 0, 0, 0), FontFace = Library.Font, TextSize = Library.FontSize, TextTransparency = 0, TextStrokeTransparency = 0, TextXAlignment = Enum.TextXAlignment.Left, RichText = true, }, true) local WatermarkAccent = Library:New("Frame", { Name = "WatermarkAccent", Parent = WatermarkBackground, BorderSizePixel = 0, Position = UDim2new(0, -3, 0, -5), Size = UDim2new(1, 6, 0, 1), }, true) -- Utility:New("UIGradient", { -- Enabled = true, -- Rotation = 0, -- Parent = WatermarkBackground, -- Transparency = NumberSequence.new({ -- NumberSequenceKeypoint.new(0, 0), -- NumberSequenceKeypoint.new(1, 1), -- }) -- }) Library:New("UIPadding", { Parent = WatermarkBackground, PaddingBottom = UDimnew(0, 3), PaddingLeft = UDimnew(0, 3), PaddingRight = UDimnew(0, 3), PaddingTop = UDimnew(0, 5), }) Library:AddTheme(WatermarkAccent, { BackgroundColor3 = "Accent", }) Library:AddTheme(WatermarkBackground, { BorderColor3 = "Outline", BackgroundColor3 = "Element Background", }) -- Library:AddTheme(ToggleBackground, { -- BackgroundColor3 = "Element Background" -- }) Library:New("UIGradient", { Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3fromRGB(124, 124, 124))}, Rotation = 90, Parent = WatermarkBackground, }) Library:AddTheme(WatermarkLabel, { TextColor3 = "Text", }) function Watermark.Think() local ClockPulse = osclock() if ClockPulse - Watermark.Time < Watermark.TickRate then return end Watermark.Time = ClockPulse if WatermarkBackground.Visible ~= Watermark.Visible then WatermarkBackground.Visible = Watermark.Visible end if Watermark.Visible then local Text = Library:TextTriggers(Watermark.Text) WatermarkLabel.Text = Text end end function Watermark.SetText(text) Watermark.Text = text end function Watermark.SetTickRate(rate) Watermark.TickRate = rate end function Watermark.SetVisibility(status) Watermark.Visible = status end return Watermark end local Flags = Library.Flags -- -- Controller Controller.Alive = false Controller.RootPart = nil Controller.Humanoid = nil Controller.Character = nil function Controller.Spawning(Character, Humanoid, RootPart) Controller.Character = Character Controller.Humanoid = Humanoid Controller.RootPart = RootPart Controller.Alive = true if not (Controller.Character and Controller.Humanoid and Controller.RootPart) then return Controller.Despawning() end end function Controller.Despawning(Value) if Value then return end Controller.Alive = false Controller.Character = nil Controller.RootPart = nil Controller.Humanoid = nil end Utility:Connect(RunService.Heartbeat, function() local Character = Utility:GetLocalPlayerCharacter() if not Character then if Controller.Alive then Controller.Despawning(false) end return end local Humanoid = Utility:GetHumanoid(Character) local RootPart = Utility:GetRootPart(Character, Humanoid) if not RootPart then if Controller.Alive then Controller.Despawning(false) end return end Controller.Spawning(Character, Humanoid, RootPart) end, "Controller Heartbeat") -- -- Aimbot function Aimbot:SelectTarget() Aimbot.Targets = {} Aimbot.Target = nil local LocalRoot = Controller.RootPart if not Aimbot.Position then Aimbot.Position = Flags["aimbot_position"] == "Screen" and Camera.ViewportSize / 2 or MouseLocation end local CameraPosition = Camera.CFrame.p for _,v in Utility:GetPlayers() do if v == LocalPlayer then continue end local PlayerTbl = Puppyware.Players[v.Name] local Status = PlayerTbl and PlayerTbl.Status or "None" if Flags["ignore_friends"] and Status and Status == "Friend" then continue end if Flags["priority_only"] and Status and Status ~= "Priority" then continue end local Character = Utility:GetCharacter(v) if not Character then continue end if tablefind(Flags["aimbot_checks"], "Force-Field") and typeof(Character) == "Instance" and FindFirstChildWhichIsA(Character, "ForceField") then continue end local Humanoid = Utility:GetHumanoid(Character) local Health = Utility:GetHealth(v, Humanoid) if tablefind(Flags["aimbot_checks"], "Health") and Health and Health <= 0 then continue end local Hitbox = Utility:GetBodyPart(Character, Flags["aimbot_hitbox"]) if not Hitbox then continue end local Distance = ((LocalRoot and LocalRoot.Position or Camera.CFrame.p) - Hitbox.Position).Magnitude if Flags["aimbot_limit_distance"] and Distance > Flags["aimbot_limit_distance_amount"] then continue end local Position, OnScreen = WorldToViewportPoint(Camera, Hitbox.Position) if Flags["aimbot_use_fov"] and not OnScreen or not Position then continue end --local Result = Raycast(Workspace, CameraPosition, (Hitbox.Position - CameraPosition).Unit * 1000, Utility.Blacklist) local AimbotMagnitude = (Vector2.new(Position.x, Position.y) - Aimbot.Position).Magnitude if Flags["aimbot_use_fov"] and Flags["aimbot_fov_amount"] < AimbotMagnitude then continue end table.insert(Aimbot.Targets, { Player = v, Hitbox = Hitbox, ScreenHitbox = Position, Magnitude = AimbotMagnitude, Character = Character, }) end tablesort(Aimbot.Targets, function(a, b) return a.Magnitude < b.Magnitude end) return Aimbot.Targets[1] end function Aimbot:Think(dt) local LocalRoot = Controller.RootPart if not (Flags["aimbot"] and Flags["aimbot_key"]) then Aimbot.Target = nil return end local MouseLocation = UserInputService:GetMouseLocation() Aimbot.Position = Flags["aimbot_position"] == "Screen" and Camera.ViewportSize / 2 or MouseLocation if Flags["aimbot_sticky_aim"] and not Aimbot.Target then Aimbot.Target = Aimbot:SelectTarget() end if not Flags["aimbot_sticky_aim"] then Aimbot.Target = Aimbot:SelectTarget() end if not Aimbot.Target then return end local SelectedTarget = Aimbot.Target if SelectedTarget then local Hitbox = SelectedTarget.Hitbox local Distance = (Hitbox.Position - (LocalRoot and LocalRoot.Position or Vector3.zero)).Magnitude if Hitbox then local PartVelocity = Utility:CalculateVelocity(Hitbox) local Velocity = Flags["aimbot_velocity"] and PartVelocity * (Flags["aimbot_pred"] and Stats.PerformanceStats.Ping:GetValue() / (Flags["aimbot_pred_amount"] * 10) or tonumber(Flags["aimbot_pred_box"])) or Vector3.zero local Position = Hitbox.Position + Velocity if Flags["aimbot_mouse"] then local ScreenPosition = WorldToViewportPoint(Camera, Position) mousemoverel( (ScreenPosition.x - MouseLocation.x) / Flags["aimbot_smoothing"], (ScreenPosition.y - MouseLocation.y) / Flags["aimbot_smoothing"] ) else local EndPoint = CFramenew(Camera.CFrame.p, Position) Camera.CFrame = Camera.CFrame:Lerp(EndPoint, (100 - Flags["aimbot_smoothing"]) / 100) end end end end -- -- Silent Aim function SilentAim:SelectTarget() SilentAim.Targets = {} local LocalRoot = Controller.RootPart for _,v in Utility:GetPlayers() do if v == LocalPlayer then continue end local PlayerTbl = Puppyware.Players[v.Name] local Status = PlayerTbl and PlayerTbl.Status or "None" if Flags["ignore_friends"] and Status and Status == "Friend" then continue end if Flags["priority_only"] and Status and Status ~= "Priority" then continue end local Character = Utility:GetCharacter(v) if not Character then continue end if tablefind(Flags["silent_checks"], "Force-Field") and typeof(Character) == "Instance" and FindFirstChildWhichIsA(Character, "ForceField") then continue end local Humanoid = Utility:GetHumanoid(Character) local Health = Utility:GetHealth(v, Humanoid) if tablefind(Flags["silent_checks"], "Health") and Health and Health <= 0 then continue end local Root = Utility:GetRootPart(Character, Humanoid) if not Root then continue end local Distance = ((LocalRoot and LocalRoot.Position or Camera.CFrame.p) - Root.Position).Magnitude if Flags["silent_limit_distance"] and Distance > Flags["silent_limit_distance_amount"] then continue end local Hitbox = Utility:GetBodyPart(Character, Flags["silent_hitbox"]) if not Hitbox then continue end local Position, OnScreen = WorldToViewportPoint(Camera, Hitbox.Position) if Flags["silent_use_fov"] and not OnScreen or not Position then continue end local SilentAimMagnitude = (Vector2.new(Position.x, Position.y) - SilentAim.Position).Magnitude if Flags["silent_use_fov"] and Flags["silent_fov_amount"] < SilentAimMagnitude then continue end table.insert(SilentAim.Targets, { Player = v, Hitbox = Hitbox, ScreenHitbox = Position, Magnitude = SilentAimMagnitude, Character = Character }) end tablesort(SilentAim.Targets, function(a, b) return a.Magnitude < b.Magnitude end) return SilentAim.Targets[1] end function SilentAim:Think(dt) SilentAim.Targets = {} if not (Flags["silent"] and Flags["silent_key"]) then SilentAim.Target = nil return end local MouseLocation = UserInputService:GetMouseLocation() SilentAim.Position = Flags["aimbot_position"] == "Screen" and Camera.ViewportSize / 2 or MouseLocation if Flags["silent_sticky_aim"] and not SilentAim.Target then SilentAim.Target = SilentAim:SelectTarget() end if not Flags["silent_sticky_aim"] then SilentAim.Target = SilentAim:SelectTarget() end if not SilentAim.Target then return end local SelectedTarget = SilentAim.Target if SelectedTarget then local Hitbox = SelectedTarget.Hitbox --local _, NewDesyncPos = Desync:GetPositions() local Origin = NewDesyncPos and NewDesyncPos.p or LocalRoot and LocalRoot.Position or Vector3.zero local Distance = (Hitbox.Position - Origin).Magnitude if Hitbox then local PredNum = Flags["silent_pred_table"] and Utility:GetPrediction(Stats.PerformanceStats.Ping:GetValue(), Distance) or Stats.PerformanceStats.Ping:GetValue() / (Flags["silent_pred_amount"] * 10) local PartVelocity = Utility:CalculateVelocity(Hitbox) local Velocity = Flags["silent_velocity"] and PartVelocity * (Flags["silent_pred"] and PredNum or tonumber(Flags["silent_pred_box"])) or Vector3.zero local Position = Hitbox.Position + Velocity if Flags["silent_air_prediction"] then local Humanoid = Utility:GetHumanoid(SelectedTarget.Player) if Humanoid then local Status = Humanoid:GetState() if Status == Enum.HumanoidStateType.Freefall then Position = SelectedTarget.Player.Character[Flags["silent_air_hitbox"]].Position + (Velocity * Vector3new(0, Flags["silent_jump_offset"], 0)) end end end SilentAim.Target = { Player = SelectedTarget.Player, Position = Position, Hitbox = Hitbox, Size = Hitbox.Size, Character = SelectedTarget.Character } end end end function SilentAim:AutoShoot() if not (Flags["silent_auto_shoot"] and SilentAim.Target) then return end local Character = Controller.Character if not Character then return end local Tool = FindFirstChildWhichIsA(Character, "Tool") if not Tool then return end Tool:Activate() end Utility:Connect(RunService.RenderStepped, function(dt) SilentAim:Think() SilentAim:AutoShoot() end, "Silent Aim Heartbeat") -- -- ESP local SkeletonLayout = { "Head", "Left Arm", "Right Arm", "Left Leg", "Right Leg" } local Huge = math.huge local extents = { Vector3new(1, 1, 1), Vector3new(1, 1, -1), Vector3new(1, -1, 1), Vector3new(1, -1, -1), Vector3new(-1, 1, 1), Vector3new(-1, 1, -1), Vector3new(-1, -1, 1), Vector3new(-1, -1, -1) } function ESP.GetBoundingBox(object) local cf, size = object:GetBoundingBox() local minX, minY, maxX, maxY = Huge, Huge, -Huge, -Huge local newsize = size * 0.5 for exindx = 1, 6 do local extent = extents[exindx] local corner = cf * (newsize * extent) local screenPoint, isOnScreen = WorldToViewportPoint(Camera, corner) if isOnScreen then minX = mathmin(minX, screenPoint.X) minY = mathmin(minY, screenPoint.Y) maxX = mathmax(maxX, screenPoint.X) maxY = mathmax(maxY, screenPoint.Y) end end local BoxPosition = Vector2new(minX, minY) local BoxSize = Vector2new(maxX - minX, maxY - minY) return BoxPosition, BoxSize end function ESP.GetRootBounding(root) local upVector = Camera.CFrame.UpVector local topPosition = root.Position + root.CFrame:VectorToWorldSpace(Vector3new(0, 1.8, 0)) + upVector local bottomPosition = root.Position + root.CFrame:VectorToWorldSpace(Vector3new(0, -2.5, 0)) - upVector local topViewport, _ = WorldToViewportPoint(Camera, topPosition) local bottomViewport, _ = WorldToViewportPoint(Camera, bottomPosition) local width = mathmax(mathabs(topViewport.X - bottomViewport.X), 3) local height = mathmax(mathabs(bottomViewport.Y - topViewport.Y), width / 2, 3) local boxSize = Vector2new(mathfloor(height / 1.5), mathfloor(height)) local boxPos = Vector2new( mathfloor((topViewport.X + bottomViewport.X) / 2 - boxSize.X / 2), mathfloor(math.min(topViewport.Y, bottomViewport.Y)) ) return boxPos, boxSize end function ESP.GetCase(text, casetype) casetype = casetype or Flags["esp_text_case"] if casetype == "UPPERCASE" then return text:upper() elseif casetype == "lowercase" then return text:lower() else return text end end function ESP.GetOverwritenColor(player) local PlayerTbl = Puppyware.Players[player.Name] local Status = PlayerTbl and PlayerTbl.Status or "None" local SilentTarget = SilentAim.Target local SilentPlayer = SilentTarget and SilentTarget.Player local AimbotTarget = Aimbot.Target local AimbotPlayer = AimbotTarget and AimbotTarget.Player return Flags["esp_highlight_targets"] and (AimbotPlayer and AimbotPlayer == player or SilentTarget and SilentTarget == player) and Flags["esp_highlight_targets_color"].c or Flags["esp_highlight_friends"] and Status == "Friend" and Flags["esp_highlight_friends_color"].c or Flags["esp_highlight_priority"] and Status == "Priority" and Flags["esp_highlight_priority_color"].c or nil end ESP.Holder = Utility:New("ScreenGui", { Name = "\0", Parent = CoreGui, DisplayOrder = -1, IgnoreGuiInset = true, }) function ESP:AddPlayer(player) if ESP.Players[player] then return end local PlayerTable = { Connects = {}, Drawings = {}, Health = 0, Offsets = {}, StaticOffsets = { Right = 0, Bottom = 0 }, Sides = { Right = Vector2zero, Bottom = Vector2zero }, } PlayerTable.Drawings = {} local Holder = Utility:New("ScreenGui", { Name = "\0", Parent = ESP.Holder, DisplayOrder = -1, IgnoreGuiInset = true, }) local Drawings = PlayerTable.Drawings local StaticOffsets = PlayerTable.StaticOffsets local Sides = PlayerTable.Sides local Offsets = PlayerTable.Offsets function PlayerTable:CreateDrawings() Drawings.Box = Utility:New("Frame", { Parent = Holder, Visible = false, BackgroundTransparency = 1, BorderSizePixel = 0, }) Drawings.BoxFill = Utility:New("Frame", { Parent = Drawings.Box, Visible = true, BackgroundTransparency = 1, Position = UDim2new(0, -1, 0, -1), Size = UDim2new(1, 2, 1, 2), BorderSizePixel = 0, }) Drawings.BoxOutline = Utility:New("UIStroke", { Parent = Drawings.Box, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, LineJoinMode = Enum.LineJoinMode.Miter, Thickness = 3, Color = Color3fromRGB() }) Drawings.BoxInline = Utility:New("UIStroke", { Parent = Drawings.BoxFill, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, LineJoinMode = Enum.LineJoinMode.Miter, Thickness = 1, }) Drawings.BoxGradient = Utility:New("UIGradient", { Enabled = false, Rotation = 270, Parent = Drawings.BoxInline }) Drawings.BoxFillGradient = Utility:New("UIGradient", { Enabled = false, Rotation = 270, Parent = Drawings.BoxFill }) Drawings.Name = Utility:New("TextLabel", { Parent = Holder, Visible = false, AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), Position = UDim2new(0, 0, 0, 0), TextYAlignment = Enum.TextYAlignment.Top, TextStrokeTransparency = 0, BackgroundTransparency = 1, ZIndex = 2, RichText = true, }) Drawings.HealthBarOutline = Utility:New("Frame", { Visible = false, BorderSizePixel = 0, Parent = Holder, }) Drawings.HealthBar = Utility:New("Frame", { Visible = true, BorderSizePixel = 0, Parent = Drawings.HealthBarOutline, }) Drawings.HealthBarGradient = Utility:New("UIGradient", { Enabled = false, Rotation = 270, Parent = Drawings.HealthBar }) Drawings.HealthNumber = Utility:New("TextLabel", { Parent = Holder, Visible = false, AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), Position = UDim2new(0, 0, 0, 0), TextYAlignment = Enum.TextYAlignment.Top, TextStrokeTransparency = 0, BackgroundTransparency = 1, ZIndex = 2, }) Drawings.ImageLabel = Utility:New("ImageLabel", { Parent = Holder, Visible = true, BackgroundTransparency = 1, BorderSizePixel = 0, ZIndex = 2, }) -- for _,v in SkeletonLayout do -- Drawings[v] = Utility:New("Frame", { -- Visible = false, -- BorderSizePixel = 0, -- Parent = Holder, -- ZIndex = 1, -- AnchorPoint = (Vector2.one * 0.5), -- }) -- end end function PlayerTable:ClearDrawings() Holder:Destroy() PlayerTable.Drawings = {} end function PlayerTable.CreateFlag(flag, text, colortbl, font, size, status, side, overwrite) local Position = Sides[side] local object = Drawings[flag] if not object then Drawings[flag] = Utility:New("TextLabel", { Parent = Holder, Visible = false, AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), Position = UDim2new(0, 0, 0, 0), TextYAlignment = Enum.TextYAlignment.Top, TextStrokeTransparency = 0, BackgroundTransparency = 1, ZIndex = 2, }) object = Drawings[flag] end local OffsetFlag = flag .. side if not Offsets[OffsetFlag] then Offsets[OffsetFlag] = 1 end local EndVal = status and 255 or 0 if Offsets[OffsetFlag] ~= EndVal then Offsets[OffsetFlag] = Utility:Lerp(Offsets[OffsetFlag], EndVal, 0.1) end if Offsets[OffsetFlag] == 0 then object.Visible = false return end object.Visible = true object.Text = text local LerpVal = Offsets[OffsetFlag] / 255 object.TextTransparency = 1 - (colortbl.a * LerpVal) object.TextColor3 = overwrite or colortbl.c object.FontFace = GetFontFromIndex(Fonts[font]) object.TextSize = size object.Position = side == "Right" and UDim2new(0, Position.x, 0, Position.y + StaticOffsets[side]) or UDim2new(0, Position.x - object.TextBounds.x / 2, 0, Position.y + StaticOffsets[side]) StaticOffsets[side] += (object.TextBounds.y + 2) * LerpVal end PlayerTable:CreateDrawings() tableinsert(PlayerTable.Connects, Utility:Connect(RunService.Heartbeat, function(DT) if Holder.Enabled then Holder.Enabled = false end local Team = Utility:GetTeam(player) local LocalTeam = Utility:GetTeam(LocalPlayer) local TeamFlag = "_enemy" if player == LocalPlayer then TeamFlag = "_local" end if not Flags["esp_players_enabled" .. TeamFlag] then return end local Character = Utility:GetCharacter(player) if not Character then PlayerTable.Health = 0 return end local Humanoid = Utility:GetHumanoid(Character) local Root = Utility:GetRootPart(Character, Humanoid) if not Root then PlayerTable.Health = 0 return end local Distance = ((Controller.Alive and Controller.RootPart.CFrame.p or Camera.CFrame.p) - Root.Position).Magnitude if Flags["esp_players_limit"] and Distance > Flags["esp_players_limit_amount"] then return end local Position, OnScreen = WorldToViewportPoint(Camera, Root.Position) if not (Position and OnScreen) then return end Holder.Enabled = true local Health, MaxHealth = Utility:GetHealth(player, Humanoid) if MaxHealth == math.huge then MaxHealth = 100 end if Health > MaxHealth then MaxHealth = Health -- ???? end Health = mathclamp(Health, 0, MaxHealth) if PlayerTable.Health ~= Health then PlayerTable.Health = Utility:Lerp(PlayerTable.Health, Health, Flags["esp_health_fade_speed"] / 1000) end local HealthScale = PlayerTable.Health / MaxHealth local AutoSizing = (Flags["esp_auto_sizing"] ~= "Simple" and IsA(Character, "Model")) local SizeFunction = AutoSizing and ESP.GetBoundingBox or ESP.GetRootBounding local BoxPosition, BoxSize = SizeFunction(AutoSizing and Character or Root) StaticOffsets = { Right = 0, Bottom = 0 } Sides = { Right = BoxPosition + Vector2new(BoxSize.x + 4, -4), Bottom = BoxPosition + Vector2new(BoxSize.x / 2, BoxSize.y + 4) } local OverwritenColor = ESP.GetOverwritenColor(player) local Box = Drawings.Box local BoxOutline = Drawings.BoxOutline local BoxInline = Drawings.BoxInline local BoxGradient = Drawings.BoxGradient local BoxStatus = Flags["esp_players_box" .. TeamFlag] Box.Visible = BoxStatus if BoxStatus then Box.Size = UDim2offset(BoxSize.X - 2, BoxSize.Y - 2) Box.Position = UDim2offset(BoxPosition.X + 1, BoxPosition.Y + 1) BoxOutline.Transparency = 1 - Flags["esp_players_box_outline" .. TeamFlag].a BoxOutline.Color = Flags["esp_players_box_outline" .. TeamFlag].c local BoxGradientStatus = Flags["esp_players_box_gradient" .. TeamFlag] BoxGradient.Enabled = BoxGradientStatus if BoxGradientStatus then BoxInline.Color = Color3fromRGB(255, 255, 255) BoxInline.Transparency = 0 local Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Flags["esp_players_box_gradient_from_color" .. TeamFlag].c), ColorSequenceKeypoint.new(1, Flags["esp_players_box_gradient_to_color" .. TeamFlag].c) }) local Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1 - Flags["esp_players_box_gradient_from_color" .. TeamFlag].a), NumberSequenceKeypoint.new(1, 1 - Flags["esp_players_box_gradient_to_color" .. TeamFlag].a), }) if Flags["esp_players_box_gradient_rainbow" .. TeamFlag] then local Time = tick() local HueStart = (Time / 5) % 1 local HueEnd = (HueStart + (Flags["esp_players_box_gradient_rainbow_speed" .. TeamFlag] / 100)) % 1 local ColorStart = Color3fromHSV(HueStart, 1, 1) local ColorEnd = Color3fromHSV(HueEnd, 1, 1) Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, ColorStart), ColorSequenceKeypoint.new(1, ColorEnd) }) end BoxGradient.Color = Color BoxGradient.Transparency = Transparency else BoxInline.Color = OverwritenColor or Flags["esp_players_box_color" .. TeamFlag].c BoxInline.Transparency = 1 - Flags["esp_players_box_color" .. TeamFlag].a end end local BoxFill = Drawings.BoxFill local BoxFillGradient = Drawings.BoxFillGradient local BoxFillStatus = Flags["esp_players_box_fill" .. TeamFlag] BoxFill.Visible = BoxFillStatus if BoxFillStatus then local BoxFillGradientStatus = Flags["esp_players_box_fill_gradient" .. TeamFlag] BoxFillGradient.Enabled = BoxFillGradientStatus if BoxFillGradientStatus then BoxFill.BackgroundColor3 = Color3fromRGB(255, 255, 255) BoxFill.BackgroundTransparency = 0 local Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Flags["esp_players_box_fill_gradient_from_color" .. TeamFlag].c), ColorSequenceKeypoint.new(1, Flags["esp_players_box_fill_gradient_to_color" .. TeamFlag].c) }) local Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1 - Flags["esp_players_box_fill_gradient_from_color" .. TeamFlag].a), NumberSequenceKeypoint.new(1, 1 - Flags["esp_players_box_fill_gradient_to_color" .. TeamFlag].a), }) if Flags["esp_players_box_fill_gradient_rainbow" .. TeamFlag] then local Time = tick() local HueStart = (Time / 5) % 1 local HueEnd = (HueStart + (Flags["esp_players_box_fill_gradient_rainbow_speed" .. TeamFlag] / 100)) % 1 local ColorStart = Color3fromHSV(HueStart, 1, 1) local ColorEnd = Color3fromHSV(HueEnd, 1, 1) Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, ColorStart), ColorSequenceKeypoint.new(1, ColorEnd) }) end BoxFillGradient.Color = Color BoxFillGradient.Transparency = Transparency else BoxFill.BackgroundColor3 = OverwritenColor or Flags["esp_players_box_fill_color" .. TeamFlag].c BoxFill.BackgroundTransparency = 1 - Flags["esp_players_box_fill_color" .. TeamFlag].a end end local ImageLabel = Drawings.ImageLabel local ImageId = TeamFlag == "_enemy" and ESP.EnemyImage or TeamFlag == "_team" and ESP.TeamImage or ESP.Image local FileType = TeamFlag == "_enemy" and ESP.EnemyFileType or TeamFlag == "_team" and ESP.TeamFileType or ESP.FileType local ImageStatus = Flags["esp_players_image" .. TeamFlag] and ImageId ImageLabel.Visible = ImageStatus and FileType if ImageStatus then ImageLabel.Size = UDim2offset(BoxSize.x, BoxSize.y) ImageLabel.Position = UDim2offset(BoxPosition.x, BoxPosition.y) if ImageLabel.Image ~= ImageId then ImageLabel.Image = ImageId end end local Name = Drawings.Name local NameStatus = Flags["esp_players_name" .. TeamFlag] Name.Visible = NameStatus if NameStatus then Name.Position = UDim2offset(BoxPosition.x + BoxSize.x / 2 - Name.TextBounds.x / 2, BoxPosition.y - Name.TextBounds.y - 4) Name.TextColor3 = OverwritenColor or Flags["esp_players_name_color" .. TeamFlag].c Name.TextTransparency = 1 - Flags["esp_players_name_color" .. TeamFlag].a Name.Text = ESP.GetCase(Utility:GetStyleName(player):sub(0, Flags["esp_players_name_max" .. TeamFlag]), Flags["esp_players_name_case" .. TeamFlag]) Name.FontFace = GetFontFromIndex(Fonts[Flags["esp_players_name_font" .. TeamFlag]]) Name.TextSize = Flags["esp_players_name_size" .. TeamFlag] end local FoundTool = Utility:GetToolName(player, Character) local ToolStatus = Flags["esp_players_tool" .. TeamFlag] and FoundTool PlayerTable.CreateFlag( "Tool", ESP.GetCase(FoundTool or "", Flags["esp_players_tool_case" .. TeamFlag]):sub(0, Flags["esp_players_tool_max" .. TeamFlag]), Flags["esp_players_tool_color" .. TeamFlag], Flags["esp_players_tool_font" .. TeamFlag], Flags["esp_players_tool_size" .. TeamFlag], ToolStatus, "Bottom", OverwritenColor ) local DistanceStatus = Flags["esp_players_distance" .. TeamFlag] PlayerTable.CreateFlag( "Distance", ESP.GetCase(tostring(mathfloor(Distance)) .. " ST", Flags["esp_players_distance_case" .. TeamFlag]), Flags["esp_players_distance_color" .. TeamFlag], Flags["esp_players_distance_font" .. TeamFlag], Flags["esp_players_distance_size" .. TeamFlag], DistanceStatus, "Bottom", OverwritenColor ) local HealthNumber = Drawings.HealthNumber local HealthBarOutline = Drawings.HealthBarOutline local HealthBar = Drawings.HealthBar local HealthBarGradient = Drawings.HealthBarGradient local HealthBarStatus = Flags["esp_players_health_bar" .. TeamFlag] local HealthBarSize = Flags["esp_players_health_bar_size" .. TeamFlag] + 2 HealthBarOutline.Visible = HealthBarStatus if HealthBarStatus then HealthBarOutline.Size = UDim2offset(HealthBarSize, BoxSize.y + 4) HealthBarOutline.Position = UDim2offset(BoxPosition.x - 4 - HealthBarSize, BoxPosition.y - 2) HealthBarOutline.BackgroundColor3 = Flags["esp_players_health_bar_outline" .. TeamFlag].c HealthBarOutline.BackgroundTransparency = 1 - Flags["esp_players_health_bar_outline" .. TeamFlag].a local HealthScaleSize = (HealthBarOutline.AbsoluteSize.y - 2) * HealthScale HealthBar.Size = UDim2new(1, -2, 0, HealthScaleSize) HealthBar.Position = UDim2new(0, 1, 1, -(HealthScaleSize + 1)) local HealthBarGradientStatus = Flags["esp_players_health_bar_gradient" .. TeamFlag] HealthBarGradient.Enabled = HealthBarGradientStatus if HealthBarGradientStatus then HealthBar.BackgroundColor3 = Color3fromRGB(255, 255, 255) HealthBar.BackgroundTransparency = 0 local Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Flags["esp_players_health_bar_gradient_from_color" .. TeamFlag].c), ColorSequenceKeypoint.new(1, Flags["esp_players_health_bar_gradient_to_color" .. TeamFlag].c) }) local Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1 - Flags["esp_players_health_bar_gradient_from_color" .. TeamFlag].a), NumberSequenceKeypoint.new(1, 1 - Flags["esp_players_health_bar_gradient_to_color" .. TeamFlag].a), }) if Flags["esp_players_health_bar_gradient_rainbow" .. TeamFlag] then local Time = tick() local HueStart = (Time / 5) % 1 local HueEnd = (HueStart + (Flags["esp_players_health_bar_gradient_rainbow_speed" .. TeamFlag] / 100)) % 1 local ColorStart = Color3fromHSV(HueStart, 1, 1) local ColorEnd = Color3fromHSV(HueEnd, 1, 1) Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, ColorStart), ColorSequenceKeypoint.new(1, ColorEnd) }) end HealthBarGradient.Color = Color HealthBarGradient.Transparency = Transparency else HealthBar.BackgroundColor3 = OverwritenColor or Flags["esp_players_health_bar_color" .. TeamFlag].c HealthBar.BackgroundTransparency = 1 - Flags["esp_players_health_bar_color" .. TeamFlag].a end end local HealthNumberStatus = Flags["esp_players_health_number" .. TeamFlag] and PlayerTable.Health <= MaxHealth - 10 HealthNumber.Visible = HealthNumberStatus if HealthNumberStatus then local HealthScaleSize = (HealthBarOutline.AbsoluteSize.y - 2) * HealthScale local FollowHealthBar = Flags["esp_players_health_number_follow" .. TeamFlag] local HealthPosition = UDim2offset(BoxPosition.x - (HealthBarStatus and not FollowHealthBar and HealthBarOutline.Size.X.Offset + 4 or 4) - HealthNumber.TextBounds.x, BoxPosition.y - 6) if FollowHealthBar and HealthBarStatus then HealthPosition = UDim2offset(BoxPosition.x - 4 - HealthBarSize / 2 - HealthNumber.TextBounds.x / 2, (BoxPosition.y + BoxSize.y) - HealthScaleSize - HealthNumber.TextBounds.y / 2) end HealthNumber.Position = HealthPosition HealthNumber.TextColor3 = OverwritenColor or Flags["esp_players_health_number_color" .. TeamFlag].c HealthNumber.TextTransparency = 1 - Flags["esp_players_health_number_color" .. TeamFlag].a HealthNumber.Text = tostring(mathfloor(PlayerTable.Health)) HealthNumber.FontFace = GetFontFromIndex(Fonts[Flags["esp_players_health_number_font" .. TeamFlag]]) HealthNumber.TextSize = Flags["esp_players_health_number_size" .. TeamFlag] end local ForceFieldStatus = Flags["esp_players_force" .. TeamFlag] and typeof(Character) == "Instance" and FindFirstChildWhichIsA(Character, "ForceField") PlayerTable.CreateFlag( "Force Field", ESP.GetCase("Force-Field", Flags["esp_players_force_case" .. TeamFlag]), Flags["esp_players_force_color" .. TeamFlag], Flags["esp_players_force_font" .. TeamFlag], Flags["esp_players_force_size" .. TeamFlag], ForceFieldStatus, "Right", OverwritenColor ) local TargetStatus = Flags["esp_players_target" .. TeamFlag] and (SilentAim.Target and SilentAim.Target.Player and SilentAim.Target.Player == player or Aimbot.Target and Aimbot.Target.Player and Aimbot.Target.Player == player) PlayerTable.CreateFlag( "Target", ESP.GetCase("Target", Flags["esp_players_target_case" .. TeamFlag]), Flags["esp_players_target_color" .. TeamFlag], Flags["esp_players_target_font" .. TeamFlag], Flags["esp_players_target_size" .. TeamFlag], TargetStatus, "Right", OverwritenColor ) -- local BonesStatus = Flags["esp_players_bones" .. TeamFlag] -- for _,v in SkeletonLayout do -- local Object = Drawings[v] -- if Object then -- Object.Visible = BonesStatus -- end -- end -- if BonesStatus then -- for _,v in SkeletonLayout do -- local Part = Utility:GetPart(Character, v) -- local Object = Drawings[v] -- if not Part then -- if Object then -- Object.Visible = false -- end -- continue -- end -- local BonePosition, BoneOnScreen = WorldToViewportPoint(Camera, Part.Position) -- if not (BonePosition and BoneOnScreen) then -- if Object then -- Object.Visible = false -- end -- continue -- end -- if not Object then -- continue -- end -- local From = Vector2new(Position.x, Position.y) -- local To = Vector2new(BonePosition.x, BonePosition.y) -- local Direction = (To - From) -- local Center = (To + From) / 2 -- local Distance = Direction.Magnitude -- local Theta = mathdeg(mathatan2(Direction.Y, Direction.X)) -- Object.Visible = true -- Object.Position = UDim2offset(Center.X, Center.Y) -- Object.Rotation = Theta -- Object.Size = UDim2offset(Distance, 1) -- Object.BackgroundColor3 = OverwritenColor or Flags["esp_players_bones_color" .. TeamFlag].c -- Object.BackgroundTransparency = 1 - Flags["esp_players_bones_color" .. TeamFlag].a -- end -- end end, "ESP Player Heartbeat")) ESP.Players[player] = PlayerTable end function ESP:RemovePlayer(player) if not ESP.Players[player] then return end local Player = ESP.Players[player] Player:ClearDrawings() for _,v in Player.Connects do v:Disconnect() end ESP.Players[player] = nil end Utility:Connect(Players.PlayerRemoving, function(player) ESP:RemovePlayer(player) end, "ESP Player Removing") Utility:Connect(RunService.Heartbeat, function() for _,v in Utility:GetPlayers() do if not ESP.Players[v] then ESP:AddPlayer(v) end end end, "ESP Extra Heartbeat") -- -- Visuals local Sky = FindFirstChildWhichIsA(Lighting, "Sky") if not Sky then Sky = Utility:New("Sky", { Parent = Lighting }) end function Visuals:UpdateWorldVisuals() -- Clock Time if Flags["world_clock_time"] then Lighting.ClockTime = Flags["world_clock_time_amount"] end -- -- Ambience Changer if Flags["world_ambience"] then Lighting.OutdoorAmbient = Flags["world_ambience_outside"].c Lighting.Ambient = Flags["world_ambience_inside"].c end -- -- Brightness Changer if Flags["world_brightness"] then Lighting.Brightness = Flags["world_brightness_amount"] / 100 end -- -- Fog Changer if Flags["world_fog"] then Lighting.FogColor = Flags["world_fog_color"].c Lighting.FogStart = Flags["world_fog_start"] Lighting.FogEnd = Flags["world_fog_end"] end -- -- Skybox Changer local SkyboxType = Flags["world_skybox_changer"] local Skyboxes = Visuals.Skyboxes local Sky = FindFirstChildWhichIsA(Lighting, "Sky") if Sky and Flags["world_stars_count"] then Sky.StarCount = Flags["world_stars_count_amount"] end if SkyboxType ~= "Off" and Skyboxes and Skyboxes[SkyboxType] then if Sky then for _,v in Skyboxes[SkyboxType] do if Sky[_] ~= v then Sky[_] = v end end else Utility:New("Sky", { Parent = Lighting }) end end -- end local Faces = {"Front", "Back", "Bottom", "Top", "Right", "Left"} local Cache = {} function Visuals:CreateTexture(part, id) local Objects = {} for _,v in Faces do Objects[v] = Utility:New("Texture", { ZIndex = 9e9, Name = "\0", Face = Enum.NormalId[v], Color3 = part.Color, Transparency = part.Transparency, Texture = id }) end return Objects end function Visuals:TextureChange() for _,v in workspace:GetDescendants() do if IsA(v, "BasePart") or IsA(v, "Part") or IsA(v, "MeshPart") then local PartMaterial = v.Material.Name local FoundId = Visuals.PartMaterials.Minecraft[PartMaterial] if FoundId then Cache[v] = PartMaterial Visuals:CreateTexture(v, FoundId) v.Material = "SmoothPlastic" end end end end function Visuals:LinePosition(index, position, size, gap) local FromVector2, ToVector2 = Vector2zero, Vector2zero if index == 1 then FromVector2 = Vector2new(position.x - size - gap, position.y - size - gap) ToVector2 = Vector2new(position.x - gap, position.y - gap) elseif index == 2 then FromVector2 = Vector2new(position.x - size - gap, position.y + size + gap) ToVector2 = Vector2new(position.x - gap, position.y + gap) elseif index == 3 then FromVector2 = Vector2new(position.x + size + gap, position.y + size + gap) ToVector2 = Vector2new(position.x + gap, position.y + gap) elseif index == 4 then FromVector2 = Vector2new(position.x + size + gap, position.y - size - gap) ToVector2 = Vector2new(position.x + gap, position.y - gap) end return FromVector2, ToVector2 end function Visuals:NewHitmarker(Cfg) Cfg = { Position = Cfg.Position or Vector3new(1, 1, 1), Time = Cfg.Time or 3, } local Hitmarker = { ["Objects"] = {}, ["StartTick"] = osclock(), } for i = 1, 4 do Hitmarker.Objects[#Hitmarker.Objects + 1] = Utility:New("Frame", { Visible = false, BorderSizePixel = 1, Parent = ESP.Holder, ZIndex = 1, AnchorPoint = (Vector2.one * 0.5), }) end local Objects = Hitmarker.Objects local Connection = Utility:Connect(RunService.Heartbeat, function() local Position, OnScreen = Camera:WorldToViewportPoint(Cfg.Position) local Vector2Position = Vector2new(Position.x, Position.y) local HitmarkerSize = Flags["hitmarker_size"] local HitmarkerGap = Flags["hitmarker_gap"] local HitmarkerColor = Flags["hitmarker_color"] local HitmarkerOutlineColor = Flags["hitmarker_outline"] for idx, Object in Objects do Object.Visible = Position and OnScreen if Object.Visible then local FromPosition, ToPosition = Visuals:LinePosition(idx, Position, HitmarkerSize, HitmarkerGap) Object.BackgroundColor3 = HitmarkerColor.c Object.BorderColor3 = HitmarkerOutlineColor.c Object.BackgroundTransparency = 1 - HitmarkerColor.a Utility:Line(Object, FromPosition, ToPosition) end end if osclock() - Hitmarker.StartTick > Cfg.Time then Hitmarker:Remove() table.remove(Visuals.Hits, _) end end) Hitmarker.Connection = Connection function Hitmarker:Remove() for _,v in next, Hitmarker.Objects do v:Destroy() end Hitmarker.Connection:Disconnect() end Visuals.Hits[#Visuals.Hits + 1] = Hitmarker end local FovAmount = 0 function Visuals:UpdateCameraVisuals() -- Third Person -- if Flags["camera_tp"] and Flags["camera_tp_key"] then -- Camera.CFrame *= CFramenew(Vector3new(Flags["camera_tp_x"], Flags["camera_tp_y"], Flags["camera_tp_z"])) -- end -- -- Camera FOV Changer if Flags["camera_fov_zoom"] and Flags["camera_fov_zoom_key"] or Flags["camera_fov"] then FovAmount = Utility:Lerp(FovAmount, Flags["camera_fov_zoom"] and Flags["camera_fov_zoom_key"] and Flags["camera_fov_zoom_amount"] or Flags["camera_fov_amount"]) Camera.FieldOfView = FovAmount end -- -- Aspect Ratio if Flags["camera_as"] then local X, Y, Z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = Camera.CFrame:GetComponents() Camera.CFrame = CFramenew(X, Y, Z, R00 * Library.Flags["camera_as_hor"] / 100, R01 * Library.Flags["camera_as_ver"] / 100, R02, R10, R11 * Library.Flags["camera_as_ver"] / 100, R12, R20 * Library.Flags["camera_as_hor"] / 100, R21 * Library.Flags["camera_as_ver"] / 100, R22) end -- -- Desync Offset Removed if not Flags["desync_hook"] then Desync:RemoveOffset() end -- end function Visuals:ApplyChams(part, material, color, transparency, reflectance) material = Visuals.Materials[material] local SpecialMesh = FindFirstChildWhichIsA(part, "SpecialMesh") if SpecialMesh then SpecialMesh.TextureId = "rbxassetid://0" SpecialMesh.VertexColor = Vector3.new(color.R, color.G, color.B) end local MeshPart = FindFirstChildWhichIsA(part, "MeshPart") if MeshPart then MeshPart.TextureId = "rbxassetid://0" MeshPart.VertexColor = Vector3.new(color.R, color.G, color.B) end if part.ClassName == "UnionOperation" then part.UsePartColor = true end local SurfaceAppearance = FindFirstChildWhichIsA(part, "SurfaceAppearance") if SurfaceAppearance then SurfaceAppearance:Destroy() end local Decal = FindFirstChildWhichIsA(part, "Decal") if Decal then Decal:Destroy() end if IsA(part, "MeshPart") then part.TextureID = "rbxassetid://0" end part.Color = color part.Material = material part.Transparency = transparency - 0.01 part.Reflectance = reflectance / 50 end Utility:Connect(Lighting.Changed, function() Visuals:UpdateWorldVisuals() end, "Lighting Changed") Utility:BindToRenderStep("Camera Visuals", Enum.RenderPriority.Camera.Value + 1, function(dt) Visuals:UpdateCameraVisuals() end) -- -- Misc local SpeedDirection = Vector3zero local StrafeAngle = -0.1 local CFramePart = Utility:New("Part", { CanCollide = false, Anchored = true, CFrame = CFramenew(-9e9, -9e9, -9e9), Parent = workspace, Material = Enum.Material.ForceField, Color = Color3fromRGB(0, 179, 255) }) local CFrameLine = Utility:New("Frame", { Visible = false, BorderSizePixel = 0, Parent = ESP.Holder, ZIndex = 1, AnchorPoint = (Vector2.one * 0.5), }) function Misc:MovementFeatures(dt) local Character = Controller.Character local Humanoid = Controller.Humanoid local Root = Controller.RootPart if not (Character and Root) then return end local OldCFrame, NewCFrame = Desync:GetPositions() local DesyncPositions = Desync.Positions local Looking = Camera.CFrame.lookVector if Flags["movement_speed_hack"] and Flags["movement_speed_hack_key"] then local Travel = Vector3zero if Flags["movement_circle_strafe"] and Flags["movement_circle_strafe_key"] then if SpeedDirection.x ~= SpeedDirection.x then SpeedDirection = Vector3new(Looking.x, 0, Looking.y) end Travel = SpeedDirection StrafeAngle = -0.1 if UserInputService:IsKeyDown(Enum.KeyCode.D) then StrafeAngle = 0.1 end if UserInputService:IsKeyDown(Enum.KeyCode.A) then StrafeAngle = -0.1 end local Vec = Vector2new(SpeedDirection.x, SpeedDirection.z) Vec = Utility:GetRotate(Vec, StrafeAngle) SpeedDirection = Vector3new(Vec.x, 0, Vec.y) else if UserInputService:IsKeyDown(Enum.KeyCode.W) then Travel += Vector3new(Looking.x, 0, Looking.Z) end if UserInputService:IsKeyDown(Enum.KeyCode.S) then Travel -= Vector3new(Looking.x, 0, Looking.Z) end if UserInputService:IsKeyDown(Enum.KeyCode.D) then Travel += Vector3new(-Looking.Z, 0, Looking.x) end if UserInputService:IsKeyDown(Enum.KeyCode.A) then Travel += Vector3new(Looking.Z, 0, -Looking.x) end --Travel = Travel.Unit --local Factor = _Speedhack.Bypass and mathclamp((0.2 + 0.8 * math.abs(mathsin(tick() * 2))) * Flags["movement_speed_hack_factor"], 25, 5^12) or Flags["movement_speed_hack_factor"] --local NewDirection = Vector3new(Travel.X, 0, Travel.Z) SpeedDirection = Vector3new(Travel.X, 0, Travel.Z).Unit StrafeAngle = -0.1 --[[if Travel.Unit.X == Travel.Unit.X then Root.Velocity = NewDirection end]]-- end Travel = SpeedDirection if Flags["movement_avoid_collisions"] then local OrigPosition = OldCFrame and OldCFrame.p or Root.CFrame.p if Flags["movement_circle_strafe"] and Flags["movement_circle_strafe_key"] then local Scale = Flags["movement_avoid_collisions_factor"] / 1000 local Result = Raycast(Workspace, OrigPosition, Travel * Flags["movement_speed_hack_factor"] * Scale, Utility.Blacklist) if Result then for i = -10, 10 do local Vec = Vector2new(Travel.x, Travel.z) Vec = Utility:GetRotate(Vec, StrafeAngle * i * -1) Vec = Vector3new(Vec.x, 0, Vec.y) Result = Raycast(Workspace, OrigPosition, Travel * Flags["movement_speed_hack_factor"] * Scale, Utility.Blacklist) if not Result then Travel = Vec end end end elseif Flags["movement_avoid_collisions_standalone"] then for _ = 1, 10 do local Result = Raycast(Workspace,OrigPosition, (Travel * Flags["movement_speed_hack_factor"] / 10) + Vector3new(0, Root.Velocity.y / 10, 0), Utility.Blacklist) local Normal = Result and Result.Normal or Vector3zero local Position = Result and Result.Position or OrigPosition if Result then local Dot = Normal.Unit:Dot((Root.CFrame.p - Position).Unit) if Dot > 0 then Travel += Normal.Unit * Dot Travel = Travel.Unit if Travel.x == Travel.x then StrafeAngle = Travel end end end end end end if Travel.x == Travel.x then if Flags["movement_speed_hack_type"] == "Velocity" then Root.Velocity = Vector3new(Travel.x * Flags["movement_speed_hack_factor"], Root.Velocity.y, Travel.z * Flags["movement_speed_hack_factor"]) else if OldCFrame then DesyncPositions.Old += Vector3new(Travel.x * Flags["movement_speed_hack_factor"] * dt, 0, Travel.z * Flags["movement_speed_hack_factor"] * dt) else Root.CFrame += Vector3new(Travel.x * Flags["movement_speed_hack_factor"] * dt, 0, Travel.z * Flags["movement_speed_hack_factor"] * dt) end end end end if Flags["movement_auto_jump"] and Flags["movement_auto_jump_key"] and Humanoid then Humanoid.Jump = true end if Flags["movement_fly_hack"] and Flags["movement_fly_hack_key"] then local Travel = Vector3zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then Travel += Looking end if UserInputService:IsKeyDown(Enum.KeyCode.S) then Travel -= Looking end if UserInputService:IsKeyDown(Enum.KeyCode.D) then Travel += Vector3new(-Looking.Z, 0, Looking.x) end if UserInputService:IsKeyDown(Enum.KeyCode.A) then Travel += Vector3new(Looking.Z, 0, -Looking.x) end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then Travel += Vector3new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then Travel -= Vector3new(0, 1, 0) end if Travel.Unit.X == Travel.Unit.X then if Flags["movement_fly_hack_type"] == "Velocity" then Root.Velocity = Travel.Unit * Flags["movement_fly_hack_factor"] Root.Anchored = false else Root.Velocity = Vector3zero if OldCFrame then DesyncPositions.Old += Travel.Unit * Flags["movement_fly_hack_factor"] * dt else Root.CFrame += Travel.Unit * Flags["movement_fly_hack_factor"] * dt end Root.Anchored = false end else Root.Velocity = Vector3zero Root.Anchored = true end else Root.Anchored = false end if Flags["velocity"] and Flags["velocity_key"] then if game.PlaceId == 5104202731 then local Car = Utility:GetPlayerCar(LocalPlayer) if Car then local Part = Car.Body.DownforceR local PartF = Car.Body.DownforceF local OldVelocity = Part.Velocity local OldVelocityF = PartF.Velocity Part.Velocity = Vector3new(Flags["velocity_factor"], 0, Flags["velocity_factor"]) PartF.Velocity = Vector3new(Flags["velocity_factor"], 0, Flags["velocity_factor"]) RunService.RenderStepped:Wait() Part.Velocity = OldVelocity PartF.Velocity = OldVelocityF end else local OldVelocity = Root.Velocity Root.Velocity = Vector3new(Flags["velocity_factor"], Flags["velocity_factor"], Flags["velocity_factor"]) RunService.RenderStepped:Wait() Root.Velocity = OldVelocity end end end function Misc:RandomMessages(message, items, min, max) message = message or "" if max > 0 then for i = 1, mathrandom(min, max) do local RandomMessage = items[mathrandom(1, #items)] message = message .. RandomMessage .. " " end end return message end function Misc:GetChatSpamMessage() local Message = "" local ChosenType = Flags["chat_spam_type"] local CustomDirectory = Library.Folder .. "/Chat-Spam.txt" local TypeTable = ChosenType == "Custom" and isfile(CustomDirectory) and readfile(CustomDirectory):split("\n") or Misc.ChatSpam[ChosenType] for i = 1, Flags["chat_spam_repeat"] and mathrandom(Flags["chat_spam_repeat_min"], Flags["chat_spam_repeat_max"]) or 1 do local RepeatedMessage = "" -- Emojis if Flags["chat_spam_emojis"] then RepeatedMessage = Misc:RandomMessages(RepeatedMessage, Misc.Emojis, Flags["chat_spam_emojis_min"], Flags["chat_spam_emojis_max"]) end -- -- Symbols if Flags["chat_spam_symbols"] then RepeatedMessage = Misc:RandomMessages(RepeatedMessage, Misc.Symbols, Flags["chat_spam_symbols_min"], Flags["chat_spam_symbols_max"]) end -- -- Message RepeatedMessage = Misc:RandomMessages(RepeatedMessage, TypeTable, 1, 1) -- -- Symbols if Flags["chat_spam_symbols"] then RepeatedMessage = Misc:RandomMessages(RepeatedMessage, Misc.Symbols, Flags["chat_spam_symbols_min"], Flags["chat_spam_symbols_max"]) end -- -- Emojis if Flags["chat_spam_emojis"] then RepeatedMessage = Misc:RandomMessages(RepeatedMessage, Misc.Emojis, Flags["chat_spam_emojis_min"], Flags["chat_spam_emojis_max"]) end -- Message = Message .. " " .. RepeatedMessage end return Message end function Misc:NoSlow() if not Flags["no_slow"] then return end local Character = Controller.Character if not Character then return end local BodyEffects = FindFirstChild(Character, "BodyEffects") if not BodyEffects then return end local Reload = FindFirstChild(BodyEffects, "Reload") if Reload then Reload.Value = false end local Movement = FindFirstChild(BodyEffects, "Movement") if Movement then local SlowDowns = FindFirstChild(Movement, "NoJumping") or FindFirstChild(Movement, "NoWalkSpeed") or FindFirstChild(Movement, "ReduceWalk") if SlowDowns then SlowDowns:Destroy() end end end -- Hit Detection function Misc:ClosestPlayerRange(position, maxradius) local Radius = maxradius local ClosestPlayer local HealthRemaining = 0 for plr, health in Misc.CurrentHealth do local Character = Utility:GetCharacter(plr) if not Character then continue end local Humanoid = Utility:GetHumanoid(Character) if not Humanoid then continue end local HumanoidRootPart = Utility:GetRootPart(Character, Humanoid) if not HumanoidRootPart then continue end local Distance = (position - HumanoidRootPart.Position).Magnitude local CurrentHealth = Utility:GetHealth(plr, Humanoid) if (Distance < Radius) and (CurrentHealth < health) then Radius = Distance ClosestPlayer = plr HealthRemaining = CurrentHealth end end return ClosestPlayer, HealthRemaining end function Misc:HitDetection() local Character = Controller.Character if not Character then return end local Ignored = FindFirstChild(workspace, "Ignored") if not Ignored then return end local Siren = FindFirstChild(Ignored, "Siren") if not Siren then return end local Radius = FindFirstChild(Siren, "Radius") if not Radius then return end local Tool = FindFirstChildWhichIsA(Character, "Tool") if not Tool then return end local CurrentGun = {} for _,v in Tool:GetChildren() do if v.Name:lower():find("ammo") and not v.Name:lower():find("max") then CurrentGun.Tool = Tool CurrentGun.IsGunEquipped = true CurrentGun.Ammo = v break end end if CurrentGun and CurrentGun.IsGunEquipped and CurrentGun.Tool then if CurrentGun.Tool ~= Misc.Gun.PreviousGun then Misc.Gun.PreviousGun = CurrentGun.Tool Misc.Gun.PreviousAmmo = 999 for _,v in Misc.GunConnections do v:Disconnect() end Misc.GunConnections = {} end if not Misc.GunConnections["GunAmmoChanged"] then Misc.GunConnections["GunAmmoChanged"] = Utility:Connect(CurrentGun.Ammo:GetPropertyChangedSignal("Value"), function() if CurrentGun.Ammo.Value == 0 and Flags["auto_reload"] then local Game = Games[PlaceId] or { Arg = "UpdateMousePosI", Remote = "MainEvent" } local MainEvent = FindFirstChild(ReplicatedStorage, Game.Remote) if MainEvent then MainEvent:FireServer("Reload", CurrentGun.Tool) end end local NewAmmo = CurrentGun.Ammo.Value if NewAmmo < Misc.Gun.PreviousAmmo then local ChildAdded local ChildrenAdded = 0 ChildAdded = Utility:Connect(Radius.ChildAdded, function(Object) if Object and Object.Name == "BULLET_RAYS" then ChildrenAdded += 1 if tablefind(Misc.Gun.Shotguns, CurrentGun.Tool.Name) and ChildrenAdded <= 5 or ChildrenAdded == 1 then local GunBeam = Object:WaitForChild("GunBeam") local StartPos, EndPos = Object.Position, GunBeam.Attachment1.WorldPosition if Flags["world_bullet_tracers"] then Utility:CreateBulletTracer(StartPos, EndPos, Flags["world_bullet_tracers_color"].c, 1 - Flags["world_bullet_tracers_color"].a, Flags["world_bullet_tracers_time"], Flags["world_bullet_tracers_type"]) end if Flags["world_hit_impact"] then local Impact = Utility:New("Part", { Anchored = true, CanCollide = false, Parent = workspace, Material = "Neon", Shape = Enum.PartType.Block, Transparency = 1 - Flags["world_hit_impact_color"].a, Color = Flags["world_hit_impact_color"].c, Size = Vector3new(Flags["world_hit_impact_size"], Flags["world_hit_impact_size"], Flags["world_hit_impact_size"]), CFrame = CFramenew(EndPos), }) Debris:AddItem(Impact, Flags["world_hit_impact_time"]) end local Player, HealthRemaining = Misc:ClosestPlayerRange(EndPos, 20) if Player then if Flags["hitsound"] then Utility:PlaySound(Misc.Hitsounds[Flags["hitsound_type"]], Flags["hitsound_volume"], Flags["hitsound_pitch"]) end if Flags["hitlogs"] then Library:Notify({ Text = ("Hit player: %s, Health Remaining: %s"):format(Player.Name, tostring(HealthRemaining):sub(1, 5)), Time = Flags["hitlogs_time"], }) end if Flags["world_hit_chams"] then Visuals:CopyPlayerCharacter(Player, Flags["world_hit_chams_time"], Flags["world_hit_chams_color"]) end if Flags["hitmarker"] then Visuals:NewHitmarker({ Position = EndPos, Time = Flags["hitmarker_time"] }) end end ChildAdded:Disconnect() end else ChildAdded:Disconnect() end end) end Misc.Gun.PreviousAmmo = NewAmmo end) end if not Misc.GunConnections["Activated"] then Misc.GunConnections["Activated"] = Utility:Connect(CurrentGun.Tool.Activated, function() if Flags["silent_remote"] then local Game = Games[PlaceId] or { Arg = "UpdateMousePosI", Remote = "MainEvent" } local MainEvent = FindFirstChild(ReplicatedStorage, Game.Remote) if MainEvent then local Target = SilentAim.Target if Target and Target.Position then SilentAimActive = true MainEvent:FireServer("UpdateMousePosI", Target.Position) end end end end) end end end -- local Highlight = Utility:New("Highlight", { Name = "\0", Enabled = true, DepthMode = Enum.HighlightDepthMode.AlwaysOnTop, FillColor = Color3fromRGB(0, 0, 0), OutlineColor = Color3fromRGB(255, 255, 255), OutlineTransparency = 0.5, FillTransparency = 0, Parent = workspace }) local Line = Utility:New("Frame", { BorderSizePixel = 0, Name = "\0", Parent = ESP.Holder, BorderSizePixel = 0, Visible = false, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(0, 0, 0, 0), AnchorPoint = Vector2.one * 0.5 }) local NetworkTick = osclock() local Networking = false Utility:Connect(RunService.Heartbeat, function(dt) Misc:MovementFeatures(dt) Misc:NoSlow() for _,v in Utility:GetPlayers() do if v == LocalPlayer then continue end local Character = Utility:GetCharacter(v) if not Character then continue end local Humanoid = Utility:GetHumanoid(Character) local Health = Utility:GetHealth(v, Humanoid) Misc.CurrentHealth[v] = Health end if Flags["network_desync"] and Controller.RootPart and sethiddenproperty then if osclock() - NetworkTick > Flags["network_desync_delay"] then NetworkTick = osclock() Networking = not Networking sethiddenproperty(Controller.RootPart, "NetworkIsSleeping", Networking) end end Misc:HitDetection() Aimbot:Think(dt) local TargetCharacter = Aimbot.Target and Aimbot.Target.Character or SilentAim.Target and SilentAim.Target.Character if Flags["world_highlight"] and TargetCharacter then Highlight.Enabled = true Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop Highlight.FillColor = Flags["world_highlight_fill_color"].c Highlight.OutlineColor = Flags["world_highlight_outline_color"].c Highlight.Adornee = TargetCharacter Highlight.OutlineTransparency = 1 - Flags["world_highlight_outline_color"].a Highlight.FillTransparency = 1 - Flags["world_highlight_fill_color"].a else Highlight.Enabled = false end local TargetHitbox = Aimbot.Target and Aimbot.Target.Hitbox or SilentAim.Target and SilentAim.Target.Hitbox if Flags["world_line"] and TargetHitbox then local MouseLocation = UserInputService:GetMouseLocation() local FromPosition = Vector2new(MouseLocation.x, MouseLocation.y) local ToPos, ToOnScreen = WorldToViewportPoint(Camera, TargetHitbox.Position) if ToPos and ToOnScreen then local MouseLocation = UserInputService:GetMouseLocation() local FromPosition = Vector2new(MouseLocation.x, MouseLocation.y) local ToPosition = Vector2new(ToPos.x, ToPos.y) local direction = (ToPosition - FromPosition) local center = (ToPosition + FromPosition) / 2 local distance = direction.Magnitude local theta = math.deg(math.atan2(direction.Y, direction.X)) Line.Position = UDim2new(0, center.X, 0, center.Y) Line.Rotation = theta Line.Size = UDim2new(0, distance, 0, 1) Line.BackgroundColor3 = Flags["world_line_color"].c Line.BackgroundTransparency = 1 - Flags["world_line_color"].a Line.Visible = true else Line.Visible = false end else Line.Visible = false end end, "Misc Heartbeat") taskspawn(function() if MainChannel then while taskwait(Flags["chat_spam_delay"]) do if Flags["chat_spam"] then MainChannel:SendAsync(Misc:GetChatSpamMessage()) end end end end) -- -- Desync function Desync:Active() return (Desync.NewStatus or Flags["desync"] and Flags["desync_key"]) and Controller.RootPart end function Desync:SetStatus(status) Desync.NewStatus = status end function Desync:GetPositions() local Positions = Desync.Positions local Status = Desync:Active() if not Status then return end return Positions.Old, Positions.New end function Desync:RemoveOffset() local Positions = Desync.Positions local Status = Desync:Active() if not (Status and Positions.Old and Positions.New) then return end Camera.CFrame = Camera.CFrame - Utility:CFrameToVector3(Positions.New - Utility:CFrameToVector3(Positions.Old)) end function Desync:GetLerpValue(pulse, min, max, speed) speed = speed or 1 local NormalizedSin = (mathsin(pulse * speed) + 1) / 2 return min + NormalizedSin * (max - min) end function Desync:GetValue(pos_type) local ClockPulse = osclock() local Mode = Flags["desync_mode_" .. pos_type] local Min = Flags["desync_min_" .. pos_type] local Max = Flags["desync_max_" .. pos_type] local Val = Flags["desync_val_" .. pos_type] return Flags["desync_" .. pos_type] == true and (Mode == "Static" and Val or Mode == "Lerp" and Desync:GetLerpValue(ClockPulse, Min, Max, Flags["desync_speed_" .. pos_type]) or Mode == "Random" and mathrandom(Min * 100, Max * 100) / 100) or not Flags["desync_" .. pos_type] and 0 end function Desync:OverwritePosition(position) Desync.Overwriten = position end function Desync:RemoveOverwrite() Desync.Overwriten = nil end function Desync:CloneCharacter() local Character = Controller.Character if not Character then return end Character.Archivable = true local ClonedCharacter = Character:Clone() ClonedCharacter.Archivable = true ClonedCharacter.Name = "\0" ClonedCharacter.Parent = workspace Character.Archivable = false local Humanoid = FindFirstChildWhichIsA(ClonedCharacter, "Humanoid") local HumanoidRootPart = Utility:GetRootPart(ClonedCharacter, Humanoid) for _,v in ClonedCharacter:GetChildren() do if IsA(v, "Part") or IsA(v, "MeshPart") or IsA(v, "BasePart") then if v.Transparency ~= 1 then local Color = Flags["desync_vis_color"] Visuals:ApplyChams(v, Flags["desync_vis_material"], Color.c, 1 - Color.a, 0) end v.CanCollide = false else v:Destroy() end end if Humanoid then Humanoid:Destroy() end if HumanoidRootPart then HumanoidRootPart.Anchored = true end Desync.ClonedCharacter = { Character = ClonedCharacter, RootPart = HumanoidRootPart } end function Desync:UpdateCharacter() local ClonedCharacter = Desync.ClonedCharacter if ClonedCharacter then local Character = ClonedCharacter.Character if Character then for _,v in Character:GetChildren() do if IsA(v, "Part") or IsA(v, "MeshPart") or IsA(v, "BasePart") then if v.Transparency ~= 1 then local Color = Flags["desync_vis_color"] Visuals:ApplyChams(v, Flags["desync_vis_material"], Color.c, 1 - Color.a, 0) end end end end end end function Desync:DestroyClonedCharacter() local ClonedCharacter = Desync.ClonedCharacter if ClonedCharacter and ClonedCharacter.Character then ClonedCharacter.Character:Destroy() Desync.ClonedCharacter = nil end end local Angle = 0 function Desync:Think() local Root = Controller.RootPart local Status = Desync:Active() local Positions = Desync.Positions local ClonedCharacter = Desync.ClonedCharacter if not Status then Positions.Old = nil Positions.New = nil if ClonedCharacter then Desync:DestroyClonedCharacter() end return end if not Flags["desync_vis"] and ClonedCharacter then Desync:DestroyClonedCharacter() end if Flags["desync_vis"] and not ClonedCharacter then Desync:CloneCharacter() end ClonedCharacter = Desync.ClonedCharacter Positions.Old = Root.CFrame local TargetHitbox = Aimbot.Target and Aimbot.Target.Hitbox or SilentAim.Target and SilentAim.Target.Hitbox local StrafeCFrame = nil if Flags["desync_strafe"] and TargetHitbox and not (TargetHitbox.CFrame.x > 5000 or TargetHitbox.CFrame.y > 5000 or TargetHitbox.CFrame.z > 5000 or TargetHitbox.CFrame.x < -5000 or TargetHitbox.CFrame.y < -5000 or TargetHitbox.CFrame.z < -5000) then Angle += Flags["desync_strafe_speed"] StrafeCFrame = TargetHitbox.CFrame * CFrameAngles(0, mathrad(Angle), 0) * CFramenew(0, 0, Flags["desync_strafe_distance"]) end if Desync.Overwriten then Root.CFrame = CFramenew(Desync.Overwriten) elseif StrafeCFrame then Root.CFrame = StrafeCFrame else local DesyncFactor = CFramenew(Vector3new( Desync:GetValue("x"), Desync:GetValue("y"), Desync:GetValue("z") )) DesyncFactor *= CFrameAngles( mathrad(Desync:GetValue("pitch")), mathrad(Desync:GetValue("yaw")), mathrad(Desync:GetValue("roll")) ) Root.CFrame *= DesyncFactor end Positions.New = Root.CFrame if ClonedCharacter then ClonedCharacter.RootPart.CFrame = Positions.New end RunService.RenderStepped:Wait() Root.CFrame = Positions.Old end Utility:Connect(RunService.Heartbeat, function() Desync:Think() end, "Desync Heartbeat") -- -- Hooks local OldIndex; OldIndex = hookmetamethod(game, "__index", newcclosure(function(self, prop) if not checkcaller() then if prop == "CFrame" then if Desync:Active() and Flags["desync_hook"] and self == Controller.RootPart then local OldPosition = Desync:GetPositions() if OldPosition then return OldPosition end end end end return OldIndex(self, prop) end)) local OldNameCall; OldNameCall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...) if self.Name == "MainEvent" then local Args = {...} if mathrandom(1, 100) <= Flags["silent_hitchance"] and Args[1] == "UpdateMousePosI" then local Target = SilentAim.Target if Target then local Position = Target.Position local Hitbox = Target.Hitbox Args[2] = Position; return OldNameCall(self, unpack(Args)) end end end return OldNameCall(self, ...) end)) local OldNewIndex; OldNewIndex = hookmetamethod(game, "__newindex", newcclosure(function(self, index, value) if self == Camera then if index == "CFrame" and Flags["camera_tp"] and Flags["camera_tp_key"] then value *= CFramenew(Vector3new(Flags["camera_tp_x"], Flags["camera_tp_y"], Flags["camera_tp_z"])) end end return OldNewIndex(self, index, value) end)) -- -- Toggles Window = Library:Window({ Name = "Puppyware - beta", Watermark = true, Keybinds = true, Size = Vector2new(558, 482) }) local CombatTab = Window:Tab({ Name = "Combat" }) local VisualsTab = Window:Tab({ Name = "Visuals" }) local MiscTab = Window:Tab({ Name = "Misc" }) local PlayersTab = Window:Tab({ Name = "Players" }) local SettingsTab = Window:Tab({ Name = "Settings" }) local Materials = {} for _,v in Visuals.Materials do Materials[#Materials + 1] = _ end local Skyboxes = {"Off"} for _,v in Visuals.Skyboxes do Skyboxes[#Skyboxes + 1] = _ end local ChatSpams = {"Custom"} for _,v in Misc.ChatSpam do ChatSpams[#ChatSpams + 1] = _ end local ESPFonts = {} for _,v in Fonts do ESPFonts[#ESPFonts + 1] = _ end local BulletTracers = {} for _,v in Visuals.BulletTracers do BulletTracers[#BulletTracers + 1] = _ end local Hitsounds = {} for _,v in Misc.Hitsounds do Hitsounds[#Hitsounds + 1] = _ end -- Combat local AimAssistSec = CombatTab:Section({Name = "Aim Assist"}) do local AimAssist = AimAssistSec:Toggle({Name = "Enabled", Flag = "aimbot"}) AimAssist:Keybind({Name = "Aim Assist", Flag = "aimbot_key"}) local FovSlider AimAssist:Toggle({Name = "Use Field Of View", Flag = "aimbot_use_fov", Callback = function(v) if FovSlider then FovSlider.SetVisibility(v) end end}) FovSlider = AimAssist:Slider({Name = "Field Of View Amount", Visible = false, Value = 60, Flag = "aimbot_fov_amount", Min = 0, Max = 360, Float = 1}) AimAssist:Toggle({Name = "Use Mouse", Flag = "aimbot_mouse"}) AimAssist:Toggle({Name = "Sticky Aim", Flag = "aimbot_sticky_aim"}) AimAssist:Slider({Name = "Smoothing", Suffix = "%", Value = 20, Flag = "aimbot_smoothing", Min = 0, Max = 100, Float = 1}) AimAssist:Toggle({Name = "Use Velocity", Flag = "aimbot_velocity"}) AimAssist:Textbox({Name = "Prediction", Value = "", Flag = "aimbot_pred_box"}) AimAssist:Toggle({Name = "Auto Prediction", Flag = "aimbot_pred"}) AimAssistSec:Slider({Name = "Auto Prediction Factor", Value = 100, Flag = "aimbot_pred_amount", Min = 0, Max = 200, Float = 1}) AimAssistSec:Dropdown({Name = "Position", Values = {"Mouse", "Screen"}, Value = "Mouse", Flag = "aimbot_position"}) AimAssistSec:Dropdown({Name = "Hitbox", Values = {"Head", "HumanoidRootPart", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftUpperLeg", "RightUpperLeg"}, Value = "Head", Flag = "aimbot_hitbox"}) AimAssistSec:Dropdown({Name = "Checks", Values = {"Force-Field", "Health"}, Value = {"Health"}, Flag = "aimbot_checks", Multi = true}) local LimitDistance AimAssistSec:Toggle({Name = "Limit Distance", Flag = "aimbot_limit_distance", Callback = function(v) if LimitDistance then LimitDistance.SetVisibility(v) end end}) LimitDistance = AimAssistSec:Slider({Name = "Limit Distance Amount", Visible = false, Flag = "aimbot_limit_distance_amount", Suffix = "st", Min = 0, Max = 2000, Float = 1, Value = 700}) end local SilentAimSec = CombatTab:Section({Name = "Silent Aim", Side = "Right"}) do local SilentAim = SilentAimSec:Toggle({Name = "Enabled", Flag = "silent"}) SilentAim:Keybind({Name = "Silent Aim", Flag = "silent_key"}) SilentAim:Toggle({Name = "Remote Type", Flag = "silent_remote"}) local FovSlider SilentAim:Toggle({Name = "Use Field Of View", Flag = "silent_use_fov", Callback = function(v) if FovSlider then FovSlider.SetVisibility(v) end end}) FovSlider = SilentAim:Slider({Name = "Field Of View Amount", Visible = false, Value = 60, Flag = "silent_fov_amount", Min = 0, Max = 360, Float = 1}) SilentAim:Slider({Name = "Hitchance", Suffix = "%", Value = 20, Flag = "silent_hitchance", Min = 0, Max = 100, Float = 1}) SilentAim:Toggle({Name = "Sticky Aim", Flag = "silent_sticky_aim"}) SilentAim:Toggle({Name = "Auto Shoot", Flag = "silent_auto_shoot"}) SilentAim:Toggle({Name = "Use Velocity", Flag = "silent_velocity"}) SilentAim:Textbox({Name = "Prediction", Value = "", Flag = "silent_pred_box"}) SilentAim:Toggle({Name = "Auto Prediction", Flag = "silent_pred"}) SilentAim:Toggle({Name = "Table Type", Flag = "silent_pred_table"}) SilentAim:Slider({Name = "Auto Prediction Factor", Value = 100, Flag = "silent_pred_amount", Min = 0, Max = 200, Float = 1}) SilentAim:Toggle({Name = "Use Air Prediction", Flag = "silent_air_prediction"}) SilentAim:Slider({Name = "Offset", Suffix = "st", Value = 0, Flag = "silent_jump_offset", Min = -1, Max = 1, Float = 0.01}) SilentAimSec:Dropdown({Name = "Air Hitbox", Values = {"Head", "HumanoidRootPart", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftUpperLeg", "RightUpperLeg"}, Value = "HumanoidRootPart", Flag = "silent_air_hitbox"}) SilentAimSec:Dropdown({Name = "Position", Values = {"Mouse", "Screen"}, Value = "Mouse", Flag = "silent_position"}) SilentAimSec:Dropdown({Name = "Hitbox", Values = {"Head", "HumanoidRootPart", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftUpperLeg", "RightUpperLeg"}, Value = "Head", Flag = "silent_hitbox"}) SilentAimSec:Dropdown({Name = "Checks", Values = {"Force-Field", "Health"}, Value = {"Health"}, Flag = "silent_checks", Multi = true}) local LimitDistance SilentAimSec:Toggle({Name = "Limit Distance", Flag = "silent_limit_distance", Callback = function(v) if LimitDistance then LimitDistance.SetVisibility(v) end end}) LimitDistance = SilentAimSec:Slider({Name = "Limit Distance Amount", Visible = false, Flag = "silent_limit_distance_amount", Suffix = "st", Min = 0, Max = 2000, Float = 1, Value = 700}) end -- -- Visuals local CameraSection = VisualsTab:Section({Name = "Camera", Side = "Left"}) do local FovAmount = nil CameraSection:Toggle({Name = "Field Of View", Flag = "camera_fov"}):Slider({Name = "FoV Amount", Suffix = "ยฐ", Value = Camera.FieldOfView, Min = 0, Max = 120, Float = 1, Flag = "camera_fov_amount"}) CameraSection:Toggle({Name = "Zoom", Flag = "camera_fov_zoom", Callback = function(v) if v and Flags["camera_fov_zoom_key"] then FovAmount = Camera.FieldOfView else if FovAmount then Camera.FieldOfView = FovAmount end end end}):Keybind({Name = "Zoom", Flag = "camera_fov_zoom_key", Callback = function(v) if v and Flags["camera_fov_zoom"] then FovAmount = Camera.FieldOfView else if FovAmount then Camera.FieldOfView = FovAmount end end end}) CameraSection:Slider({Name = "FoV Amount", Suffix = "ยฐ", Value = Camera.FieldOfView, Min = 0, Max = 120, Float = 1, Flag = "camera_fov_zoom_amount"}) local ThirdPerson = CameraSection:Toggle({Name = "Third Person", Flag = "camera_tp"}) ThirdPerson:Keybind({Name = "Third Person", Flag = "camera_tp_key"}) ThirdPerson:Slider({Name = "Third Person X", Suffix = "st", Value = 0, Min = -10, Max = 10, Float = 1, Flag = "camera_tp_x"}) ThirdPerson:Slider({Name = "Third Person Y", Suffix = "st", Value = 0, Min = -10, Max = 10, Float = 1, Flag = "camera_tp_y"}) ThirdPerson:Slider({Name = "Third Person Z", Suffix = "st", Value = 0, Min = -10, Max = 10, Float = 1, Flag = "camera_tp_z"}) local AspectRatio = CameraSection:Toggle({Name = "Aspect Ratio", Flag = "camera_as"}) AspectRatio:Slider({Name = "Aspect Ratio Horizontal", Suffix = "%", Value = 100, Min = 0, Max = 100, Float = 1, Flag = "camera_as_hor"}) AspectRatio:Slider({Name = "Aspect Ratio Vertical", Suffix = "%", Value = 100, Min = 0, Max = 100, Float = 1, Flag = "camera_as_ver"}) end local WorldSection = VisualsTab:Section({Name = "World", Side = "Right"}) do WorldSection:Toggle({Name = "Clock Time", Flag = "world_clock_time", Callback = function(v) if v and Flags["world_clock_time_amount"] then Lighting.ClockTime = Flags["world_clock_time_amount"] end end}):Slider({Name = "Time", Suffix = "hr", Value = Lighting.ClockTime, Min = 0, Max = 24, Float = 1, Flag = "world_clock_time_amount", Callback = function(v) if Flags["world_clock_time"] and v then Lighting.ClockTime = v end end}) local Ambience = WorldSection:Toggle({Name = "Ambience Changer", Flag = "world_ambience", Callback = function(v) if v and Flags["world_ambience_outside"] and Flags["world_ambience_inside"] then Lighting.OutdoorAmbient = Flags["world_ambience_outside"].c Lighting.Ambient = Flags["world_ambience_inside"].c end end}) Ambience:Colorpicker({Name = "Outside Ambient", Flag = "world_ambience_outside", Color = Lighting.OutdoorAmbient, Callback = function(v) if Flags["world_ambience"] and v and Flags["world_ambience_inside"] then Lighting.OutdoorAmbient = v.c Lighting.Ambient = Flags["world_ambience_inside"].c end end}) Ambience:Colorpicker({Name = "Inside Ambient", Flag = "world_ambience_inside", Color = Lighting.Ambient, Callback = function(v) if Flags["world_ambience"] and Flags["world_ambience_outside"] and v then Lighting.OutdoorAmbient = Flags["world_ambience_outside"].c Lighting.Ambient = v.c end end}) WorldSection:Toggle({Name = "Brightness", Flag = "world_brightness", Callback = function(v) if v and Flags["world_brightness_amount"] then Lighting.Brightness = Flags["world_brightness_amount"] / 100 end end}):Slider({Name = "Brightness Amount", Suffix = "lm", Value = Lighting.Brightness * 100, Min = 0, Max = 500, Float = 1, Flag = "world_brightness_amount", Callback = function(v) if Flags["world_brightness"] and v then Lighting.Brightness = v / 100 end end}) local FogChanger = WorldSection:Toggle({Name = "Fog Changer", Flag = "world_fog", Callback = function(v) if v and Flags["world_fog_color"] and Flags["world_fog_start"] and Flags["world_fog_end"] then Lighting.FogColor = Flags["world_fog_color"].c Lighting.FogStart = Flags["world_fog_start"] Lighting.FogEnd = Flags["world_fog_end"] end end}) FogChanger:Colorpicker({Name = "Fog Color", Flag = "world_fog_color", Color = Lighting.FogColor, Callback = function(v) if Flags["world_fog"] and v and Flags["world_fog_start"] and Flags["world_fog_end"] then Lighting.FogColor = v.c Lighting.FogStart = Flags["world_fog_start"] Lighting.FogEnd = Flags["world_fog_end"] end end}) WorldSection:Slider({Name = "Fog Start", Suffix = "st", Value = Lighting.FogStart, Min = 0, Max = 5000, Float = 1, Flag = "world_fog_start", Callback = function(v) if Flags["world_fog"] and Flags["world_fog_color"] and v and Flags["world_fog_end"] then Lighting.FogColor = Flags["world_fog_color"].c Lighting.FogStart = v Lighting.FogEnd = Flags["world_fog_end"] end end}) WorldSection:Slider({Name = "Fog End", Suffix = "st", Value = Lighting.FogEnd, Min = 0, Max = 5000, Float = 1, Flag = "world_fog_end", Callback = function(v) if Flags["world_fog"] and Flags["world_fog_color"] and Flags["world_fog_start"] and v then Lighting.FogColor = Flags["world_fog_color"].c Lighting.FogStart = Flags["world_fog_start"] Lighting.FogEnd = v end end}) if sethiddenproperty and gethiddenproperty then local TechnologyType = tostring(gethiddenproperty(Lighting, "Technology")):gsub("Enum.Technology.", "") WorldSection:Dropdown({Name = "Technology Type", Values = {"Legacy", "Voxel", "Compatibility", "ShadowMap", "Future"}, Value = TechnologyType, Flag = "world_tech_type", Callback = function(v) if v and sethiddenproperty then sethiddenproperty(Lighting, "Technology", Enum.Technology[v]) end end}) end WorldSection:Dropdown({Name = "Skybox Changer", Values = Skyboxes, Value = "Off", Flag = "world_skybox_changer", Callback = function() Visuals:UpdateWorldVisuals() end}) WorldSection:Toggle({Name = "Stars Count", Flag = "world_stars_count", Callback = function(v) Visuals:UpdateWorldVisuals() end}):Slider({Name = "Stars Count Amount", Value = Sky.StarCount, Min = 0, Max = 6000, Float = 1, Flag = "world_stars_count_amount", Callback = function(v) Visuals:UpdateWorldVisuals() end}) WorldSection:Toggle({Name = "Bullet Tracers", Flag = "world_bullet_tracers"}):Colorpicker({Name = "Bullet Tracers Color", Flag = "world_bullet_tracers_color", Color = Color3.fromRGB(255, 255, 255)}) WorldSection:Dropdown({Name = "Type", Values = BulletTracers, Value = BulletTracers[1], Flag = "world_bullet_tracers_type"}) WorldSection:Slider({Name = "Time", Suffix = "s", Value = 2, Min = 0, Max = 20, Float = 1, Flag = "world_bullet_tracers_time"}) WorldSection:Toggle({Name = "Hit Impact", Flag = "world_hit_impact"}):Colorpicker({Name = "Hit Impact Color", Flag = "world_hit_impact_color", Color = Color3.fromRGB(255, 255, 255)}) WorldSection:Slider({Name = "Time", Suffix = "s", Value = 2, Min = 0, Max = 20, Float = 1, Flag = "world_hit_impact_time"}) WorldSection:Slider({Name = "Size", Suffix = "st", Value = 1, Min = 0, Max = 5, Float = 0.01, Flag = "world_hit_impact_size"}) local HighlightTarget = WorldSection:Toggle({Name = "Highlight Target", Flag = "world_highlight"}) HighlightTarget:Colorpicker({Name = "Highlight Fill Color", Flag = "world_highlight_fill_color", Color = Color3.fromRGB(255, 255, 255)}) HighlightTarget:Colorpicker({Name = "Highlight Outline Color", Flag = "world_highlight_outline_color", Color = Color3.fromRGB(255, 255, 255)}) WorldSection:Toggle({Name = "Target Line", Flag = "world_line"}):Colorpicker({Name = "Target Line Color", Flag = "world_line_color", Color = Color3.fromRGB(255, 255, 255)}) WorldSection:Toggle({Name = "Hit Chams", Flag = "world_hit_chams"}):Colorpicker({Name = "Hit Chams Color", Flag = "world_hit_chams_color", Color = Color3.fromRGB(255, 255, 255)}) WorldSection:Slider({Name = "Time", Suffix = "s", Value = 2, Min = 0, Max = 20, Float = 1, Flag = "world_hit_chams_time"}) local Hitmarkers = WorldSection:Toggle({Name = "3D Hitmarkers", Flag = "hitmarker"}) Hitmarkers:Colorpicker({Name = "Hitmarkers Color", Flag = "hitmarker_color", Color = Color3.fromRGB(255, 255, 255)}) Hitmarkers:Colorpicker({Name = "Hitmarkers Color", Flag = "hitmarker_outline", Color = Color3.fromRGB(0, 0, 0)}) WorldSection:Slider({Name = "Time", Suffix = "s", Value = 2, Min = 0, Max = 20, Float = 1, Flag = "hitmarker_time"}) WorldSection:Slider({Name = "Size", Suffix = "px", Value = 2, Min = 0, Max = 50, Float = 1, Flag = "hitmarker_size"}) WorldSection:Slider({Name = "Gap", Suffix = "px", Value = 2, Min = 0, Max = 50, Float = 1, Flag = "hitmarker_gap"}) end -- -- Misc local Movement = MiscTab:Section({Name = "Movement"}) do local SpeedHack = Movement:Toggle({Name = "Speed Hack", Flag = "movement_speed_hack"}) SpeedHack:Keybind({Name = "Speed Hack", Flag = "movement_speed_hack_key"}) SpeedHack:Slider({Name = "Speed Hack Factor", Float = 1, Suffix = "st", Value = 60, Min = 0, Max = 300, Flag = "movement_speed_hack_factor"}) SpeedHack:Dropdown({Name = "Speed Hack Type", Values = {"Velocity", "CFrame"}, Value = "CFrame", Flag = "movement_speed_hack_type"}) local AutoJump = Movement:Toggle({Name = "Auto Jump", Flag = "movement_auto_jump"}) AutoJump:Keybind({Name = "Auto Jump", Flag = "movement_auto_jump_key"}) local FlyHack = Movement:Toggle({Name = "Fly Hack", Flag = "movement_fly_hack"}) FlyHack:Keybind({Name = "Fly Hack", Flag = "movement_fly_hack_key"}) FlyHack:Slider({Name = "Fly Hack Factor", Suffix = "st", Float = 1, Value = 60, Min = 0, Max = 300, Flag = "movement_fly_hack_factor"}) FlyHack:Dropdown({Name = "Fly Hack Type", Values = {"Velocity", "CFrame"}, Value = "CFrame", Flag = "movement_fly_hack_type"}) local CircleStrafe = Movement:Toggle({Name = "Circle Strafe", Flag = "movement_circle_strafe"}) CircleStrafe:Keybind({Name = "Circle Strafe", Flag = "movement_circle_strafe_key"}) local AvoidCollisions = Movement:Toggle({Name = "Avoid Collisions", Flag = "movement_avoid_collisions"}) AvoidCollisions:Toggle({Name = "Standalone", Flag = "movement_avoid_collisions_standalone"}) AvoidCollisions:Slider({Name = "Avoid Collisions Factor", Float = 1, Suffix = "st", Value = 100, Min = 0, Max = 300, Flag = "movement_avoid_collisions_factor"}) end local DesyncSec local ExtraSec local MiscSecTab = MiscTab:Section({Name = "Misc Tabs", Side = "Right", Size = UDim2new(1, 0, 0, 56)}) do MiscSecTab:Dropdown({Name = "Misc Tab", Values = {"Desynchronization", "Extra"}, Value = "Desynchronization", Flag = "selected_misc_tab", Close = true, Callback = function(v) if DesyncSec then DesyncSec.SetVisibility(v == "Desynchronization") end if ExtraSec then ExtraSec.SetVisibility(v == "Extra") end end}) end DesyncSec = MiscTab:Section({Name = "Desynchronization", Side = "Right", Size = UDim2new(1, 0, 1, -66)}) do local DesyncTog = DesyncSec:Toggle({Name = "Enabled", Flag = "desync"}) DesyncTog:Keybind({Name = "Desynchronization", Flag = "desync_key"}) DesyncSec:Toggle({Name = "Use Hook", Flag = "desync_hook"}) local TargetStrafeDistance = nil local TargetSrafe = DesyncSec:Toggle({Name = "Target Strafe", Flag = "desync_strafe", Callback = function(v) if TargetStrafeDistance then TargetStrafeDistance.SetVisibility(v) end end}) TargetStrafeDistance = TargetSrafe:Slider({Name = "Distance", Visible = false, Suffix = "st", Value = 8, Min = 0, Max = 20, Float = 1, Flag = "desync_strafe_distance"}) TargetStrafeDistance:Slider({Name = "Speed", Value = 5, Min = 0, Max = 30, Float = 1, Flag = "desync_strafe_speed"}) local DesyncXMode DesyncSec:Toggle({Name = "X Position", Flag = "desync_x", Callback = function(v) if DesyncXMode then DesyncXMode.SetVisibility(v) end end}) local DesyncXMin local DesyncXMax local DesyncXVal local DesyncXSpeed DesyncXMode = DesyncSec:Dropdown({Name = "X Mode", Visible = false, Values = { "Static", "Lerp", "Random" }, Value = "Static", Flag = "desync_mode_x", Callback = function(v) if DesyncXMin then DesyncXMin.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncXMax then DesyncXMax.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncXVal then DesyncXVal.SetVisibility(v == "Static") end if DesyncXSpeed then DesyncXSpeed.SetVisibility(v == "Lerp") end end}) DesyncXMin = DesyncXMode:Slider({Name = "Min", Visible = false, Suffix = "st", Value = 0, Min = -300, Max = 0, Float = 1, Flag = "desync_min_x"}) DesyncXMax = DesyncXMode:Slider({Name = "Max", Visible = false, Suffix = "st", Value = 0, Min = 0, Max = 300, Float = 1, Flag = "desync_max_x"}) DesyncXVal = DesyncXMode:Slider({Name = "Value", Suffix = "st", Value = 0, Min = -300, Max = 300, Float = 1, Flag = "desync_val_x"}) DesyncXSpeed = DesyncXMode:Slider({Name = "Lerp Speed", Value = 1, Min = 1, Max = 30, Float = 1, Flag = "desync_speed_x"}) local DesyncYMode DesyncSec:Toggle({Name = "Y Position", Flag = "desync_y", Callback = function(v) if DesyncYMode then DesyncYMode.SetVisibility(v) end end}) local DesyncYMin local DesyncYMax local DesyncYVal local DesyncYSpeed DesyncYMode = DesyncSec:Dropdown({Name = "Y Mode", Visible = false, Values = { "Static", "Lerp", "Random" }, Value = "Static", Flag = "desync_mode_y", Callback = function(v) if DesyncYMin then DesyncYMin.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncYMax then DesyncYMax.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncYVal then DesyncYVal.SetVisibility(v == "Static") end if DesyncYSpeed then DesyncYSpeed.SetVisibility(v == "Lerp") end end}) DesyncYMin = DesyncYMode:Slider({Name = "Min", Visible = false, Suffix = "st", Value = 0, Min = -300, Max = 0, Float = 1, Flag = "desync_min_y"}) DesyncYMax = DesyncYMode:Slider({Name = "Max", Visible = false, Suffix = "st", Value = 0, Min = 0, Max = 300, Float = 1, Flag = "desync_max_y"}) DesyncYVal = DesyncYMode:Slider({Name = "Value", Suffix = "st", Value = 0, Min = -300, Max = 300, Float = 1, Flag = "desync_val_y"}) DesyncYSpeed = DesyncYMode:Slider({Name = "Lerp Speed", Value = 1, Min = 1, Max = 30, Float = 1, Flag = "desync_speed_y"}) local DesyncZMode DesyncSec:Toggle({Name = "Z Position", Flag = "desync_z", Callback = function(v) if DesyncZMode then DesyncZMode.SetVisibility(v) end end}) local DesyncZMin local DesyncZMax local DesyncZVal local DesyncZSpeed DesyncZMode = DesyncSec:Dropdown({Name = "Z Mode", Visible = false, Values = { "Static", "Lerp", "Random" }, Value = "Static", Flag = "desync_mode_z", Callback = function(v) if DesyncZMin then DesyncZMin.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncZMax then DesyncZMax.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncZVal then DesyncZVal.SetVisibility(v == "Static") end if DesyncZSpeed then DesyncZSpeed.SetVisibility(v == "Lerp") end end}) DesyncZMin = DesyncZMode:Slider({Name = "Min", Visible = false, Suffix = "st", Value = 0, Min = -300, Max = 0, Float = 1, Flag = "desync_min_z"}) DesyncZMax = DesyncZMode:Slider({Name = "Max", Visible = false, Suffix = "st", Value = 0, Min = 0, Max = 300, Float = 1, Flag = "desync_max_z"}) DesyncZVal = DesyncZMode:Slider({Name = "Value", Suffix = "st", Value = 0, Min = -300, Max = 300, Float = 1, Flag = "desync_val_z"}) DesyncZSpeed = DesyncZMode:Slider({Name = "Lerp Speed", Value = 1, Min = 1, Max = 30, Float = 1, Flag = "desync_speed_z"}) local DesyncPitchMode DesyncSec:Toggle({Name = "Pitch Position", Flag = "desync_pitch", Callback = function(v) if DesyncPitchMode then DesyncPitchMode.SetVisibility(v) end end}) local DesyncPitchMin local DesyncPitchMax local DesyncPitchVal local DesyncPitchSpeed DesyncPitchMode = DesyncSec:Dropdown({Name = "Pitch Mode", Visible = false, Values = { "Static", "Lerp", "Random" }, Value = "Static", Flag = "desync_mode_pitch", Callback = function(v) if DesyncPitchMin then DesyncPitchMin.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncPitchMax then DesyncPitchMax.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncPitchVal then DesyncPitchVal.SetVisibility(v == "Static") end if DesyncPitchSpeed then DesyncPitchSpeed.SetVisibility(v == "Lerp") end end}) DesyncPitchMin = DesyncPitchMode:Slider({Name = "Min", Visible = false, Suffix = "ยฐ", Value = 0, Min = -360, Max = 0, Float = 1, Flag = "desync_min_pitch"}) DesyncPitchMax = DesyncPitchMode:Slider({Name = "Max", Visible = false, Suffix = "ยฐ", Value = 0, Min = 0, Max = 360, Float = 1, Flag = "desync_max_pitch"}) DesyncPitchVal = DesyncPitchMode:Slider({Name = "Value", Suffix = "ยฐ", Value = 0, Min = -360, Max = 360, Float = 1, Flag = "desync_val_pitch"}) DesyncPitchSpeed = DesyncPitchMode:Slider({Name = "Lerp Speed", Value = 1, Min = 1, Max = 30, Float = 1, Flag = "desync_speed_pitch"}) local DesyncYawMode DesyncSec:Toggle({Name = "Yaw Position", Flag = "desync_yaw", Callback = function(v) if DesyncYawMode then DesyncYawMode.SetVisibility(v) end end}) local DesyncYawMin local DesyncYawMax local DesyncYawVal local DesyncYawSpeed DesyncYawMode = DesyncSec:Dropdown({Name = "Yaw Mode", Visible = false, Values = { "Static", "Lerp", "Random" }, Value = "Static", Flag = "desync_mode_yaw", Callback = function(v) if DesyncYawMin then DesyncYawMin.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncYawMax then DesyncYawMax.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncYawVal then DesyncYawVal.SetVisibility(v == "Static") end if DesyncYawSpeed then DesyncYawSpeed.SetVisibility(v == "Lerp") end end}) DesyncYawMin = DesyncYawMode:Slider({Name = "Min", Visible = false, Suffix = "ยฐ", Value = 0, Min = -360, Max = 0, Float = 1, Flag = "desync_min_yaw"}) DesyncYawMax = DesyncYawMode:Slider({Name = "Max", Visible = false, Suffix = "ยฐ", Value = 0, Min = 0, Max = 360, Float = 1, Flag = "desync_max_yaw"}) DesyncYawVal = DesyncYawMode:Slider({Name = "Value", Suffix = "ยฐ", Value = 0, Min = -360, Max = 360, Float = 1, Flag = "desync_val_yaw"}) DesyncYawSpeed = DesyncYawMode:Slider({Name = "Lerp Speed", Value = 1, Min = 1, Max = 30, Float = 1, Flag = "desync_speed_yaw"}) local DesyncRollMode DesyncSec:Toggle({Name = "Roll Position", Flag = "desync_roll", Callback = function(v) if DesyncRollMode then DesyncRollMode.SetVisibility(v) end end}) local DesyncRollMin local DesyncRollMax local DesyncRollVal local DesyncRollSpeed DesyncRollMode = DesyncSec:Dropdown({Name = "Roll Mode", Visible = false, Values = { "Static", "Lerp", "Random" }, Value = "Static", Flag = "desync_mode_roll", Callback = function(v) if DesyncRollMin then DesyncRollMin.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncRollMax then DesyncRollMax.SetVisibility(v == "Lerp" or v == "Random" or false) end if DesyncRollVal then DesyncRollVal.SetVisibility(v == "Static") end if DesyncRollSpeed then DesyncRollSpeed.SetVisibility(v == "Lerp") end end}) DesyncRollMin = DesyncRollMode:Slider({Name = "Min", Visible = false, Suffix = "ยฐ", Value = 0, Min = -360, Max = 0, Float = 1, Flag = "desync_min_roll"}) DesyncRollMax = DesyncRollMode:Slider({Name = "Max", Visible = false, Suffix = "ยฐ", Value = 0, Min = 0, Max = 360, Float = 1, Flag = "desync_max_roll"}) DesyncRollVal = DesyncRollMode:Slider({Name = "Value", Suffix = "ยฐ", Value = 0, Min = -360, Max = 360, Float = 1, Flag = "desync_val_roll"}) DesyncRollSpeed = DesyncRollMode:Slider({Name = "Lerp Speed", Value = 1, Min = 1, Max = 30, Float = 1, Flag = "desync_speed_roll"}) DesyncSec:Toggle({Name = "Void", Flag = "desync_void", Callback = function(v) if v and Flags["desync_void_key"] then Desync:SetStatus(true) Desync:OverwritePosition(Vector3new(9e9, -9e9, 9e9)) else Desync:SetStatus(nil) Desync:RemoveOverwrite() end end}):Keybind({Name = "Void", Flag = "desync_void_key", Callback = function(v) if v and Flags["desync_void"] then Desync:SetStatus(true) Desync:OverwritePosition(Vector3new(9e9, -9e9, 9e9)) else Desync:SetStatus(nil) Desync:RemoveOverwrite() end end}) DesyncSec:Toggle({Name = "Visualize", Flag = "desync_vis"}):Colorpicker({Name = "Desync Color", Flag = "desync_vis_color", Callback = Desync.UpdateCharacter}) DesyncSec:Dropdown({Name = "Material", Values = Materials, Value = "ForceField", Flag = "desync_vis_material", Callback = Desync.UpdateCharacter}) end ExtraSec = MiscTab:Section({Name = "Extra", Visible = false, Side = "Right", Size = UDim2new(1, 0, 1, -66)}) do ExtraSec:Toggle({Name = "Ignore Friends", Flag = "ignore_friends"}) ExtraSec:Toggle({Name = "Target Priority Only", Flag = "priority_only"}) local VelocityFactor local VelocityTarget local Velocity = ExtraSec:Toggle({Name = "Velocity Spoofer", Flag = "velocity", Callback = function(v) if VelocityFactor then VelocityFactor.SetVisibility(v) end if VelocityTarget then VelocityTarget.SetVisibility(v) end end}) Velocity:Keybind({Name = "Velocity Spoofer", Flag = "velocity_key"}) VelocityFactor = Velocity:Slider({Name = "Spoof Factor", Visible = false, Suffix = "vel", Value = 0, Min = 0, Max = 99999, Float = 1, Flag = "velocity_factor"}) if sethiddenproperty then ExtraSec:Toggle({Name = "Network Desync", Flag = "network_desync"}) ExtraSec:Slider({Name = "Delay", Visible = false, Suffix = "s", Value = 1, Min = 0, Max = 10, Float = 0.01, Flag = "network_desync_delay"}) end if setfflag then local SenderRateAmount ExtraSec:Toggle({Name = "Physics Sender Rate", Flag = "physics_rate", Callback = function(v) if v and Flags["physics_rate_amount"] and Flags["physics_rate_key"] then setfflag("S2PhysicsSenderRate", tostring(Flags["physics_rate_amount"])) else setfflag("S2PhysicsSenderRate", "15") end if SenderRateAmount then SenderRateAmount.SetVisibility(v) end end}):Keybind({Name = "Sender Rate", Flag = "physics_rate_key", Callback = function(v) if v and Flags["physics_rate"] and Flags["physics_rate_amount"] then setfflag("S2PhysicsSenderRate", tostring(Flags["physics_rate_amount"])) else setfflag("S2PhysicsSenderRate", "15") end end}) SenderRateAmount = ExtraSec:Slider({Name = "Sender Rate Amount", Visible = false, Value = 3, Min = 0, Max = 15, Float = 1, Flag = "physics_rate_amount", Callback = function(v) if v and Flags["physics_rate"] and Flags["physics_rate_key"] then setfflag("S2PhysicsSenderRate", tostring(v)) else setfflag("S2PhysicsSenderRate", "15") end end}) end local Ignored = workspace:FindFirstChild("Ignored") if Ignored then local Shop = Ignored:FindFirstChild("Shop") if Shop then local Buying = false local Items = {} for _,v in next, Shop:GetChildren() do if not v:IsA("Model") then continue end local Name = v.Name:lower() if not (Name:find("phone") or Name:find("mask") or Name:find("weight")) then Items[v.Name] = v end end local ItemNames = {} for _,v in next, Items do ItemNames[#ItemNames + 1] = _ end ExtraSec:Dropdown({Name = "Item", Values = ItemNames, Value = ItemNames[1], Flag = "item_buy"}) ExtraSec:Button({Name = "Buy", Confirm = true, Callback = function() if Buying then Library:Notify({ Text = "Already buying item!" }) return end Buying = true local ItemType = Flags["item_buy"] local ItemModel = Items[ItemType] if not ItemModel then Buying = false return end local ClickDetector = ItemModel:FindFirstChildWhichIsA("ClickDetector") if not ClickDetector then Buying = false return end local ItemPart = ItemModel:FindFirstChildWhichIsA("Part") or ItemModel:FindFirstChildWhichIsA("MeshPart") or ItemModel:FindFirstChildWhichIsA("BasePart") if not ItemPart then Buying = false return end Desync:SetStatus(true) Desync:OverwritePosition(ItemPart.Position) taskwait(1) for i = 1, 10 do fireclickdetector(ClickDetector) taskwait() end taskwait(1) Desync:SetStatus() Desync:RemoveOverwrite() Buying = false end}) end end ExtraSec:Toggle({Name = "Hit Sound", Flag = "hitsound"}) ExtraSec:Dropdown({Name = "Type", Values = Hitsounds, Value = Hitsounds[1], Flag = "hitsound_type"}) ExtraSec:Slider({Name = "Volume", Value = 100, Min = 0, Max = 100, Float = 1, Flag = "hitsound_volume"}) ExtraSec:Slider({Name = "Pitch", Value = 100, Min = 0, Max = 200, Float = 1, Flag = "hitsound_pitch"}) ExtraSec:Toggle({Name = "Hit Logs", Flag = "hitlogs"}) ExtraSec:Slider({Name = "Time", Value = 3, Min = 0, Max = 10, Float = 1, Flag = "hitlogs_time"}) ExtraSec:Toggle({Name = "No Slow", Flag = "no_slow"}) ExtraSec:Toggle({Name = "Auto Reload", Flag = "auto_reload"}) end -- -- Players local DataIndex = { "None", "Friend", "Priority" } local DataIndexColors = { ["None"] = Color3fromRGB(255, 255, 255), ["Priority"] = Color3fromRGB(51, 255, 75), ["Friend"] = Color3fromRGB(0, 200, 255), ["Local"] = Color3fromRGB(0, 255, 157), } local MainSec = PlayersTab:Section({Name = "Main"}) -- local SelectedPlayer = nil local PlayersList = nil local PlayerNameLabel = nil local UserIdLabel = nil local AccountAgeLabel = nil local TeamLabel = nil local StatusLabel = nil local StatusDropdown = nil local function PlayerSelected(plr) SelectedPlayer = plr local PlayerTbl = Puppyware.Players[plr] local Player = PlayerTbl and PlayerTbl.Player local StatusType = plr == LocalPlayer.Name and "Local" or PlayerTbl and PlayerTbl.Status or "None" if PlayerNameLabel and Player then PlayerNameLabel.ChangeText(("Player Name - %s"):format(plr)) end if UserIdLabel and Player then UserIdLabel.ChangeText(("User ID - %s"):format(Player.UserId)) end if StatusLabel and StatusType then local StatusColor = DataIndexColors[StatusType] StatusLabel.ChangeText(('Status - %s'):format(mathfloor(StatusColor.r * 255), mathfloor(StatusColor.g * 255), mathfloor(StatusColor.b * 255), StatusType)) end if AccountAgeLabel and Player then AccountAgeLabel.ChangeText(("Account Age - %s days"):format(Player.AccountAge)) end if TeamLabel and Player then local Team = Utility:GetTeam(Player) local TeamColor = Team and Team.TeamColor and Team.TeamColor.Color or Color3fromRGB(255, 255, 255) local TeamName = Team and tostring(Team) or "None" TeamLabel.ChangeText(('Team - %s'):format(mathfloor(TeamColor.r * 255), mathfloor(TeamColor.g * 255), mathfloor(TeamColor.b * 255), TeamName)) end if StatusDropdown then StatusDropdown.Set(StatusType) end end local function SetStatus(status) if not SelectedPlayer then return end if SelectedPlayer == LocalPlayer.Name then return end local PlayerTbl = Puppyware.Players[SelectedPlayer] if not PlayerTbl then return end PlayerTbl.Status = status if StatusLabel and status then local StatusColor = DataIndexColors[status] StatusLabel.ChangeText(('Status - %s'):format(mathfloor(StatusColor.r * 255), mathfloor(StatusColor.g * 255), mathfloor(StatusColor.b * 255), status)) end end local StoredThumbnails = {} local SearchTextbox = MainSec:Textbox({Name = "Search", Value = "", Flag = "playerlist_search", Callback = function(v) if PlayersList then local Items = PlayersList.Items for name,itemtbl in Items do itemtbl.Holder.Visible = name:lower():find(v:lower()) end end end}) PlayersList = MainSec:List({Name = "Players", Values = {}, Value = "-", Flag = "playerlist_list", Size = 290, Callback = PlayerSelected}) local function RefreshPlayers() if not PlayersList then return end SearchTextbox.Set("") local PlayersTbl = {} for _,v in Players:GetPlayers() do local Thumbnail = StoredThumbnails[v.UserId] or Players:GetUserThumbnailAsync(v.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size48x48) StoredThumbnails[v.UserId] = Thumbnail PlayersTbl[#PlayersTbl + 1] = { Name = v.Name, ImageId = Thumbnail } if not Puppyware.Players[v.Name] then Puppyware.Players[v.Name] = { Status = "None", Player = v } end end PlayersList.Refresh(PlayersTbl) end MainSec:Button({Name = "Refresh", Callback = function() RefreshPlayers() end}) -- local InfoSec = PlayersTab:Section({Name = "Info", Side = "Right"}) -- PlayerNameLabel = InfoSec:Label({Name = "Player Name - "}) UserIdLabel = InfoSec:Label({Name = "User ID - "}) AccountAgeLabel = InfoSec:Label({Name = "Account Age - "}) TeamLabel = InfoSec:Label({Name = "Team - "}) StatusLabel = InfoSec:Label({Name = "Status - "}) StatusDropdown = InfoSec:Dropdown({Name = "Status", Values = DataIndex, Value = "None", Flag = "playerlist_status", Callback = SetStatus}) -- -- -- Settings local ConfigsSection = SettingsTab:Section({ Name = "Configurations" }) do local ConfigDropdown = ConfigsSection:List({Name = "Configs", Values = {}, Value = "-", Flag = "config_dropdown", Size = 190, Callback = function(v) if Library.ConfigFlags["config_name"] then Library.ConfigFlags["config_name"].Set(v) end end}) ConfigsSection:Textbox({Name = "Config Name", Value = "", Flag = "config_name"}) ConfigsSection:Button({Name = "Save Config", Confirm = true, Callback = function() local ConfigName = Library.Flags["config_name"] Library:Notify({ Text = ("Successfully %s config (%s)!"):format(isfile(`{Library.Folder}/Configs/{ConfigName}.txt`) and "saved" or "created", ConfigName) }) writefile(`{Library.Folder}/Configs/{ConfigName}.txt`, Library:GetConfig()) local _, FileNames = Utility.GetFiles("Configs", {".txt"}) ConfigDropdown.Refresh(FileNames) ConfigDropdown.Set(ConfigName) end}) ConfigsSection:Button({Name = "Load Config", Confirm = true, Callback = function() local ConfigName = Library.Flags["config_name"] if isfile(`{Library.Folder}/Configs/{ConfigName}.txt`) then Library:LoadConfig(readfile(`{Library.Folder}/Configs/{ConfigName}.txt`)) Library:Notify({ Text = ("Successfully loaded config (%s)!"):format(ConfigName) }) else Library:Notify({ Text = ("Couldn't find config (%s)!"):format(ConfigName) }) end local _, FileNames = Utility.GetFiles("Configs", {".txt"}) ConfigDropdown.Refresh(FileNames) end}) ConfigsSection:Button({Name = "Reset Config", Confirm = true, Callback = function() local ConfigName = Library.Flags["config_name"] if isfile(`{Library.Folder}/Configs/{ConfigName}.txt`) then writefile(`{Library.Folder}/Configs/{ConfigName}.txt`, "") Library:Notify({ Text = ("Successfully reseted config (%s)!"):format(ConfigName) }) else Library:Notify({ Text = ("Couldn't find config (%s)!"):format(ConfigName) }) end local Files, FileNames = Utility.GetFiles("Configs", {".txt"}) ConfigDropdown.Refresh(FileNames) end}) ConfigsSection:Button({Name = "Delete Config", Confirm = true, Callback = function() local ConfigName = Library.Flags["config_name"] if isfile(`{Library.Folder}/Configs/{ConfigName}.txt`) then delfile(`{Library.Folder}/Configs/{ConfigName}.txt`) Library:Notify({ Text = ("Successfully deleted config (%s)!"):format(ConfigName) }) else Library:Notify({ Text = ("Couldn't find config (%s)!"):format(ConfigName) }) end local _, FileNames = Utility.GetFiles("Configs", {".txt"}) ConfigDropdown.Refresh(FileNames) ConfigDropdown.Set(FileNames[1]) end}) ConfigsSection:Button({Name = "Refresh Config", Confirm = true, Callback = function() local _, FileNames = Utility.GetFiles("Configs", {".txt"}) ConfigDropdown.Refresh(FileNames) end}) local _, FileNames = Utility.GetFiles("Configs", {".txt"}) ConfigDropdown.Refresh(FileNames) end local ExtraSection = SettingsTab:Section({ Name = "Extra", Side = "Right" }) do local Watermark = Window.Watermark local KeybindList = Window.KeybindList ExtraSection:Keybind({ Name = "Menu Keybind", Flag = "menu_keybind", Key = Enum.KeyCode.RightShift, Ignore = true, Value = true, Callback = function(v) Library:Show(v) end }) ExtraSection:Button({Name = "Unload", Confirm = true, Callback = Utility.Unload}) ExtraSection:Button({Name = "Rejoin Game", Confirm = true, Callback = function() TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId) end}) ExtraSection:Button({Name = "Join New Game", Confirm = true, Callback = function() local Notification = Library:Notify({ Text = "Looking for a server...", Time = 9e9, Animation = "Bounce" }) while taskwait() do local Success, Servers = pcall(function() return HttpService:JSONDecode( game:HttpGet( ("https://games.roblox.com/v1/games/%s/servers/Public?sortOrder=Asc&limit=100"):format( game.PlaceId ) ) ) end) if not Success then Notification.Text = "Failed to get server list." Notification.Type = "Warning" Notification.ClockTime = osclock() + 5 break end end end}) ExtraSection:Button({Name = "Copy Join Script", Confirm = true, Callback = function() Library:Notify({ Text = "Successfully copied join script to clipboard!" }) setclipboard( stringformat( 'game:GetService("TeleportService"):TeleportToPlaceInstance(%s, "%s")', game.PlaceId, game.JobId ) ) end}) ExtraSection:Toggle({ Name = "Keybinds List", Status = true, Flag = "menu_keybinds_list", Callback = function(v) if KeybindList then KeybindList.SetVisibility(v) end end }) ExtraSection:Toggle({ Name = "Watermark", Status = true, Flag = "menu_watermark", Callback = function(v) if Watermark then Watermark.SetVisibility(v) end end }) ExtraSection:Textbox({Name = "Watermark Text", Value = Watermark.Text, Flag = "menu_watermark_text", Callback = function(v) if Watermark then Watermark.SetText(v) end end}) ExtraSection:Slider({ Name = "Watermark Tick Rate", Flag = "menu_watermark_tickrate", Min = 0, Max = 1000, Value = 200, Float = 1, Callback = function(v) if Watermark then Watermark.SetTickRate(v / 1000) end end }) ExtraSection:Slider({ Name = "Tween Speed", Flag = "menu_tween_speed", Min = 0, Max = 1000, Value = 100, Float = 1, Callback = function(v) Library.TweenSpeed = v / 1000 end }) ExtraSection:Slider({ Name = "Lerp Speed", Flag = "menu_lerp_speed", Min = 0, Max = 1000, Value = 100, Float = 1, Callback = function(v) Library.LerpSpeed = v / 1000 end }) local TweenStyles = {} for _,v in Enum.EasingStyle:GetEnumItems() do TweenStyles[#TweenStyles + 1] = tostring(v):gsub("Enum.EasingStyle.", "") end ExtraSection:Dropdown({Name = "Easing Style", Values = TweenStyles, Value = "Quad", Flag = "menu_easing_style", Callback = function(v) Library.TweenEasingStyle = Enum.EasingStyle[v] end}) local ThemeColorpickers = {} for _,v in Library.Theme do ThemeColorpickers[_] = ExtraSection:Colorpicker({Name = _, Flag = _ .. "_theme", Color = v, Callback = function(v) Library:ChangeTheme(_, v.c) end}) end ExtraSection:Button({Name = "Reset Theme", Confirm = true, Callback = function() for _,v in Library.OriginalTheme do Library:ChangeTheme(_, v) ThemeColorpickers[_].Set(v) end end}) end -- SettingsTab.Select(true) -- -- ESP Preview local ESPPreview = {} local WindowHolder = Window.OutlineHolder local ESPWindow = Library:Window({ Name = "ESP Interacts", Size = Vector2new(350, 380), Selects = false, Holder = Library.Popups, Position = UDim2new(0, WindowHolder.AbsolutePosition.x + WindowHolder.AbsoluteSize.x + 5, 0, WindowHolder.AbsolutePosition.y), Resizing = false, }) ESPWindow.OutlineHolder.Visible = false function ESPPreview:CreatePreview(tab, type, flag) local Page = tab.Page local MainFlag = "esp_" .. type .. "_" local Preview = { Items = {}, Selected = {} } local ESPHolder = Library:New("Frame", { Name = "ESPHolder", Parent = Page, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 1, 0), }) local ESPItemsOutline = Library:New("Frame", { Name = "ESPItemsOutline", Parent = ESPHolder, BackgroundTransparency = 0, BorderSizePixel = 0, Position = UDim2new(0, 0, 1, -38), Size = UDim2new(1, 0, 0, 38), }) Library:AddTheme(ESPItemsOutline, { BackgroundColor3 = "Outline", }) local ESPItemsBackground = Library:New("Frame", { Name = "ESPItemsBackground", Parent = ESPItemsOutline, BackgroundTransparency = 0, BorderSizePixel = 0, Position = UDim2new(0, 1, 0, 1), Size = UDim2new(1, -2, 1, -2), }) Library:AddTheme(ESPItemsBackground, { BackgroundColor3 = "Element Background", }) Library:New("UIPadding", { Parent = ESPItemsBackground, PaddingBottom = UDimnew(0, 5), PaddingLeft = UDimnew(0, 5), PaddingRight = UDimnew(0, 5), PaddingTop = UDimnew(0, 5), }) local ESPItemsOne = Library:New("Frame", { Name = "ESPItemsOne", Parent = ESPItemsBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Size = UDim2new(1, 0, 0, 13), }) Library:New("UIListLayout", { Parent = ESPItemsOne, FillDirection = Enum.FillDirection.Horizontal, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 5), }) local ESPItemsSecond = Library:New("Frame", { Name = "ESPItemsSecond", Parent = ESPItemsBackground, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 15), Size = UDim2new(1, 0, 0, 13), }) Library:New("UIListLayout", { Parent = ESPItemsSecond, FillDirection = Enum.FillDirection.Horizontal, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 5), }) local BoxSize = Vector2new(131, 169) local BoxPosition = Vector2new(0, 0) local BoxHolder = Utility:New("Frame", { Parent = ESPHolder, BackgroundTransparency = 1, Size = UDim2offset(BoxSize.x, BoxSize.y), Position = UDim2new(0.5, -(BoxSize.x / 2), 0.5, -((BoxSize.y / 2) + (53 / 2))), BorderSizePixel = 0, }) local SetFlag = MainFlag .. "selected" .. flag function Preview.Set(item) if typeof(item) == "table" then for _,v in item do if not tablefind(Preview.Selected, v) then Preview.Set(v) end end else local Index = tablefind(Preview.Selected, item) local Item = Preview.Items[item] if Item then if Index then Item.Set(false) tableremove(Preview.Selected, Index) Library.Flags[SetFlag] = Preview.Selected else Item.Set(true) tableinsert(Preview.Selected, item) Library.Flags[SetFlag] = Preview.Selected end end end end local OldOpenedPopUp = nil function Preview.CreateItem(name, callback, holder, popup) callback = callback or function() end holder = holder or ESPItemsOne popup = popup == nil and true or popup local Item = { Selected = false } local ItemText = Library:New("TextButton", { BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.X, Size = UDim2new(0, 0, 0, 13), FontFace = Library.Font, Text = name, TextSize = Library.FontSize, Parent = holder, TextStrokeTransparency = 0, RichText = true, TextXAlignment = Enum.TextXAlignment.Left, }) Item.Text = ItemText Item.Name = name Library:AddTheme(ItemText, { TextColor3 = "Text", }) local PopUpSection = nil if popup then PopUpSection = Utility:New("Frame", { Parent = Library.Popups, BackgroundTransparency = 0.5, Active = true, Draggable = true, Visible = false, Size = UDim2new(0, 250, 0, 150), Position = UDim2new(0, 0, 0, 0), BorderSizePixel = 0, }) Item.PopUp = PopUpSection end function Item.Set(status) Item.Selected = status Library:ChangeObjectTheme(ItemText, { TextColor3 = Item.Selected and "Accent" or "Text" }, true) callback(status) end Utility:Connect(ItemText.MouseButton1Down, function() Preview.Set(name) end) if popup then Utility:Connect(ItemText.MouseButton2Down, function() PopUpSection.Visible = not PopUpSection.Visible local AbsolutePosition = ItemText.AbsolutePosition local AbsoluteSize = ItemText.AbsoluteSize PopUpSection.Position = UDim2new(0, AbsolutePosition.x, 0, AbsolutePosition.y + AbsoluteSize.y + 5) if OldOpenedPopUp then OldOpenedPopUp.Visible = false end if PopUpSection.Visible then OldOpenedPopUp = PopUpSection else OldOpenedPopUp = nil end end) end Preview.Items[name] = Item return Item end function Preview.CreateSeperator(holder) local SeperatorHolder = Library:New("Frame", { BackgroundTransparency = 1, Size = UDim2new(0, 1, 1, 0), Parent = holder, BorderSizePixel = 0, }) local SeperatorAccent = Library:New("Frame", { Position = UDim2new(0, 0, 0, 3), Size = UDim2new(0, 1, 1, -6), Parent = SeperatorHolder, BorderSizePixel = 0, }) Library:AddTheme(SeperatorAccent, { BackgroundColor3 = "Accent", }) end Library.ConfigFlags[SetFlag] = Preview -- On Preview.CreateItem("On", function(v) Library.Flags[MainFlag .. "enabled" .. flag] = v end, ESPItemsOne, false) Preview.CreateSeperator(ESPItemsOne) -- -- Box local BoxItem = Preview.CreateItem("Box", function(v) Library.Flags[MainFlag .. "box" .. flag] = v end) local BoxSection = Library.Section({Left = BoxItem.PopUp}, {Name = "Box Settings"}) BoxSection:Colorpicker({Name = "Box Color", Flag = MainFlag .. "box_color" .. flag}) BoxSection:Colorpicker({Name = "Box Outline Color", Flag = MainFlag .. "box_outline" .. flag, Color = Color3fromRGB(0, 0, 0), Transparency = 0.5}) local BoxGradientTog = BoxSection:Toggle({Name = "Box Gradient", Flag = MainFlag .. "box_gradient" .. flag}) BoxGradientTog:Colorpicker({Name = "Box Gradient Color", Flag = MainFlag .. "box_gradient_from_color" .. flag, Color = Color3fromRGB(0, 255, 0)}) BoxGradientTog:Colorpicker({Name = "To Gradient Color", Flag = MainFlag .. "box_gradient_to_color" .. flag, Color = Color3fromRGB(255, 0, 0)}) BoxSection:Toggle({Name = "Gradient Rainbow", Flag = MainFlag .. "box_gradient_rainbow" .. flag}) BoxSection:Slider({Name = "Rainbow Speed", Flag = MainFlag .. "box_gradient_rainbow_speed" .. flag, Min = 0, Max = 100, Float = 1, Value = 50}) Preview.CreateSeperator(ESPItemsOne) -- -- Box Fill local BoxFillItem = Preview.CreateItem("Box Fill", function(v) Library.Flags[MainFlag .. "box_fill" .. flag] = v end) local BoxFillSection = Library.Section({Left = BoxFillItem.PopUp}, {Name = "Box Fill Settings"}) BoxFillSection:Colorpicker({Name = "Box Fill Color", Flag = MainFlag .. "box_fill_color" .. flag, Transparency = 0}) local BoxFillGradientTog = BoxFillSection:Toggle({Name = "Box Fill Gradient", Flag = MainFlag .. "box_fill_gradient" .. flag}) BoxFillGradientTog:Colorpicker({Name = "Fill Gradient Color", Flag = MainFlag .. "box_fill_gradient_from_color" .. flag, Color = Color3fromRGB(0, 255, 0)}) BoxFillGradientTog:Colorpicker({Name = "To Gradient Color", Flag = MainFlag .. "box_fill_gradient_to_color" .. flag, Color = Color3fromRGB(255, 0, 0)}) BoxFillSection:Toggle({Name = "Gradient Rainbow", Flag = MainFlag .. "box_fill_gradient_rainbow" .. flag}) BoxFillSection:Slider({Name = "Rainbow Speed", Flag = MainFlag .. "box_fill_gradient_rainbow_speed" .. flag, Min = 0, Max = 100, Float = 1, Value = 50}) Preview.CreateSeperator(ESPItemsOne) -- -- Name local NameItem = Preview.CreateItem("Name", function(v) Library.Flags[MainFlag .. "name" .. flag] = v end) NameItem.PopUp.Size = UDim2new(0, 250, 0, 180) local NameSection = Library.Section({Left = NameItem.PopUp}, {Name = "Name Settings"}) NameSection:Colorpicker({Name = "Name Color", Flag = MainFlag .. "name_color" .. flag}) Library.Dropdown({Holder = NameSection.Holder, ContentHolder = Library.Popups}, {Name = "Name Font", Values = ESPFonts, Value = "Minecraftia", Flag = MainFlag .. "name_font" .. flag}) NameSection:Slider({Name = "Name Size", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "name_size" .. flag}) Library.Dropdown({Holder = NameSection.Holder, ContentHolder = Library.Popups}, {Name = "Text Case", Values = {"Normal", "UPPERCASE", "lowercase"}, Value = "Normal", Flag = MainFlag .. "name_case" .. flag}) NameSection:Slider({Name = "Max Name Length", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "name_max" .. flag}) Preview.CreateSeperator(ESPItemsOne) -- -- Distance local DistanceItem = Preview.CreateItem("Distance", function(v) Library.Flags[MainFlag .. "distance" .. flag] = v end) local DistanceSection = Library.Section({Left = DistanceItem.PopUp}, {Name = "Distance Settings"}) DistanceSection:Colorpicker({Name = "Distance Color", Flag = MainFlag .. "distance_color" .. flag}) Library.Dropdown({Holder = DistanceSection.Holder, ContentHolder = Library.Popups}, {Name = "Distance Font", Values = ESPFonts, Value = "Minecraftia", Flag = MainFlag .. "distance_font" .. flag}) DistanceSection:Slider({Name = "Distance Size", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "distance_size" .. flag}) Library.Dropdown({Holder = DistanceSection.Holder, ContentHolder = Library.Popups}, {Name = "Distance Case", Values = {"Normal", "UPPERCASE", "lowercase"}, Value = "Normal", Flag = MainFlag .. "distance_case" .. flag}) Preview.CreateSeperator(ESPItemsOne) -- -- Health Bar local HealthBarItem = Preview.CreateItem("Health Bar", function(v) Library.Flags[MainFlag .. "health_bar" .. flag] = v end) HealthBarItem.PopUp.Size = UDim2new(0, 250, 0, 154) local HealthBarSection = Library.Section({Left = HealthBarItem.PopUp}, {Name = "Health Bar Settings"}) HealthBarSection:Colorpicker({Name = "Health Bar Color", Flag = MainFlag .. "health_bar_color" .. flag, Color = Color3fromRGB(0, 255, 0)}) HealthBarSection:Colorpicker({Name = "Health Bar Outline Color", Flag = MainFlag .. "health_bar_outline" .. flag, Color = Color3fromRGB(0, 0, 0), Transparency = 0.5}) HealthBarSection:Slider({Name = "Health Bar Size", Flag = MainFlag .. "health_bar_size" .. flag, Suffix = "px", Min = 1, Max = 50, Float = 1, Value = 2}) local HealthBarGradientTog = HealthBarSection:Toggle({Name = "Health Bar Gradient", Flag = MainFlag .. "health_bar_gradient" .. flag}) HealthBarGradientTog:Colorpicker({Name = "From Gradient Color", Flag = MainFlag .. "health_bar_gradient_from_color" .. flag, Color = Color3fromRGB(0, 255, 0)}) HealthBarGradientTog:Colorpicker({Name = "To Gradient Color", Flag = MainFlag .. "health_bar_gradient_to_color" .. flag, Color = Color3fromRGB(255, 0, 0)}) HealthBarSection:Toggle({Name = "Gradient Rainbow", Flag = MainFlag .. "health_bar_gradient_rainbow" .. flag}) HealthBarSection:Slider({Name = "Rainbow Speed", Flag = MainFlag .. "health_bar_gradient_rainbow_speed" .. flag, Min = 0, Max = 100, Float = 1, Value = 50}) -- -- Health Number local HealthNumberItem = Preview.CreateItem("Health Number", function(v) Library.Flags[MainFlag .. "health_number" .. flag] = v end, ESPItemsSecond) local HealthNumberSection = Library.Section({Left = HealthNumberItem.PopUp}, {Name = "Health Number Settings"}) HealthNumberSection:Colorpicker({Name = "Health Number Color", Flag = MainFlag .. "health_number_color" .. flag}) HealthNumberSection:Toggle({Name = "Follow Health Bar", Flag = MainFlag .. "health_number_follow" .. flag}) Library.Dropdown({Holder = HealthNumberSection.Holder, ContentHolder = Library.Popups}, {Name = "Health Number Font", Values = ESPFonts, Value = "Minecraftia", Flag = MainFlag .. "health_number_font" .. flag}) HealthNumberSection:Slider({Name = "Health Number Size", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "health_number_size" .. flag}) Preview.CreateSeperator(ESPItemsSecond) -- -- Image local ImageItem = Preview.CreateItem("Image", function(v) Library.Flags[MainFlag .. "image" .. flag] = v end, ESPItemsSecond) local ImageSection = Library.Section({Left = ImageItem.PopUp}, {Name = "Image Settings"}) local ImageDirectory = `{Library.Folder}/Images/` local _, FileNames = Utility.GetFiles("Images", {".png", ".jpeg"}) local ImageType = Library.Dropdown({Holder = ImageSection.Holder, ContentHolder = Library.Popups}, {Name = "Image Type", Values = FileNames, Value = "-", Flag = MainFlag .. "image_type" .. flag, Callback = function(v) if v ~= "-" then local FileType = isfile(ImageDirectory .. v .. ".png") and "png" or isfile(ImageDirectory .. v .. ".jpeg") and "jpeg" local File = isfile(ImageDirectory .. v .. ".png") and getcustomasset(ImageDirectory .. v .. ".png") or isfile(ImageDirectory .. v .. ".jpeg") and getcustomasset(ImageDirectory .. v .. ".jpeg") if File then if flag == "_enemy" then ESP.EnemyImage = File ESP.EnemyFileType = FileType elseif flag == "_team" then ESP.TeamImage = File ESP.TeamFileType = FileType else ESP.LocalImage = File ESP.LocalFileType = FileType end end end end}) ImageSection:Button({Name = "Refresh", Callback = function(v) local _, FileNames = Utility.GetFiles("Images", {".png", ".jpeg"}) ImageType.Refresh(FileNames) end}) Preview.CreateSeperator(ESPItemsSecond) -- -- Tool local ToolItem = Preview.CreateItem("Tool", function(v) Library.Flags[MainFlag .. "tool" .. flag] = v end, ESPItemsSecond) ToolItem.PopUp.Size = UDim2new(0, 250, 0, 180) local ToolSection = Library.Section({Left = ToolItem.PopUp}, {Name = "Tool Settings"}) ToolSection:Colorpicker({Name = "Tool Color", Flag = MainFlag .. "tool_color" .. flag}) Library.Dropdown({Holder = ToolSection.Holder, ContentHolder = Library.Popups}, {Name = "Tool Font", Values = ESPFonts, Value = "Minecraftia", Flag = MainFlag .. "tool_font" .. flag}) ToolSection:Slider({Name = "Tool Size", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "tool_size" .. flag}) Library.Dropdown({Holder = ToolSection.Holder, ContentHolder = Library.Popups}, {Name = "Tool Case", Values = {"Normal", "UPPERCASE", "lowercase"}, Value = "Normal", Flag = MainFlag .. "tool_case" .. flag}) ToolSection:Slider({Name = "Max Tool Length", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "tool_max" .. flag}) Preview.CreateSeperator(ESPItemsSecond) -- -- Force Field local ForceFieldItem = Preview.CreateItem("Force Field", function(v) Library.Flags[MainFlag .. "force" .. flag] = v end, ESPItemsSecond) local ForceFieldSection = Library.Section({Left = ForceFieldItem.PopUp}, {Name = "Force Field Settings"}) ForceFieldSection:Colorpicker({Name = "Force Field Color", Flag = MainFlag .. "force_color" .. flag}) Library.Dropdown({Holder = ForceFieldSection.Holder, ContentHolder = Library.Popups}, {Name = "Force Field Font", Values = ESPFonts, Value = "Minecraftia", Flag = MainFlag .. "force_font" .. flag}) ForceFieldSection:Slider({Name = "Force Field Size", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "force_size" .. flag}) Library.Dropdown({Holder = ForceFieldSection.Holder, ContentHolder = Library.Popups}, {Name = "Force Field Case", Values = {"Normal", "UPPERCASE", "lowercase"}, Value = "Normal", Flag = MainFlag .. "force_case" .. flag}) Preview.CreateSeperator(ESPItemsSecond) -- -- Target local TargetItem = Preview.CreateItem("Target", function(v) Library.Flags[MainFlag .. "target" .. flag] = v end, ESPItemsSecond) local TargetSection = Library.Section({Left = TargetItem.PopUp}, {Name = "Target Settings"}) TargetSection:Colorpicker({Name = "Target Color", Flag = MainFlag .. "target_color" .. flag}) Library.Dropdown({Holder = TargetSection.Holder, ContentHolder = Library.Popups}, {Name = "Target Font", Values = ESPFonts, Value = "Minecraftia", Flag = MainFlag .. "target_font" .. flag}) TargetSection:Slider({Name = "Target Size", Suffix = "px", Min = 0, Max = 30, Float = 1, Value = 10, Flag = MainFlag .. "target_size" .. flag}) Library.Dropdown({Holder = TargetSection.Holder, ContentHolder = Library.Popups}, {Name = "Target Case", Values = {"Normal", "UPPERCASE", "lowercase"}, Value = "Normal", Flag = MainFlag .. "target_case" .. flag}) -- local PlayerTable = { Drawings = {}, Health = 0, Offsets = {}, StaticOffsets = { Right = 0, Bottom = 0 }, Sides = { Right = Vector2zero, Bottom = Vector2zero } } PlayerTable.Drawings = {} local Holder = BoxHolder local Drawings = PlayerTable.Drawings local StaticOffsets = PlayerTable.StaticOffsets local Sides = PlayerTable.Sides local Offsets = PlayerTable.Offsets Drawings.Box = Utility:New("Frame", { Parent = Holder, Visible = false, BackgroundTransparency = 1, BorderSizePixel = 0, }) Drawings.BoxFill = Utility:New("Frame", { Parent = Drawings.Box, Visible = true, BackgroundTransparency = 1, Position = UDim2new(0, -1, 0, -1), Size = UDim2new(1, 2, 1, 2), BorderSizePixel = 0, }) Drawings.BoxOutline = Utility:New("UIStroke", { Parent = Drawings.Box, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, LineJoinMode = Enum.LineJoinMode.Miter, Thickness = 3, Color = Color3fromRGB() }) Drawings.BoxInline = Utility:New("UIStroke", { Parent = Drawings.BoxFill, ApplyStrokeMode = Enum.ApplyStrokeMode.Border, LineJoinMode = Enum.LineJoinMode.Miter, Thickness = 1, }) Drawings.BoxGradient = Utility:New("UIGradient", { Enabled = false, Rotation = 270, Parent = Drawings.BoxInline }) Drawings.BoxFillGradient = Utility:New("UIGradient", { Enabled = false, Rotation = 270, Parent = Drawings.BoxFill }) Drawings.Name = Utility:New("TextLabel", { Parent = Holder, Visible = false, AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), Position = UDim2new(0, 0, 0, 0), TextYAlignment = Enum.TextYAlignment.Top, TextStrokeTransparency = 0, BackgroundTransparency = 1, RichText = true, }) Drawings.HealthBarOutline = Utility:New("Frame", { Visible = false, BorderSizePixel = 0, Parent = Holder, }) Drawings.HealthBar = Utility:New("Frame", { Visible = true, BorderSizePixel = 0, Parent = Drawings.HealthBarOutline, }) Drawings.HealthBarGradient = Utility:New("UIGradient", { Enabled = false, Rotation = 270, Parent = Drawings.HealthBar }) Drawings.HealthNumber = Utility:New("TextLabel", { Parent = Holder, Visible = false, AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), Position = UDim2new(0, 0, 0, 0), TextYAlignment = Enum.TextYAlignment.Top, TextStrokeTransparency = 0, BackgroundTransparency = 1, }) Drawings.ImageLabel = Utility:New("ImageLabel", { Parent = Holder, Visible = true, BackgroundTransparency = 1, BorderSizePixel = 0, }) function PlayerTable.CreateFlag(flag, text, colortbl, font, size, status, side, overwrite) local Position = Sides[side] local object = Drawings[flag] if not object then Drawings[flag] = Utility:New("TextLabel", { Parent = Holder, Visible = false, AutomaticSize = Enum.AutomaticSize.XY, Size = UDim2new(0, 0, 0, 0), Position = UDim2new(0, 0, 0, 0), TextYAlignment = Enum.TextYAlignment.Top, TextStrokeTransparency = 0, BackgroundTransparency = 1, }) object = Drawings[flag] end local OffsetFlag = flag .. side if not Offsets[OffsetFlag] then Offsets[OffsetFlag] = 1 end local EndVal = status and 255 or 0 if Offsets[OffsetFlag] ~= EndVal then Offsets[OffsetFlag] = Utility:Lerp(Offsets[OffsetFlag], EndVal, 0.1) end if Offsets[OffsetFlag] == 0 then object.Visible = false return end object.Visible = true object.Text = text local LerpVal = Offsets[OffsetFlag] / 255 object.TextTransparency = 1 - (colortbl.a * LerpVal) object.TextColor3 = overwrite or colortbl.c object.FontFace = GetFontFromIndex(Fonts[font]) object.TextSize = size object.Position = side == "Right" and UDim2new(0, Position.x, 0, Position.y + StaticOffsets[side]) or UDim2new(0, Position.x - object.TextBounds.x / 2, 0, Position.y + StaticOffsets[side]) StaticOffsets[side] += (object.TextBounds.y + 2) * LerpVal end local HealthBarLerp = 0 local HealthBarDirection = 1 Utility:Connect(RunService.Heartbeat, function(DT) if not tab.Page.Visible then return end if not ESPWindow.OutlineHolder.Visible then return end if not Library.Popups.Enabled then return end local TeamFlag = flag local ClockPulse = osclock() PlayerTable.Health = Utility:Lerp(PlayerTable.Health, PlayerTable.Health + HealthBarDirection * 100, 0.006) if PlayerTable.Health >= 100 then PlayerTable.Health = 100 HealthBarDirection = -1 elseif PlayerTable.Health <= 0 then PlayerTable.Health = 0 HealthBarDirection = 1 end local Health = PlayerTable.Health local HealthScale = Health / 100 StaticOffsets = { Right = 0, Bottom = 0 } Sides = { Right = BoxPosition + Vector2new(BoxSize.x + 4, -4), Bottom = BoxPosition + Vector2new(BoxSize.x / 2, BoxSize.y + 4) } local Box = Drawings.Box local BoxOutline = Drawings.BoxOutline local BoxInline = Drawings.BoxInline local BoxGradient = Drawings.BoxGradient local BoxStatus = Flags[MainFlag .. "box" .. TeamFlag] Box.Visible = BoxStatus if BoxStatus then Box.Size = UDim2offset(BoxSize.X - 2, BoxSize.Y - 2) Box.Position = UDim2offset(BoxPosition.X + 1, BoxPosition.Y + 1) BoxOutline.Transparency = 1 - Flags[MainFlag .. "box_outline" .. TeamFlag].a BoxOutline.Color = Flags[MainFlag .. "box_outline" .. TeamFlag].c local BoxGradientStatus = Flags[MainFlag .. "box_gradient" .. TeamFlag] BoxGradient.Enabled = BoxGradientStatus if BoxGradientStatus then BoxInline.Color = Color3fromRGB(255, 255, 255) BoxInline.Transparency = 0 local Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Flags[MainFlag .. "box_gradient_from_color" .. TeamFlag].c), ColorSequenceKeypoint.new(1, Flags[MainFlag .. "box_gradient_to_color" .. TeamFlag].c) }) local Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1 - Flags[MainFlag .. "box_gradient_from_color" .. TeamFlag].a), NumberSequenceKeypoint.new(1, 1 - Flags[MainFlag .. "box_gradient_to_color" .. TeamFlag].a), }) if Flags[MainFlag .. "box_gradient_rainbow" .. TeamFlag] then local Time = tick() local HueStart = (Time / 5) % 1 local HueEnd = (HueStart + (Flags[MainFlag .. "box_gradient_rainbow_speed" .. TeamFlag] / 100)) % 1 local ColorStart = Color3fromHSV(HueStart, 1, 1) local ColorEnd = Color3fromHSV(HueEnd, 1, 1) Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, ColorStart), ColorSequenceKeypoint.new(1, ColorEnd) }) end BoxGradient.Color = Color BoxGradient.Transparency = Transparency else BoxInline.Color = Flags[MainFlag .. "box_color" .. TeamFlag].c BoxInline.Transparency = 1 - Flags[MainFlag .. "box_color" .. TeamFlag].a end end local BoxFill = Drawings.BoxFill local BoxFillGradient = Drawings.BoxFillGradient local BoxFillStatus = Flags[MainFlag .. "box_fill" .. TeamFlag] BoxFill.Visible = BoxFillStatus if BoxFillStatus then local BoxFillGradientStatus = Flags[MainFlag .. "box_fill_gradient" .. TeamFlag] BoxFillGradient.Enabled = BoxFillGradientStatus if BoxFillGradientStatus then BoxFill.BackgroundColor3 = Color3fromRGB(255, 255, 255) BoxFill.BackgroundTransparency = 0 local Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Flags[MainFlag .. "box_fill_gradient_from_color" .. TeamFlag].c), ColorSequenceKeypoint.new(1, Flags[MainFlag .. "box_fill_gradient_to_color" .. TeamFlag].c) }) local Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1 - Flags[MainFlag .. "box_fill_gradient_from_color" .. TeamFlag].a), NumberSequenceKeypoint.new(1, 1 - Flags[MainFlag .. "box_fill_gradient_to_color" .. TeamFlag].a), }) if Flags[MainFlag .. "box_fill_gradient_rainbow" .. TeamFlag] then local Time = tick() local HueStart = (Time / 5) % 1 local HueEnd = (HueStart + (Flags[MainFlag .. "box_fill_gradient_rainbow_speed" .. TeamFlag] / 100)) % 1 local ColorStart = Color3fromHSV(HueStart, 1, 1) local ColorEnd = Color3fromHSV(HueEnd, 1, 1) Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, ColorStart), ColorSequenceKeypoint.new(1, ColorEnd) }) end BoxFillGradient.Color = Color BoxFillGradient.Transparency = Transparency else BoxFill.BackgroundColor3 = Flags[MainFlag .. "box_fill_color" .. TeamFlag].c BoxFill.BackgroundTransparency = 1 - Flags[MainFlag .. "box_fill_color" .. TeamFlag].a end end local ImageLabel = Drawings.ImageLabel local ImageId = TeamFlag == "_enemy" and ESP.EnemyImage or TeamFlag == "_team" and ESP.TeamImage or ESP.Image local FileType = TeamFlag == "_enemy" and ESP.EnemyFileType or TeamFlag == "_team" and ESP.TeamFileType or ESP.FileType local ImageStatus = Flags[MainFlag .. "image" .. TeamFlag] and ImageId ImageLabel.Visible = ImageStatus and FileType if ImageStatus then ImageLabel.Size = UDim2offset(BoxSize.x, BoxSize.y) ImageLabel.Position = UDim2offset(BoxPosition.x, BoxPosition.y) if ImageLabel.Image ~= ImageId then ImageLabel.Image = ImageId end end local Name = Drawings.Name local NameStatus = Flags[MainFlag .. "name" .. TeamFlag] Name.Visible = NameStatus if NameStatus then Name.Position = UDim2offset(BoxPosition.x + BoxSize.x / 2 - Name.TextBounds.x / 2, BoxPosition.y - Name.TextBounds.y - 4) Name.TextColor3 = OverwritenColor or Flags[MainFlag .. "name_color" .. TeamFlag].c Name.TextTransparency = 1 - Flags[MainFlag .. "name_color" .. TeamFlag].a Name.Text = ESP.GetCase(("Player"):sub(0, Flags[MainFlag .. "name_max" .. TeamFlag]), Flags[MainFlag .. "name_case" .. TeamFlag]) Name.FontFace = GetFontFromIndex(Fonts[Flags[MainFlag .. "name_font" .. TeamFlag]]) Name.TextSize = Flags[MainFlag .. "name_size" .. TeamFlag] end local ToolStatus = Flags[MainFlag .. "tool" .. TeamFlag] PlayerTable.CreateFlag( "Tool", ESP.GetCase("Tool", Flags[MainFlag .. "tool_case" .. TeamFlag]):sub(0, Flags[MainFlag .. "tool_max" .. TeamFlag]), Flags[MainFlag .. "tool_color" .. TeamFlag], Flags[MainFlag .. "tool_font" .. TeamFlag], Flags[MainFlag .. "tool_size" .. TeamFlag], ToolStatus, "Bottom", OverwritenColor ) local DistanceStatus = Flags[MainFlag .. "distance" .. TeamFlag] PlayerTable.CreateFlag( "Distance", ESP.GetCase("100 ST", Flags[MainFlag .. "distance_case" .. TeamFlag]), Flags[MainFlag .. "distance_color" .. TeamFlag], Flags[MainFlag .. "distance_font" .. TeamFlag], Flags[MainFlag .. "distance_size" .. TeamFlag], DistanceStatus, "Bottom", OverwritenColor ) local HealthNumber = Drawings.HealthNumber local HealthBarOutline = Drawings.HealthBarOutline local HealthBar = Drawings.HealthBar local HealthBarGradient = Drawings.HealthBarGradient local HealthBarStatus = Flags[MainFlag .. "health_bar" .. TeamFlag] local HealthBarSize = Flags[MainFlag .. "health_bar_size" .. TeamFlag] + 2 HealthBarOutline.Visible = HealthBarStatus if HealthBarStatus then HealthBarOutline.Size = UDim2offset(HealthBarSize, BoxSize.y + 4) HealthBarOutline.Position = UDim2offset(BoxPosition.x - 4 - HealthBarSize, BoxPosition.y - 2) HealthBarOutline.BackgroundColor3 = Flags[MainFlag .. "health_bar_outline" .. TeamFlag].c HealthBarOutline.BackgroundTransparency = 1 - Flags[MainFlag .. "health_bar_outline" .. TeamFlag].a local HealthScaleSize = (HealthBarOutline.AbsoluteSize.y - 2) * HealthScale HealthBar.Size = UDim2new(1, -2, 0, HealthScaleSize) HealthBar.Position = UDim2new(0, 1, 1, -(HealthScaleSize + 1)) local HealthBarGradientStatus = Flags[MainFlag .. "health_bar_gradient" .. TeamFlag] HealthBarGradient.Enabled = HealthBarGradientStatus if HealthBarGradientStatus then HealthBar.BackgroundColor3 = Color3fromRGB(255, 255, 255) HealthBar.BackgroundTransparency = 0 local Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Flags[MainFlag .. "health_bar_gradient_from_color" .. TeamFlag].c), ColorSequenceKeypoint.new(1, Flags[MainFlag .. "health_bar_gradient_to_color" .. TeamFlag].c) }) local Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1 - Flags[MainFlag .. "health_bar_gradient_from_color" .. TeamFlag].a), NumberSequenceKeypoint.new(1, 1 - Flags[MainFlag .. "health_bar_gradient_to_color" .. TeamFlag].a), }) if Flags[MainFlag .. "health_bar_gradient_rainbow" .. TeamFlag] then local Time = tick() local HueStart = (Time / 5) % 1 local HueEnd = (HueStart + (Flags[MainFlag .. "health_bar_gradient_rainbow_speed" .. TeamFlag] / 100)) % 1 local ColorStart = Color3fromHSV(HueStart, 1, 1) local ColorEnd = Color3fromHSV(HueEnd, 1, 1) Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, ColorStart), ColorSequenceKeypoint.new(1, ColorEnd) }) end HealthBarGradient.Color = Color HealthBarGradient.Transparency = Transparency else HealthBar.BackgroundColor3 = Flags[MainFlag .. "health_bar_color" .. TeamFlag].c HealthBar.BackgroundTransparency = 1 - Flags[MainFlag .. "health_bar_color" .. TeamFlag].a end end local HealthNumberStatus = Flags[MainFlag .. "health_number" .. TeamFlag] and PlayerTable.Health <= 90 HealthNumber.Visible = HealthNumberStatus if HealthNumberStatus then local HealthScaleSize = (HealthBarOutline.AbsoluteSize.y - 2) * HealthScale local FollowHealthBar = Flags[MainFlag .. "health_number_follow" .. TeamFlag] local HealthPosition = UDim2offset(BoxPosition.x - (HealthBarStatus and not FollowHealthBar and HealthBarOutline.Size.X.Offset + 4 or 4) - HealthNumber.TextBounds.x, BoxPosition.y - 6) if FollowHealthBar and HealthBarStatus then HealthPosition = UDim2offset(BoxPosition.x - 4 - HealthBarSize / 2 - HealthNumber.TextBounds.x / 2, (BoxPosition.y + BoxSize.y) - HealthScaleSize - HealthNumber.TextBounds.y / 2) end HealthNumber.Position = HealthPosition HealthNumber.TextColor3 = Flags[MainFlag .. "health_number_color" .. TeamFlag].c HealthNumber.TextTransparency = 1 - Flags[MainFlag .. "health_number_color" .. TeamFlag].a HealthNumber.Text = tostring(mathfloor(PlayerTable.Health)) HealthNumber.FontFace = GetFontFromIndex(Fonts[Flags[MainFlag .. "health_number_font" .. TeamFlag]]) HealthNumber.TextSize = Flags[MainFlag .. "health_number_size" .. TeamFlag] end local ForceFieldStatus = Flags[MainFlag .. "force" .. TeamFlag] PlayerTable.CreateFlag( "Force Field", ESP.GetCase("Force-Field", Flags[MainFlag .. "force_case" .. TeamFlag]), Flags[MainFlag .. "force_color" .. TeamFlag], Flags[MainFlag .. "force_font" .. TeamFlag], Flags[MainFlag .. "force_size" .. TeamFlag], ForceFieldStatus, "Right" ) local TargetStatus = Flags[MainFlag .. "target" .. TeamFlag] PlayerTable.CreateFlag( "Target", ESP.GetCase("Target", Flags[MainFlag .. "target_case" .. TeamFlag]), Flags[MainFlag .. "target_color" .. TeamFlag], Flags[MainFlag .. "target_font" .. TeamFlag], Flags[MainFlag .. "target_size" .. TeamFlag], TargetStatus, "Right" ) end, "ESP Preview Heartbeat") end ESPPreview.Window = ESPWindow local Enemies = ESPWindow:Tab({Name = "Enemy"}) ESPPreview:CreatePreview(Enemies, "players", "_enemy") ESPPreview.Enemies = Enemies -- local Teammates = ESPWindow:Tab({Name = "Team"}) -- ESPPreview:CreatePreview(Teammates, "players", "_team") -- ESPPreview.Teammates = Teammates local Local = ESPWindow:Tab({Name = "Local"}) ESPPreview:CreatePreview(Local, "players", "_local") ESPPreview.Local = Local local SettingsESP = ESPWindow:Tab({Name = "Options"}) local SettingsESPHolder = Library:New("TextButton", { Name = "SettingsESPHolder", Parent = SettingsESP.Page, BackgroundTransparency = 1, BorderSizePixel = 0, Position = UDim2new(0, 0, 0, 0), Text = "", Size = UDim2new(1, 0, 0, 0), AutomaticSize = Enum.AutomaticSize.Y, }) Library:New("UIListLayout", { Parent = SettingsESPHolder, FillDirection = Enum.FillDirection.Vertical, SortOrder = Enum.SortOrder.LayoutOrder, Padding = UDimnew(0, 4), }) Library.Toggle({Holder = SettingsESPHolder}, {Name = "Highlight Targets", Flag = "esp_highlight_targets"}):Colorpicker({Name = "Targets Color", Flag = "esp_highlight_targets_color", Color = Color3fromRGB(255, 0, 0)}) Library.Toggle({Holder = SettingsESPHolder}, {Name = "Highlight Friends", Flag = "esp_highlight_friends"}):Colorpicker({Name = "Friends Color", Flag = "esp_highlight_friends_color", Color = Color3fromRGB(0, 166, 255)}) Library.Toggle({Holder = SettingsESPHolder}, {Name = "Highlight Priority", Flag = "esp_highlight_priority"}):Colorpicker({Name = "Priority Color", Flag = "esp_highlight_priority_color", Color = Color3fromRGB(0, 255, 115)}) local LimitDistance Library.Toggle({Holder = SettingsESPHolder}, {Name = "Limit Distance", Flag = "esp_players_limit", Callback = function(v) if LimitDistance then LimitDistance.SetVisibility(v) end end}) LimitDistance = Library.Slider({Holder = SettingsESPHolder}, {Name = "Limit Distance Amount", Visible = false, Flag = "esp_players_limit_amount", Suffix = "st", Min = 0, Max = 2000, Float = 1, Value = 700}) Library.Dropdown({Holder = SettingsESPHolder, ContentHolder = Library.Popups}, {Name = "Box Sizing", Values = {"Simple", "Automatic"}, Value = "Simple", Flag = "esp_auto_sizing"}) Library.Slider({Holder = SettingsESPHolder}, {Name = "Health Fade Speed", Min = 1, Max = 300, Float = 1, Value = 80, Flag = "esp_health_fade_speed"}) Library.Button({Holder = SettingsESPHolder}, {Name = "Test Fade", Callback = function() for _,v in ESP.Players do v.Health = 0 end end}) ESPWindow.OutlineHolder.Visible = true -- LoadingNotification.ClockTime = osclock() + 20 LoadingNotification.Text = ("Welcome to Puppyware, loaded cheat in %sms!\nExecuted at: %s. Press RightShift to open/close menu."):format(mathfloor((tick() - StartTick) * 1000), os.date("%H:%M:%S")) Library:Notify({ Text = "This cheat might be detected on\ngames with hook detection. Be cautious!", Time = 15, Type = "Warning", }) RefreshPlayers()