if getgenv().loaded then 
    return
end 

getgenv().loaded = true 

local StarterGui = game:GetService("StarterGui")

StarterGui:SetCore("SendNotification", {
    Title = "Scorpio.Hub loading",
    Text = "wait 8 seconds",
    Duration = 8, -- seconds the notification stays on screen
})

if LPH_OBFUSCATED == nil then
    local assert = assert
    local type = type
    local setfenv = setfenv
    LPH_ENCNUM = function(toEncrypt, ...)
        assert(type(toEncrypt) == "number" and #{...} == 0, "LPH_ENCNUM only accepts a single constant double or integer as an argument.")
        return toEncrypt
    end
    LPH_NUMENC = LPH_ENCNUM
    LPH_ENCSTR = function(toEncrypt, ...)
        assert(type(toEncrypt) == "string" and #{...} == 0, "LPH_ENCSTR only accepts a single constant string as an argument.")
        return toEncrypt
    end
    LPH_STRENC = LPH_ENCSTR
    LPH_ENCFUNC = function(toEncrypt, encKey, decKey, ...)
        
        assert(type(toEncrypt) == "function" and type(encKey) == "string" and #{...} == 0, "LPH_ENCFUNC accepts a constant function, constant string, and string variable as arguments.")
        return toEncrypt
    end
    LPH_FUNCENC = LPH_ENCFUNC
    LPH_JIT = function(f, ...)
        assert(type(f) == "function" and #{...} == 0, "LPH_JIT only accepts a single constant function as an argument.")
        return f
    end
    LPH_JIT_MAX = LPH_JIT
    LPH_NO_VIRTUALIZE = function(f, ...)
        assert(type(f) == "function" and #{...} == 0, "LPH_NO_VIRTUALIZE only accepts a single constant function as an argument.")
        return f
    end
    LPH_NO_UPVALUES = function(f, ...)
        assert(type(setfenv) == "function", "LPH_NO_UPVALUES can only be used on Lua versions with getfenv & setfenv")
        assert(type(f) == "function" and #{...} == 0, "LPH_NO_UPVALUES only accepts a single constant function as an argument.")
        local env = getrenv()
        return setfenv(
            LPH_NO_VIRTUALIZE(function(...)
                return func(...)
            end),
            setmetatable(
                {
                    func = f
                },
                {
                    __index = env,
                    __newindex = env
                }
            )
        )
    end
    LPH_CRASH = function(...)
        assert(#{...} == 0, "LPH_CRASH does not accept any arguments.")
        game:Shutdown()
        while true do end
    end
    LRM_IsUserPremium = true
    LRM_LinkedDiscordID = "0"
    LRM_ScriptName = "Scorpio.Hub"
    LRM_TotalExecutions = 0
    LRM_SecondsLeft = math.huge
    LRM_UserNote = "Premium";
end;

local Game_Name = (game.PlaceId == 4991214437 and "Town") or (game.PlaceId == 18642421777 and "The Bronx") or (game.PlaceId == 16472538603 and "The Bronx") or (game.PlaceId == 13643807539 and "South Bronx") or (game.PlaceId == 93612682780562 and "South Bronx") or (game.PlaceId == 14413475235 and "South Bronx") or (game.PlaceId == 104715542330896 and "BlockSpin") or (game.PlaceId == 71600459831333 and "Street Life") or "Universal"
if not getexecutorname then
    getexecutorname = identifyexecutor
end
if not getexecutorname then
    getexecutorname = identifyexecutor
end

local Solara = string.match(getexecutorname(), "Solara") == "Solara" or string.match(getexecutorname(), "Xeno") == "Xeno" or getexecutorname() == string.match(getexecutorname(), "Zorara") == "Zorara";

local cloneref = cloneref or function(...) return ... end

local Services = setmetatable({}, {
    __index = LPH_NO_VIRTUALIZE(function(self, service, key)
        if Solara and (service == "VirtualInputManager") and (Game_Name == "The Bronx") then
            return {SendKeyEvent = function() end}
        end
        return cloneref(game:GetService(service))
    end)
})

if Game_Name == "South Bronx" and not Solara then

         local _getallthreads = LPH_JIT_MAX(function()
            local threads = {}
            for i, v in getreg() do
                if type(v) == 'thread' then
                    table.insert(threads, v)
                end
            end
            return threads
        end)

        local _gettenv = LPH_JIT_MAX(function(Thread)
            return getfenv(debug.info(Thread, 1, 'f'))
        end)

        if gettenv then
            _gettenv = gettenv
        end

        local Filter_Nil_Instances = LPH_JIT_MAX(function(Name) 
            local Found = nil 

            for _, Object in getnilinstances() do  
                if tostring(Object):find(Name) then 
                    Found = Object
                end
            end

            return Found
        end)

        local Filter_Table = LPH_JIT_MAX(function(Table, Name)
            local Found, Index = nil, nil

            for _, Object in Table do 

                if tostring(_):lower():find(tostring(Name):lower()) then 
                    Found = Object
                    Index = _
                end
            end

            return Found, Index
        end)

        local Search_Threads = LPH_JIT_MAX(function(Table, Variable)
            local Threads = {}

            for NO, _thread in pairs(Table) do
                local T_ENV = _gettenv(_thread)

                if T_ENV[Variable] then
                    table.insert(Threads, _thread)
                end
            end

            return Threads
        end)

        local Get_AntiCheat_Threads = LPH_JIT_MAX(function()
            local Threads = _getallthreads()
            local WeHaveAHacker = Search_Threads(Threads, 'WeHaveAHacker')
            if WeHaveAHacker[1] then
                return WeHaveAHacker
            end
        end)

        local AntiCheat_Threads = {}
        local AntiCheat_Encoded = {
            [1] = "iFPjbrlufvSzsYurCCdWeFbPeNBWzxywGWLNpzgQVVvkLaoDJjImgWFETWVzc2FnZVR5cGU=",
            [2] = "AjimhYxuTcBxLtetPTqLQKsdsjDiWNpsPSoXToFfvftufSnLTemZUVKTWVzc2FnZVUlZm8=",
            [3] = "VFevcWxuZHlvFWejJERNXupJDNxvjnIBPHBNZgSMHNOeQURICksIFETWVzc2FnZVR5cGU=",
            [4] = "RJLHPqjgyYwiGKfgSdISiCpvzGmdJKBkWUMMZHxtipCmivjZdXzDWsTWVzc2FnZUlDHbIdA=="
        }

        local Anti_Cheat_Script = Filter_Nil_Instances('?')

        if not Anti_Cheat_Script then
            repeat task.wait()
            Anti_Cheat_Script = Filter_Nil_Instances('?')
            until Anti_Cheat_Script~=nil
        end

        local AntiCheat_Function, Function_Index = Filter_Table(getsenv(Anti_Cheat_Script), "HPv")
        if not AntiCheat_Function then
            repeat task.wait()
            Anti_Cheat_Script = Filter_Nil_Instances('?')
            AntiCheat_Function, Function_Index = Filter_Table(getsenv(Anti_Cheat_Script), "HPv")

            until AntiCheat_Function~=nil
        end

        local Killable_Threads = {[1] = true, [3] = true, [4] = true}

        local XVNP_L = LPH_JIT_MAX(function(...)
            local Random_Message = AntiCheat_Encoded[math.random(1, #AntiCheat_Encoded)]
            return AntiCheat_Function(Random_Message)
        end)

        Services.RunService.RenderStepped:Connect(LPH_JIT_MAX(function()
            AntiCheat_Threads = Get_AntiCheat_Threads()

            if AntiCheat_Threads then
                for i = 1, #AntiCheat_Threads do
                    local Thread = AntiCheat_Threads[i]

                    if Thread and Killable_Threads[i] == true then
                        task.cancel(Thread)
                    end
                end
            end

            XVNP_L()
        end))
    task.wait(5)
end

local script_key;

if LPH_OBFUSCATED then
    script_key = getfenv().script_key
end

if script_key then
    writefile("BronxLol_Key.txt", script_key)
end

do 
    Players = Services.Players;
    ReplicatedStorage = Services.ReplicatedStorage;
    UserInputService = Services.UserInputService;
    Workspace = Services.Workspace;
    RunService = Services.RunService;
    ProximityPromptService = Services.ProximityPromptService;
    MarketplaceService = Services.MarketplaceService;
    StarterGui = Services.StarterGui
    VirtualInputManager = Services.VirtualInputManager;
    Lighting = Services.Lighting
    mathrandom = math.random;
    mathabs = math.abs;
    Mobile = UserInputService.TouchEnabled

    Cars = {}

    Camera = Workspace.CurrentCamera

    LocalPlayer = Players.LocalPlayer
    Mouse = LocalPlayer:GetMouse()

    Move_Mouse_Function = mousemoverel
end;

local FireServer, InvokeServer, UnreliableFireServer = Instance.new("RemoteEvent").FireServer, Instance.new("RemoteFunction").InvokeServer, Instance.new("UnreliableRemoteEvent").FireServer

if isfunctionhooked then
    if isfunctionhooked(FireServer) or isfunctionhooked(UnreliableFireServer) or isfunctionhooked(InvokeServer) and LPH_OBFUSCATED then
        return Services.LocalPlayer:Kick("moon.lua | Security : You are running another script, please disable it and execute again")
    end
end

local SafePosition = CFrame.new(-437, 33, 6653)

local Config = {
    ["TheBronx"] = {
        ["Selected_Item"] = "...";

        ["TeleportationList"] = {
            ["Deli Market 🥪"] = CFrame.new(-927.72607421875, 253.73307800293, -691.36871337891);
            ["Capital One Bank 🏦"] = CFrame.new(-224.070892, 283.80954, -1200.51355, 0.898020029, -8.45030157e-10, -0.439954549, 1.71171859e-08, 1, 3.30182885e-08, 0.439954549, -3.718187e-08, 0.898020029);
            ["Ice Box 🧊"] = CFrame.new(-211.92926, 284.031494, -1170.44751, -0.211394921, -4.74827537e-08, -0.97740072, 4.93989027e-08, 1, -5.92647709e-08, 0.97740072, -6.08107911e-08, -0.211394921);
            ["🏘 section 8 house"] = CFrame.new(-741.548218, 262.955658, -956.177856, -0.999924719, -3.33829719e-09, 0.0122713735, -3.3374834e-09, 1, 8.67962299e-11, -0.0122713735, 4.58341871e-11, -0.999924719);
            ["Hotel 🏨"] = CFrame.new(-1012, 266, -933);
            ["Drip Store 👓"] = CFrame.new(67462.6953125, 10489.0322265625, 546.6762084960938);
            ["Gun Shop 🔫"] = CFrame.new(-1003.56274, 253.814941, -802.115479, -0.980083287, 1.00547819e-08, 0.198586762, 7.72241027e-09, 1, -1.25193429e-08, -0.198586762, -1.07364304e-08, -0.980083287);
            ["Car Dealer 🚗"] = CFrame.new(-410.52230834961, 253.25646972656, -1245.5539550781);
            ["💲clean money💵"] = CFrame.new(-979.4635620117188, 253.65318298339844, -689.3339233398438);
            ["Studio 🎙"] = CFrame.new(93408.453125, 14484.7158203125, 570.139404296875);
            ["Basketball Court 🏀"] = CFrame.new(-928.66687, 253.970642, -411.840332, 0.459722698, -4.89149912e-08, -0.888062537, 1.72902119e-08, 1, -4.61299585e-08, 0.888062537, 5.85219917e-09, 0.459722698);
            ["Robbable Ice Box 🧊"] = CFrame.new(-209.68360900878906, 283.4959411621094, -1265.5286865234375);
            ["Exotic Dealer / Grass House 🍃"] = CFrame.new(-1521.943115234375, 272.5462646484375, -984.3020629882812);
            ["Safe 🔒"] = CFrame.new(-410.395508, 257.2146, -268.762207, -0.99397856, -3.30172973e-08, -0.109574534, -2.67952363e-08, 1, -5.82563118e-08, 0.109574534, -5.49694477e-08, -0.99397856);
            ["Roof Top / Bank Tools 🛠"] = CFrame.new(-405.766541, 334.314209, -559.063049, 0.990661561, -9.09075197e-08, 0.13634412, 1.00807341e-07, 1, -6.57046044e-08, -0.13634412, 7.88355123e-08, 0.990661561);
            ["Gun Shop 2 🔫"] = CFrame.new(66202, 123615.7109375, 5749.81591796875);
            ["Construction Job 🔨"] = CFrame.new(-1731.8306884766, 370.81228637695, -1176.8387451172);
            ["👨🏾‍🍳 popeyes"] = CFrame.new(-86.8043365, 283.632904, -767.680481, 0.0349430069, 3.07534176e-09, 0.999389291, -8.80638069e-08, 1, 1.87372795e-12, -0.999389291, -8.8010097e-08, 0.0349430069), 
            ["🏡 trailer park"] = CFrame.new(-1521.95935, 253.342743, 2264.8584, 0.0229746699, -4.32685623e-11, -0.999736071, -4.64380934e-09, 1, -1.49998139e-10, 0.999736071, 4.64602978e-09, 0.0229746699),
            ["👨 yard sale"] = CFrame.new(-1379.59961, 254.075073, 2768.17456, -0.161961749, -7.58592744e-09, -0.986797035, -3.6793375e-09, 1, -7.08353953e-09, 0.986797035, 2.48349696e-09, -0.161961749),
            ["🎒Backpack "] = CFrame.new(-694.231689, 253.780945, -687.136841, -0.871292949, -1.55957949e-08, 0.490763307, -1.33098546e-08, 1, 8.14855827e-09, -0.490763307, 5.67793146e-10, -0.871292949),
            ["👑 trap house"] = CFrame.new(-792.78064, 256.794495, 1414.72986, 1, 3.85794046e-08, 1.98475264e-12, -3.85794046e-08, 1, 1.80319546e-08, -1.98405702e-12, -1.80319546e-08, 1),
            ["🥤 fruit"] = CFrame.new(-70.5023575, 287.06366, -320.634094, 0.999999821, -4.35785275e-09, -0.000581864733, 4.40470993e-09, 1, 8.05283591e-08, 0.000581864733, -8.05309028e-08, 0.999999821),
            ["👮🏾‍♂️police landout"] = CFrame.new(-1440.86902, 255.12619, -3141.50269, 1, 2.93179286e-10, -1.22108007e-14, -2.93179286e-10, 1, -5.42506351e-09, 1.220921e-14, 5.42506351e-09, 1),
            ["👮🏾‍♂️ police talking room"] = CFrame.new(-1369.65198, 257.850769, -3193.54297, 0.999995232, 3.48691671e-08, 0.00309534976, -3.50066287e-08, 1, 4.43553745e-08, -0.00309534976, -4.44635191e-08, 0.999995232),
            ["👮🏾‍♂️police meeting"] = CFrame.new(-1366.70178, 256.821899, -3152.30518, 1, 5.55209141e-08, 1.72658505e-13, -5.55209141e-08, 1, 7.07464309e-08, -1.68730603e-13, -7.07464309e-08, 1),
            ["🚪kicking doors"] = CFrame.new(-607.173645, 253.886749, -679.163391, -0.0964333862, -2.14529798e-08, 0.995339453, -3.46045361e-08, 1, 1.82007724e-08, -0.995339453, -3.26880993e-08, -0.0964333862),
            ["🔫Gunshop 3"] = CFrame.new(-1010.32635, 317.889374, -907.931946, -0.719649017, -6.88095314e-09, 0.694338024, -3.86566157e-08, 1, -3.01556895e-08, -0.694338024, -4.85422724e-08, -0.719649017),
            ["🩹Margreens"] = CFrame.new(-384.37, 254.45, -373.76),
            ["🍗 Chicken Wings"] = CFrame.new(-957.91418457031, 253.53065490723, -815.94421386719),
            ["🏥 Hospital"] = CFrame.new(-1590.33069, 254.272217, 19.9477577, -0.148689881, -1.89369107e-08, -0.988883853, -1.55521995e-08, 1, -1.68113328e-08, 0.988883853, 1.2879644e-08, -0.148689881),
            ["🔥 Pawn Shop"] = CFrame.new(-1049.6430664063, 253.53065490723, -814.26971435547),
            ["🏠 Penthouse"] = CFrame.new(-195.424164, 397.138306, -573.941162, 1, 1.33502738e-08, 1.90762137e-14, -1.33502738e-08, 1, 2.10393516e-08, -1.87953325e-14, -2.10393516e-08, 1),
            ["👮🏾‍♂️ prison"] = CFrame.new(-1123.79626, 257.877808, -3336.99561, 0.991099596, -6.00827263e-08, -0.133122638, 7.45554232e-08, 1, 1.0373234e-07, 0.133122638, -1.12734092e-07, 0.991099596),
            ["🥤 soda drink"] = CFrame.new(-1291.38245, 253.300858, -2998.16333, -0.928815365, -7.42738671e-09, -0.370542884, -8.67058336e-09, 1, 1.68937098e-09, 0.370542884, 4.78193662e-09, -0.928815365),
            ["🛍 DOLLAR CENTRAL"] = CFrame.new(-388.171509, 253.820496, -1065.17139, -0.966062784, 7.08192331e-08, -0.258307457, 7.32862731e-08, 1, 7.77916898e-11, 0.258307457, -1.88552391e-08, -0.966062784),
            ["🔫 Studio Guns🔫"] = CFrame.new(-612.873413, 253.373779, -1146.95239, -0.999343038, 8.73653434e-08, -0.0362425484, 8.42543528e-08, 1, 8.73653434e-08, 0.0362425484, 8.42543528e-08, -0.999343038),
            ["⚗factory🧪 "] = CFrame.new(-171.367737, 284.625214, -262.169586, 0.926331043, 1.02568464e-07, -0.376710504, -8.25912139e-08, 1, 6.91821924e-08, 0.376710504, -3.29726326e-08, 0.926331043),
            ["💻bronx laundromat💳 "] = CFrame.new(-616.240662, 253.715866, -1221.80261, -0.68032074, 1.08248898e-07, -0.732914507, 6.7664196e-08, 1, 8.48878514e-08, 0.732914507, 8.15889312e-09, -0.68032074),
            ["🏫River park🚸"] = CFrame.new(-1488.58362, 253.860413, -528.957153, -0.219471648, 1.05735602e-07, -0.975618899, -1.44289221e-08, 1, 1.11623855e-07, 0.975618899, 3.85754007e-08, -0.219471648),
            ["🏠Penthouse 2🏠"] = CFrame.new(-618.133972, 356.534882, -688.35498, 0.419588119, -4.88266352e-08, 0.907714605, 3.28240795e-08, 1, 3.86179124e-08, -0.907714605, 1.35912792e-08, 0.419588119),
        };

        ["Modifications"] = newproxy(true);
    
        ["_Modifications"] = {
            ["DisableJamming"] = false;
            ["ModifySpreadValue"] = false;
            ["ModifyRecoilValue"] = false;
            ["Automatic"] = false;
            ["ModifyFireRate"] = false;
            ["ModifyReloadSpeed"] = false;
            ["ModifyEquipSpeed"] = false;
            ["InfiniteAmmo"] = false;
            ["InfiniteClips"] = false;
            ["InfiniteDamage"] = false;

            ["FireRateSpeed"] = 50;
            ["SpreadPercentage"] = 50;
            ["RecoilPercentage"] = 50;
            ["ReloadSpeed"] = 50;
            ["EquipSpeed"] = 50;
        };

        ["PlayerModifications"] = {
            ["InfiniteSleep"] = false;
            ["InfiniteStamina"] = false;
            ["InfiniteHunger"] = false;
            ["InstantInteract"] = false;
            ["InstantRevive"] = false;
            ["AutoPickupCash"] = false;
            ["AutoPickupBags"] = false;
            ["DisableCameraBobbing"] = false;
            ["DisableCameras"] = false;
            ["BypassLockedCars"] = false;
            ["DisableBloodEffects"] = false;
            ["NoJumpCooldown"] = false;
            ["NoRentPay"] = false;
            ["NoFallDamage"] = false;
            ["NoKnockback"] = false;
            ["InfiniteHealth"] = false;
            ["RespawnWhereYouDied"] = false;
        };

        ["InfiniteHealth"] = false;

        ["StoreDupedItem"] = false;
        ["Selected_Location"] = "...";
        ["ClickTeleportActive"] = false;

        ["PlayerUtilities"] = {
            ["SelectedPlayer"] = "...";
            ["BringingPlayer"] = false;
            ["SpectatePlayer"] = false;
            ["AutoKill"] = false;
            ["AutoRagdoll"] = false;
            ["BugPlayer"] = false;
        };

        ["VehicleModifications"] = {
            ["SpeedEnabled"] = false;
            ["SpeedValue"] = 10/1000;
            ["BreakEnabled"] = false;
            ["BreakValue"] = 50/1000;
            ["InstantStop"] = false;
            ["InstantStopBind"] = Enum.KeyCode.V;
        };

        ["Farms"] = {
            ["CollectDroppedMoney"] = false;

            ["CollectDroppedLoot"] = false;
            ["OnlyCollectGuns"] = false;

            ["AFKCheck"] = false;
            ["FarmConstructionJob"] = false;
            ["FarmBank"] = false;
            ["FarmHouses"] = false;
            ["FarmStudio"] = false;
            ["FarmTrash"] = false;
            ["AutoSellTrash"] = false;
        };

        ["KillAura"] = false;
        ["KillAuraRange"] = 300;
        ["KillAuraWhitelist"] = {};

        ["AutoDrop"] = false;
        ["MoneyAmount"] = false;

        ["Fly"] = {
            ["Enabled"] = false;
            ["Type"] = "CFrame";
            ["Speed"] = 50;
        };
    };

    ["BlockSpin"] = {
        ["LocalPlayer"] = {
            ["InfiniteStamina"] = false;
        };

        ["AutoFarming"] = {
            ["FarmMops"] = false;
            ["MopType"] = "Default";
        };
    };

    ["Road_To_Riches"] = {
        ["_Modifications"] = {
            ["ExplosiveBullets"] = false;
            ["InfiniteAmmo"] = false;
            ["InfiniteDamage"] = false;
            ["InstantReload"] = false;
            ["InstantEquip"] = false;
            ["Automatic"] = false;
            ["RapidFire"] = false;
            ["NoSpread"] = false;
            ["NoRecoil"] = false;
        };

        ["Locations"] = {
            ["ATM 🏧"] = CFrame.new(360, 2563, 1946);
            ["Gun Dealer 🔫"] = CFrame.new(231, 2545, 1065);
            ["Gold Shop 🪙"] = CFrame.new(-78.1158218383789, 2563.1123046875, 944.74365234375);
            ["Barber 💈"] = CFrame.new(1217.6531982421875, 2557.93896484375, 981.182861328125);
            ["Monderella 🍕"] = CFrame.new(428.89581298828125, 2563.31005859375, 1275.4918212890625);
            ["Deli 🥪"] = CFrame.new(-70.2744369506836, 2562.807861328125, 719.9676513671875);
            ["Library 📖"] = CFrame.new(53.477169036865234, 2562.908203125, 1960.6444091796875);
            ["Laboratory 🔬"] = CFrame.new(564, 2563, 1957);
            ["Hot Dog Stand 🌭"] = CFrame.new(295.57403564453125, 2562.7646484375, 1996.2435302734375);
            ["Gym 💪" ] = CFrame.new(-37.920719146728516, 2563.05029296875, 442.32647705078125);
            ["Banks Burgers 🍔"] = CFrame.new(794.2547607421875, 2562.93701171875, 311.8097229003906);
                        ["Laundromat"] = CFrame.new(-979.4635620117188, 253.65318298339844, -689.3339233398438);
            ["Cocaine Factory 🏭"] = CFrame.new(1227, 2529, 1987);
            ["Cooking Pots 🧪"] = CFrame.new(131, 2540, 1004);
            ["Scrap Metal ⚒️"] = CFrame.new(1049, 2563, 1052);
        };

        ["PackFarm"] = {
            ["Enabled"] = false;
            ["AllowedPacks"] = {};
            ["AllowedJunkies"] = {};
        };

        ["InfiniteClips"] = false;
        ["InfiniteStamina"] = false;
        ["InfiniteEnergy"] = false;

        ["Modifications"] = newproxy(true);

        ["InstantInteract"] = false;

        ["ESP"] = {
            ["Pots"] = false;
            ["AllowedPots"] = {}
        };
    };

    ["South_Bronx"] = {
        ["LocalPlayer_Config"] = {
            ["InstantInteract"] = false;
            ["DeleteOnKey"] = false;
            ["DeleteKey"] = nil;
            ["NoClip"] = false;
            ["HideName"] = false;
            ["InfiniteStamina"] = false;
            ["Speed"] = false;
            ["SpeedValue"] = 0.75;
        };

        ["TeleportMethod"] = "Damage";

        ["FarmingUtilities"] = {
            ["CardFarm"] = false;
            ["BoxFarm"] = false;
            ["ChipFarm"] = false;
            ["MarshmallowFarm"] = false;
            ["MarshmallowIncrement"] = 5;
        };

        ["OwnedBike"] = "Unknown";

        ["Guns"] = {};

        ["Selected_Item"] = "...";
        ["Item_Amount"] = 1;

        ["Locations"] = {
            ["Main Gun Store 🔫"] = CFrame.new(219, 6, -158);
            ["Black Market 💹"] = CFrame.new(671, 6, 251);
            ["DealerShip 🚗"] = CFrame.new(738, 6, 439);
            ["DealerShip Apartments 🌇"] = CFrame.new(717, 5, 548);
            ["Clothes Store 👕"] = CFrame.new(-197, 6, -74);
            ["Box Job Apartments 📦"] = CFrame.new(-527, 6, 142);
            ["Bank 💳"] = CFrame.new(-47, 6, -340);
            ["Fake ID Seller 🎫"] = CFrame.new(219, 6, -331);
            ["DOA Turf 🔴"] = CFrame.new(-335, 6, -415);
            ["OGZ Turf 🟣"] = CFrame.new(125, 6, -466);
            ["YGZ Turf 🟢"] = CFrame.new(3, 6, 223);
                        ["Studio"] = CFrame.new(93408.453125, 14484.7158203125, 570.139404296875);
            ["Shoe Store 👟"] = CFrame.new(525, 7, -184);
            ["Second Gun Store 🔫"] = CFrame.new(-459, 6, 328);
            ["Exclusive Gun Store 🔫"] = CFrame.new(1131, 4, 173);
        };
        
        ["Selected_Location"] = "...";

        ["Modifications"] = newproxy(true);

        ["_Modifications"] = {
            ["DisableJamming"] = false;
            ["ModifySpreadValue"] = false;
            ["ModifyRecoilValue"] = false;
            ["Automatic"] = false;
            ["ModifyFireRate"] = false;
            ["InstantKill"] = false;
            ["ModifyReloadSpeed"] = false;
            ["ModifyEquipSpeed"] = false;
            ["InfiniteAmmo"] = false;
            ["InfiniteClips"] = false;

            ["FireRateSpeed"] = 50;
            ["SpreadPercentage"] = 50;
            ["RecoilPercentage"] = 50;
            ["ReloadSpeed"] = 50;
            ["EquipSpeed"] = 50;
        };

        ["PlayerUtilities"] = {
            ["SelectedPlayer"] = "...";
            ["BringingPlayer"] = false;
            ["SpectatePlayer"] = false;
        };

        ["VehicleModifications"] = {
            ["SpeedEnabled"] = false;
            ["SpeedValue"] = 10/1000;
            ["BreakEnabled"] = false;
            ["BreakValue"] = 50/1000;
            ["InstantStop"] = false;
            ["InstantStopBind"] = Enum.KeyCode.V;
        };

        ["KillAura"] = false;
        ["KillAuraRange"] = 100;
        ["KillAuraWhitelist"] = {};
    };

    ["Game"] = {
        ["Ray_Systems"] = (Game_Name == "Road To Riches" and {"Raycast"} or Game_Name == "BlockSpin" and {"Raycast"} or Game_Name == "Town" and {"Raycast"} or Game_Name == "Universal" and {"Raycast","FindPartOnRay","FindPartOnRayWithWhitelist"} or Game_Name == "The Bronx" and {"FindPartOnRay"}  or Game_Name == "South Bronx" and {"Raycast"} or Game_Name == "Street Life" and {"Raycast"} or Game_Name == "Criminality" and {"Raycast"}) or {};
        ["Wall_Bang_Possible"] = ((Game_Name == "Universal" or Game_Name == "Criminality" or Game_Name == "South Bronx" or Game_Name == "The Bronx" or Game_Name == "Street Life"));
    };

    ["Aimlock"] = {
        ["Enabled"] = false;
        ["Aiming"] = false;
        ["TargetPart"] = "Head";
        ["MaxDistance"] = 300;
        ["Mode"] = "Toggle"; 
        ["Type"] = "Mouse"; 
        ["Keybind"] = nil;
        ["WallCheck"] = false;
        ["Priority"] = {};
        ["Whitelisted"] = {};
        ["DrawFieldOfView"] = false;
        ["UseFieldOfView"] = false;
        ["Radius"] = 100;
        ["FieldOfViewColor"] = Color3.new(1,1,1);
        ["FieldOfViewTransparency"] = 0.25;
        ["Sides"] = 100;
        ["Smoothness"] = 1;
        ["Snapline"] = false;
        ["SnaplineColor"] = Color3.new(1,1,1);
        ["SnaplineThickness"] = 1;
    };

    ["Silent"] = {
        ["Enabled"] = false;
        ["Targetting"] = false;
        ["TargetPart"] = {"Head"};
        ["Mode"] = "nil";
        ["MaxDistance"] = 300;
        ["Keybind"] = nil;
        ["WallCheck"] = false;
        ["WallBang"] = false;
        ["Priority"] = {};
        ["Whitelisted"] = {};
        ["DrawFieldOfView"] = false;
        ["UseFieldOfView"] = false;
        ["Radius"] = 100;
        ["FieldOfViewColor"] = Color3.new(1,1,1);
        ["FieldOfViewTransparency"] = 0.25;
        ["Sides"] = 100;
        ["HitChance"] = 100;
        ["Snapline"] = false;
        ["SnaplineColor"] = Color3.new(1,1,1);
        ["Damage"] = 100;
        ["SnaplineThickness"] = 1;
    };

    ["WorldVisuals"] = {
        ["SaturationEnabled"] = false;
        ["Saturation_Value"] = 1;

        ["FogColorEnabled"] = false;
        ["FogColor"] = Color3.new(1,1,1);

        ["AmbientEnabled"] = false;
        ["AmbientColor"] = Color3.new(1,1,1);

        ["FieldOfViewEnabled"] = false;
        ["FieldOfViewValue"] = 70;

        ["Fullbright"] = false;
    };

    ["MiscSettings"] = {
        ["Hitbox_Expander"] = {
            ["Enabled"] = false;
            ["Multiplier"] = 15;
            ["Color"] = Color3.new(1,1,1);
            ["Transparency"] = 0;
            ["Type"] = "Block";
            ["Material"] = "ForceField";
            ["Whitelist"] = {};
            ["Part"] = "HumanoidRootPart";
        };

        ["ModifySpeed"] = {
            ["Enabled"] = false;
            ["Value"] = 16;
        };

        ["ModifyJump"] = {
            ["Enabled"] = false;
            ["Infinity"] = false;
            ["Value"] = 50;
        };

        ["Fly"] = {
            ["Enabled"] = false;
            ["Type"] = "CFrame";
            ["Speed"] = 50;
        };

        ["SpinBot"] = {
            ["Enabled"] = false;
            ["Speed"] = 35;
        };

        ["No-Clip"] = false;
    };

    ["Guns"] = {};

    ESP = {
        Enabled = false,
        TeamCheck = false,
        MaxDistance = 500,
        FontSize = 12,
        Font = Enum.Font.Code,
        FadeOut = {
            OnDistance = false,
            OnDeath = true,
            OnLeave = false,
        },
        Options = { 
            Teamcheck = true, TeamcheckRGB = Color3.fromRGB(0, 255, 0),
            Friendcheck = true, FriendcheckRGB = Color3.fromRGB(0, 255, 0),
            Highlight = false, HighlightRGB = Color3.fromRGB(255, 0, 0),
        },
        Drawing = {
            Chams = {
                Enabled  = false,
                Thermal = true,
                FillRGB = Color3.fromRGB(119, 120, 255),
                Fill_Transparency = 80,
                OutlineRGB = Color3.fromRGB(0,0,0),
                Outline_Transparency = 80,
                VisibleCheck = false,
            },
            Names = {
                Enabled = false,
                Transparency = 0,
                RGB = Color3.fromRGB(255, 255, 255),
            },
            Flags = {
                Enabled = false,
            },
            Distances = {
                Enabled = false, 
                Position = "Bottom",
                Transparency = 0,
                RGB = Color3.fromRGB(255, 255, 255),
            },
            Weapons = {
                Enabled = false, WeaponTextRGB = Color3.fromRGB(119, 120, 255),
                Outlined = false,
                Gradient = false,
                Transparency = 0,
                GradientRGB1 = Color3.fromRGB(255, 255, 255), GradientRGB2 = Color3.fromRGB(119, 120, 255),
            },
            Inventory = {
                Enabled = false, RGB = Color3.fromRGB(255, 255, 255),
                Transparency = 0,
            },
            Healthbar = {
                Enabled = false,  
                HealthText = false, Lerp = true, HealthTextRGB = Color3.fromRGB(0, 255, 0),
                Width = 2.5,
                Transparency = 0,
                HealthTextTransparency = 0,
                Gradient = true, GradientRGB1 = Color3.fromRGB(255, 0, 0), GradientRGB2 = Color3.fromRGB(0,255,0)
            },
            Boxes = {
                Animate = true,
                RotationSpeed = 300,
                Gradient = false, GradientRGB1 = Color3.fromRGB(119, 120, 255), GradientRGB2 = Color3.fromRGB(0, 0, 0), 
                GradientFill = true, GradientFillRGB1 = Color3.fromRGB(119, 120, 255), GradientFillRGB2 = Color3.fromRGB(0, 0, 0), 
                Filled = {
                    Enabled = false,
                    Transparency = 0.75,
                    RGB = Color3.fromRGB(0, 0, 0),
                },
                Full = {
                    Enabled = true,
                    Transparency = 0,
                    RGB = Color3.fromRGB(255, 255, 255),
                },
                Bounding = {
                    Enabled = false,
                    Transparency = 0,
                    RGB = Color3.fromRGB(255, 255, 255),
                },
                Corner = {
                    Enabled = false,
                    Transparency = 0,
                    RGB = Color3.fromRGB(255, 255, 255),
                },
            };
        };
        Connections = {
            RunService = Services.RunService;
        };
        Fonts = {};
    };
};

--[[if not Solara and Game_Name == "The Bronx" then
    local DTC;

    repeat task.wait(.25) LPH_NO_VIRTUALIZE(function()
        for Index, Value in next, getgc(true) do
            if type(Value) == "table" then
                local Detected = rawget(Value, "Detected");
                if type(Detected) == "function" then
                    DTC = Detected
                end;
            end;
        end;
    end)()

    until DTC ~= nil
end]]

getgenv().library = {
    directory = "Scorpio.Hub",
    folders = {
        "/fonts",
        "/configs",
        "/assets"
    },
    priority = {},
    whitelist = {},
    flags = {},
    config_flags = {},
    connections = {},   
    notifications = {notifs = {}},
    current_open; 
}

local Images = {"ESP.png", "World.png", "Wrench.png", "Settings.png", "Node.png", "cursor.png", "Bullet.png", "Snapline.png", "Pistol.png", "folder.png", "UZI.png", "FieldOfView2.png", "Lock.png", "Aimlock.png", "Cash.png", "Wheatt.png", "Pickkaxe.png", "unlocked.png"}

for _, path in next, library.folders do 
    makefolder(library.directory .. path)
end

for Index, Value in Images do
    local Location = library.directory.."/assets/"..Value
    if not isfile(Location) then
        local ImageDiddyAhhBlud = game:HttpGet("https://[Log in to view URL]"..Value)
        repeat wait() until ImageDiddyAhhBlud ~= nil
        writefile(Location, ImageDiddyAhhBlud)
    end
end

GetImage = LPH_NO_VIRTUALIZE(function(Name)
    local Location = library.directory.."/assets/"..Name
    if isfile(Location) then
        return getcustomasset(Location)
    end
end)

local Collide_Data = {}

local DefaultPlayerSettings = {}

if not Services.Players.LocalPlayer.Character then
    Services.Players.LocalPlayer.CharacterAdded:Wait()
    task.wait(1)
end

for Index, Value in Services.Players.LocalPlayer.Character:GetDescendants() do
    pcall(LPH_NO_VIRTUALIZE(function()
        if Value.CanCollide == true then
            Collide_Data[Value.Name] = true
        end
    end))
end

if not Solara then
    if Game_Name == "BlockSpin" then
        LPH_JIT_MAX(function()
            local Repr = loadstring(game:HttpGet("https://[Log in to view URL]"))()

		local Required = {
			"hookfunction",
			"getthreadcontext",
			"getconnections",
			"setthreadcontext",
			"isexecutorclosure",
			"hookmetamethod",
			"getrenv",
		}

		for _, v in next, Required do
			if not getgenv()[v] then
				game:GetService("Players").LocalPlayer:Kick(`Your executor does not support [{v}], which is REQUIRED to use the BlockSpin script.`)
			end
		end

		local OldDebugTraceback, OldDebugInfo, OldFenv = debug.traceback, debug.info, getfenv

		local BlacklistedRemoteArgumentNeedles = {
			"invalid_entry",
			"replicate_bil",
		}

		local BlacklistedCallerNeedles = {
			"Obfuscated",
		}

		if not shared.Hooking then
			shared.Hooking = {}
		end

		if not shared.Hooking.IncludeInStackFunctions then
			shared.Hooking.IncludeInStackFunctions = {}
		end

		shared.SafeHook = function(Original, Replacement)
			shared.Hooking.IncludeInStackFunctions[Original] = true
			return hookfunction(Original, Replacement)
		end

		local CoreGui = game:GetService("CoreGui")
		local RobloxGuis = {
			"RobloxGui",
			"TeleportGui",
			"RobloxPromptGui",
			"RobloxLoadingGui",
			"PlayerList",
			"RobloxNetworkPauseNotification",
			"PurchasePrompt",
			"HeadsetDisconnectedDialog",
			"ThemeProvider",
			"DevConsoleMaster",
		}

		local function FilterTable(InputTable)
			local OldContext = getthreadcontext()
			setthreadcontext(7)

			local Filtered = {}
			local GameInstance = game

			for Index, Value in ipairs(InputTable) do
				if typeof(Value) ~= "Instance" then
					table.insert(Filtered, Value)
				else
					if Value == CoreGui or Value == GameInstance then
						-- Insert only the default Roblox GUIs
						for _, GuiName in pairs(RobloxGuis) do
							local GuiInstance = CoreGui:FindFirstChild(GuiName)
							if GuiInstance then
								table.insert(Filtered, GuiInstance)
							end
						end

						if Value == GameInstance then
							for _, Child in pairs(GameInstance:GetChildren()) do
								if Child ~= CoreGui then
									table.insert(Filtered, Child)
								end
							end
						end
					else
						if not CoreGui:IsAncestorOf(Value) then
							table.insert(Filtered, Value)
						else
							-- Only include if it's a descendant of one of the default GUIs
							for _, DefaultGuiName in pairs(RobloxGuis) do
								local DefaultGuiInstance = CoreGui:FindFirstChild(DefaultGuiName)
								if DefaultGuiInstance then
									if Value == DefaultGuiInstance or DefaultGuiInstance:IsAncestorOf(Value) then
										table.insert(Filtered, Value)
										break
									end
								end
							end
						end
					end
				end
			end

			setthreadcontext(OldContext)
			return Filtered
		end

		local BlacklistedAssets = {}
		local ContentProvider = game:GetService("ContentProvider")

		local function logDebugMessage(...)
			local Strings = {}

			for _, v in next, { ... } do
				table.insert(Strings, tostring(v))
			end

			local Message = table.concat(Strings, ", ")
			warn(`{Message}\n`)
		end

		local function ValidTraceback(s)
			local dotPos = string.find(s, "%.")
			local colonPos = string.find(s, ":")

			if not dotPos then
				return false
			end

			if not colonPos then
				return true
			end

			return dotPos < colonPos
		end

		local function TracebackLines(str)
			local pos = 1
			return function()
				if not pos then
					return nil
				end
				local p1, p2 = string.find(str, "\r?\n", pos)
				local line
				if p1 then
					line = str:sub(pos, p1 - 1)
					pos = p2 + 1
				else
					line = str:sub(pos)
					pos = nil
				end
				return line
			end
		end

		OldDebugTraceback = shared.SafeHook(getrenv().debug.traceback, function()
			if checkcaller() then
				return OldDebugTraceback()
			end

			local Traceback = OldDebugTraceback()
			local NewTraceback = {}

			for Line in TracebackLines(Traceback) do
				if not ValidTraceback(Line) then
					continue
				end

				table.insert(NewTraceback, Line)
			end

			return table.concat(NewTraceback, "\n")
		end)

		OldDebugInfo = shared.SafeHook(getrenv().debug.info, function(...)
			local ToInspect, LevelOrInfo, _ThreadInfo = ...

			if
				checkcaller()
				or typeof(ToInspect) == "function"
				or typeof(ToInspect) == "thread"
				or not pcall(function(LevelOrInfo) -- Validate arguments
					OldDebugInfo(function() end, LevelOrInfo)
				end, LevelOrInfo)
			then
				return OldDebugInfo(...)
			end

			local ReconstructedConstructedStack = {}
			for Level = 2, 19997 do
				local Function, Source, Line, Name, NumberOfArgs, Varargs = OldDebugInfo(Level, "fslna")

				if not Function or not Source or not Line or not Name then
					break
				end

				if isexecutorclosure(Function) and not shared.Hooking.IncludeInStackFunctions[Function] then
					continue
				end

				table.insert(ReconstructedConstructedStack, {
					f = Function,
					s = Source,
					l = Line,
					n = Name,
					a = { NumberOfArgs, Varargs },
				})
			end

			local InfoLevel = ReconstructedConstructedStack[ToInspect]

			if not InfoLevel then
				-- Max level is 19997 so this guarantees that it will return nothing
				return OldDebugInfo(3e4, LevelOrInfo)
			end

			local ReturnResult = {}
			for idx, info in string.split(LevelOrInfo, "") do
				local Value = InfoLevel[info]

				if typeof(Value) == "table" then
					for _, v in Value do
						table.insert(ReturnResult, v)
					end

					continue
				end

				table.insert(ReturnResult, Value)
			end

			return table.unpack(ReturnResult, 1, #ReturnResult)
		end)

		OldFenv = shared.SafeHook(getrenv().getfenv, function(...)
			if checkcaller() then
				return OldFenv(...)
			end

			local ToInspect = ...

			if ToInspect == 0 then
				return getrenv()
			elseif ToInspect == nil then
				return OldFenv(...)
			end

			local Success, ResultingEnv = pcall(function()
				if typeof(ToInspect) == "number" then
					return OldFenv(ToInspect + 3)
				end

				return OldFenv(ToInspect)
			end)

			if not Success then
				return OldFenv(...)
			end

			if typeof(ToInspect) == "function" then
				if typeof(ResultingEnv["getgenv"]) == "function" and isexecutorclosure(ResultingEnv["getgenv"]) then
					return getrenv()
				end

				return ResultingEnv
			end

			local ReconstructedConstructedStack = {}
			for Level = 2, 19997 do
				local StackInfoSuccess, Data = pcall(function()
					return {
						Environement = OldFenv(Level + 3),
						Function = OldDebugInfo(Level + 3, "f"),
					}
				end)

				if not StackInfoSuccess or not Data then
					break
				end

				local Environement = Data.Environement
				-- local Function = Data.Function

				if typeof(Environement["getgenv"]) == "function" and isexecutorclosure(Environement["getgenv"]) then
					Environement = getrenv()
				end

				table.insert(ReconstructedConstructedStack, Environement)
			end

			local InfoLevel = ReconstructedConstructedStack[ToInspect]

			if not InfoLevel then
				-- Max level is 19997 so this guarantees that it will return error
				return OldFenv(3e4)
			end

			return InfoLevel
		end)

		-- Disable all blacklisted connections

		local BlacklistedSignals = {
			game:GetService("LogService").MessageOut,
			game:GetService("ScriptContext").Error,
		}

		local DummySignals = {}

		for _, Signal in next, BlacklistedSignals do
			for _, Connection in next, getconnections(Signal) do
				-- dawg why does volcano return a thread for Connection.Function
				if
					(Connection.Function
					and type(Connection.Function) == "function"
					and isexecutorclosure(Connection.Function)) or
					Connection.Function == nil -- CoreScript connections return nil for Function
				then
					continue
				else
					Connection:Disable()
				end
			end
		end

		local OldIndex
		OldIndex = hookmetamethod(game, "__index", function(Self, Key)
			if checkcaller() then
				return OldIndex(Self, Key)
			end
			
			local Result = OldIndex(Self, Key)

			for _, BlacklistedSignal in next, BlacklistedSignals do
				if Result == BlacklistedSignal then
					if not DummySignals[BlacklistedSignal] then
						DummySignals[BlacklistedSignal] = Instance.new("BindableEvent").Event
					end

					return DummySignals[BlacklistedSignal]
				end
			end

			return Result
		end)

		local OldNewIndex
		OldNewIndex = hookmetamethod(game, "__newindex", function(Self, Key, Value)
			local AssetIndexes = {
				["MeshID"] = true,
				["TextureID"] = true,
				["MeshId"] = true,
				["TextureId"] = true,
				["Image"] = true,
				["SoundId"] = true,
				["AnimationId"] = true,
			}

			if AssetIndexes[Key] then
				local AssetId = Value

				if typeof(AssetId) == "string" then
					AssetId = tonumber(AssetId:match("%d+"))
				end

				if AssetId and not BlacklistedAssets[AssetId] then
					-- Check if the asset is already loaded so we don't accidentally blacklist a legitimate asset
					local AssetLoaded = false
					if
						ContentProvider:GetAssetFetchStatus("rbxassetid://" .. AssetId)
						== Enum.AssetFetchStatus.Success
					then
						AssetLoaded = true
					end

					if checkcaller() then
						if not AssetLoaded then
							BlacklistedAssets[AssetId] = true
						end
					else
						if BlacklistedAssets[AssetId] then
							-- The game is doing a sanity check where it intentionally loads a blacklisted asset
							-- to see if the executor is blocking it. We need to remove it from the blacklist
							-- so it doesn't get blocked.
							BlacklistedAssets[AssetId] = nil
						end
					end
				end
			end

			if Key == "CanCollide" and (not checkcaller()) then
				local Name = debug.info(3, "n")
				if Name and Name:match("Obfuscated") then
					return coroutine.yield()
				end
			end

			return OldNewIndex(Self, Key, Value)
		end)

		-- Now that we will proxy and record all assets the executor uses, we can load the hook.

		local OldPreloadAsync
		OldPreloadAsync = shared.SafeHook(
			ContentProvider.PreloadAsync,
			function(Self, Assets, OriginalCallback)
				if Self ~= ContentProvider or type(Assets) ~= "table" or type(OriginalCallback) ~= "function" then --note: callback can be nil but in that case it's useless anyways
					return OldPreloadAsync(Self, Assets, OriginalCallback)
				end

				--check for any errors that I might've missed (such as table being {[2] = "something"} which causes "Unable to cast to Array")
				local err
				task.spawn(
					function() --TIL calling a C yield function inside a C yield function is a bad idea ("cannot resume non-suspended coroutine")
						local s, e = pcall(OldPreloadAsync, Self, Assets)
						if not s and e then
							err = e
						end
					end
				)

				if err then
					return OldPreloadAsync(Self, Assets) --don't pass the callback, just in case
				end

				Assets = FilterTable(Assets)
				return OldPreloadAsync(Self, Assets, OriginalCallback)
			end
		)
        end)()

        local Sprint_Module = require(game:GetService("ReplicatedStorage").Modules.Game.Sprint)
        local Function_Table_UpValue = debug.getupvalue(Sprint_Module.loaded, 11)

        local _getfenv; _getfenv = hookfunction(getrenv().getfenv, LPH_NO_VIRTUALIZE(function(level)
            if debug.traceback():find("validity_check") then
                return setmetatable({}, {
                    __index = function(...)
                        return nil
                    end
                });
            end;

            return _getfenv(level);
        end));

        getgenv().Send_Remote = Function_Table_UpValue.send;

        getgenv().AntiCheatBypass = true;
    end

    if Game_Name == "Universal" or Game_Name == "Road To Riches" or Game_Name == "Street Life" or Game_Name == "The Bronx" or Game_Name == "Town" and not Solara then
        local DTC;

        LPH_NO_VIRTUALIZE(function()
            for Index, Value in next, getgc(true) do
                if type(Value) == "table" then
                    local Detected = rawget(Value, "Detected");
                    local Kill = rawget(Value, "Kill");
                    if type(Detected) == "function" and not DTC then
                        DTC = Detected
                        hookfunction(Detected, function(...)
                            return true
                        end);
                    end;
                    if rawget(Value, "Variables") and rawget(Value, "Process") and typeof(Kill) == "function" then          
                        hookfunction(Kill, function(...)
                        end)
                    end;
                end;
            end;
        end)()

        local Old; Old = hookfunction(getrenv().debug.info, LPH_NO_UPVALUES(function(...)
            local LevelOrFunc, Info = ...
            if DTC and LevelOrFunc == DTC then
                return coroutine.yield(coroutine.running())
            end
            return Old(...)
        end));

        getgenv().AntiCheatBypass = true
    end

    if Game_Name == "South Bronx" and not Solara then
        for Index, Value in getconnections(Services.ScriptContext.Error) do
            pcall(function()
                Value:Disable()
            end)

            pcall(function()
                Value:Disconnect()
            end)
        end

        for Index, Value in Services.ReplicatedStorage.Workspace.Homeless:GetChildren() do
            Value.Parent = Services.Workspace.Folders.HomelessPeople
        end

        for Index, Value in Services.Workspace.Folders.HomelessPeople:GetChildren() do
            Value:GetPropertyChangedSignal('Parent'):Connect(LPH_NO_VIRTUALIZE(function()
                task.wait()
                Value.Parent = Services.Workspace.Folders.HomelessPeople
            end))
        end

        for Index, Value in Services.ReplicatedStorage.Workspace.NPCs:GetChildren() do
            Value.Parent = Services.Workspace.Folders.NPCs
        end

        for Index, Value in Services.Workspace.Folders.NPCs:GetChildren() do
            Value:GetPropertyChangedSignal('Parent'):Connect(LPH_NO_VIRTUALIZE(function()
                task.wait()
                Value.Parent = Services.Workspace.Folders.NPCs
            end))
        end

        local task_wait_hook; task_wait_hook = hookfunction(task.wait, LPH_NO_UPVALUES(function(...)
            local args = {...}
            local traceback = debug.traceback()

            if args[1] == 2.5 and traceback:find("Loop") and traceback:find("NPCs") then 
                return false
            end

            return task_wait_hook (...)
        end))

        for Index, Value in getconnections(Services.Players.LocalPlayer.Idled) do
            if Value["Disable"] then
                Value["Disable"](Value)
            end

            if Value["Disconnect"] then
                Value["Disconnect"](Value)
            end
        end

        local get_nil_instance = LPH_JIT_MAX(function(name, class) 
            local found = nil 

            for _, instance in getnilinstances() do 
                local instanceName = instance.Name 

                if class then
                    if not instance:IsA(class) then continue end

                    if instanceName:find(name) then 
                        found = instance
                    end
                else
                    if instanceName:find(name) then 
                        found = instance
                    end
                end
            end

            return found
        end)

        repeat task.wait() until get_nil_instance("Gun", "ModuleScript")

        local gun_module = getsenv(get_nil_instance("Gun", "ModuleScript"))

        local old; old = hookfunction(gun_module.x, LPH_NO_UPVALUES(function()
            return nil
        end))

        --[[local Old; Old = hookmetamethod(game, "__index", LPH_NO_VIRTUALIZE(function(...)
            local Self, Index = ...

            if checkcaller() then
                return Old(...)
            end

            if Index ~= "CanCollide" then
                return Old(...)
            end

            if typeof(Self) == "Instance" and Self.Name and Collide_Data[Self.Name] then
                return Collide_Data[Self.Name]
            end

            if typeof(Self) == "Instance" and Self.Name and Self.Name == "Table" then
                return true
            end

            return Old(...)
        end))]]

        getgenv().AntiCheatBypass = true
    end

    repeat Services.RunService.RenderStepped:Wait() until getgenv().AntiCheatBypass == true
end

local OldLightingSettings = {}

OldLightingSettings["Brightness"] = Lighting.Brightness
OldLightingSettings["ClockTime"] = Lighting.ClockTime
OldLightingSettings["FogEnd"] = Lighting.FogEnd
OldLightingSettings["GlobalShadows"] = Lighting.GlobalShadows
OldLightingSettings["OutdoorAmbient"] = Lighting.OutdoorAmbient

do
    LPH_JIT_MAX(function()
        local getnamecallmethod, hookmetamethod, hookfunction = (getnamecallmethod ~= nil) and clonefunction(getnamecallmethod) or function(...) end, (hookmetamethod ~= nil) and clonefunction(hookmetamethod) or function(...) end, (hookfunction ~= nil) and clonefunction(hookfunction) or function(...) end
        _fireproximityprompt = fireproximityprompt
        if Solara or not fireproximityprompt or string.find(identifyexecutor(), "MacSploit") then
            getgenv().fireproximityprompt = LPH_NO_VIRTUALIZE(function(self, vuln)
                local prompt_settings = {["HoldDuration"] = self.HoldDuration; ["RequiresLineOfSight"] = self.RequiresLineOfSight};

                if not vuln then
                    self.HoldDuration = 0; self.RequiresLineOfSight = false;

                    self:InputHoldBegin()

                    if not (self.HoldDuration == 0) then
                        task.wait(self.HoldDuration)
                    end

                    self:InputHoldEnd()

                    for Index, Value in prompt_settings do
                        self[Index] = Value
                    end
                else
                    self.HoldDuration = 0; self.RequiresLineOfSight = false;

                    _fireproximityprompt(self)
                end
            end)
        end

        local Tint = Instance.new("ColorCorrectionEffect", Lighting)
        local OldSaturation = Lighting.ColorCorrection.Saturation
        local OldFogColor = Lighting.FogColor
        local Set_Fog, Set_Fov, Set_FullBright = false, false, false
        RunService.PreRender:Connect(LPH_NO_VIRTUALIZE(function()
            if Config.WorldVisuals.SaturationEnabled then
                Lighting.ColorCorrection.Saturation = Config.WorldVisuals.Saturation_Value
            else
                Lighting.ColorCorrection.Saturation = OldSaturation
            end

            if Config.WorldVisuals.Fullbright then
                Set_FullBright = false
                Lighting.Brightness = 2
                Lighting.ClockTime = 14
                Lighting.FogEnd = 100000
                Lighting.GlobalShadows = false
                Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
            else
                if not Set_FullBright then
                    Set_FullBright = true
                    
                    Lighting.Brightness = OldLightingSettings.Brightness
                    Lighting.FogEnd = OldLightingSettings.FogEnd
                    Lighting.GlobalShadows = OldLightingSettings.GlobalShadows
                    Lighting.OutdoorAmbient = OldLightingSettings.OutdoorAmbient
                end
            end

            if Config.WorldVisuals.AmbientEnabled then
                Tint.TintColor = Config.WorldVisuals.AmbientColor
            else
                Tint.TintColor = Color3.new(1,1,1)
            end

            if Config.WorldVisuals.FogColorEnabled then
                Set_Fog = false
                Lighting.FogColor = Config.WorldVisuals.FogColor
            else
                if not Set_Fog then
                    Set_Fog = true

                    Lighting.FogColor = OldFogColor
                end
            end

            if Config.WorldVisuals.FieldOfViewEnabled then
                Set_Fov = false
                Camera.FieldOfView = Config.WorldVisuals.FieldOfViewValue
            else
                if not Set_Fov then 
                    Set_Fov = true
                    Camera.FieldOfView = 70
                end
            end
        end))

        local Stamina_Table = {};

        if Game_Name == "South Bronx" and not Solara then
            for Index, Value in getgc(true) do
                if typeof(Value) == "table" and rawget(Value, "Stamina") then
                    Stamina_Table = Value
                end
            end
        end;

        local Set_Speed, Set_JumpPower, Set_Spectate = false, false, false
        if Game_Name == "The Bronx" then
            RunService:BindToRenderStep("MiscSettings", 1000 , LPH_NO_VIRTUALIZE(function(Delta)
                if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("Humanoid") or not LocalPlayer.Character:FindFirstChild("Head") then return end

                if not (Game_Name == "South Bronx") and not (Game_Name == "Road To Riches") then
                    if Config.MiscSettings.ModifySpeed.Enabled then
                        Set_Speed = false
                        
                        local Direction = Vector3.zero
                        if UserInputService:IsKeyDown(Enum.KeyCode.W) then Direction += Camera.CFrame.LookVector end
                        if UserInputService:IsKeyDown(Enum.KeyCode.S) then Direction -= Camera.CFrame.LookVector end
                        if UserInputService:IsKeyDown(Enum.KeyCode.A) then Direction -= Camera.CFrame.RightVector end
                        if UserInputService:IsKeyDown(Enum.KeyCode.D) then Direction += Camera.CFrame.RightVector end

                        if Direction.Magnitude > 0 then
                            LocalPlayer.Character.Humanoid:ChangeState(0)

                            LocalPlayer.Character.HumanoidRootPart.CFrame += Direction.Unit * Config.MiscSettings.ModifySpeed.Value * Delta

                            if LocalPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.FallingDown then LocalPlayer.Character.Humanoid:ChangeState(2) end
                        end
                    else
                        if not Set_Speed then
                            Set_Speed = true;
                            LocalPlayer.Character.Humanoid:ChangeState(2)
                            LocalPlayer.Character:FindFirstChild("Humanoid").WalkSpeed = UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) and 16 or 7
                        end
                    end
                
                    if Config.MiscSettings.ModifyJump.Enabled then
                        Set_JumpPower = false
                        LocalPlayer.Character:FindFirstChild("Humanoid").JumpHeight = Config.MiscSettings.ModifyJump.Value
                    else
                        if not Set_JumpPower then
                            Set_JumpPower = true;
                            LocalPlayer.Character:FindFirstChild("Humanoid").JumpHeight = 7
                        end
                    end
                end

                if Config.TheBronx.PlayerUtilities.SpectatePlayer then
                    Set_Spectate = false
                    local Subject = Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer) and Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character and Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("Humanoid")

                    if not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer) or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("Humanoid") then
                        Subject = LocalPlayer.Character.Humanoid
                    end

                    Camera.CameraSubject = Subject
                else
                    if not Set_Spectate then
                        Set_Spectate = true

                        Camera.CameraSubject = LocalPlayer.Character.Humanoid
                    end
                end
            end))
        else
            RunService:BindToRenderStep("MiscSettings", 1000 , LPH_NO_VIRTUALIZE(function()
                if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("Humanoid") or not LocalPlayer.Character:FindFirstChild("Head") then return end

                if not (Game_Name == "South Bronx") and not (Game_Name == "Road To Riches") then
                    if Config.MiscSettings.ModifySpeed.Enabled then
                        Set_Speed = false
                        LocalPlayer.Character:FindFirstChild("Humanoid").WalkSpeed = Config.MiscSettings.ModifySpeed.Value
                    else
                        if not Set_Speed then
                            Set_Speed = true;
                            LocalPlayer.Character:FindFirstChild("Humanoid").WalkSpeed = 16
                        end
                    end
                
                    if Config.MiscSettings.ModifyJump.Enabled then
                        Set_JumpPower = false
                        LocalPlayer.Character:FindFirstChild("Humanoid").JumpPower = Config.MiscSettings.ModifyJump.Value
                    else
                        if not Set_JumpPower then
                            Set_JumpPower = true;
                            LocalPlayer.Character:FindFirstChild("Humanoid").JumpPower = 50
                        end
                    end
                end

                if Config.South_Bronx.PlayerUtilities.SpectatePlayer then
                    Set_Spectate = false
                    local Subject = Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer) and Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer).Character and Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("Humanoid")

                    if not Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer) or not Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer).Character or not Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("Humanoid") then
                        Subject = LocalPlayer.Character.Humanoid
                    end

                    Camera.CameraSubject = Subject
                else
                    if not Set_Spectate then
                        Set_Spectate = true

                        Camera.CameraSubject = LocalPlayer.Character.Humanoid
                    end
                end

                if Game_Name == "South Bronx" then
                    if LocalPlayer.Character.Head:FindFirstChild("RankTag") then
                        --if not getgenv().Window then return end

                        LocalPlayer.Character.Head:FindFirstChild("RankTag").MainFrame.NameLabel.Visible = not Config.South_Bronx.LocalPlayer_Config.HideName
                    end
                end

                if Game_Name == "South Bronx" and Solara then
                    return
                end

                if Game_Name == "South Bronx" and Config.South_Bronx.LocalPlayer_Config.InfiniteStamina and not Solara then
                    Stamina_Table.Stamina = 100
                end
            end))
        end

        WorldToScreenPoint = Camera.WorldToScreenPoint;
        GetMouseLocation = UserInputService.GetMouseLocation;
        FindFirstChild = Workspace.FindFirstChild;
        GetPlayers = Players.GetPlayers;
        GetChildren = Workspace.GetChildren;
        GetPartsObscuringTarget = Camera.GetPartsObscuringTarget;
        GetDescendants = Workspace.GetDescendants;
        IsA = Workspace.IsA;
        FindFirstChildOfClass = Workspace.FindFirstChildOfClass

        DistanceCheck = LPH_NO_VIRTUALIZE(function(Player, Distance)
            if not Player then
                return false
            end

            if Player.Character and FindFirstChild(Player.Character,"HumanoidRootPart") then
                local Magnitude = (Camera.CFrame.Position - FindFirstChild(Player.Character,"HumanoidRootPart").Position).Magnitude;

                return Distance > Magnitude
            end;

            return false            
        end);

        WallCheck = LPH_NO_VIRTUALIZE(function(Character)
            local Origin = Camera.CFrame.Position;
            local Position = FindFirstChild(Character, "Head").Position;
            local Parameters = RaycastParams.new();
        
            Parameters.FilterDescendantsInstances = { LocalPlayer.Character, Camera, Character };
            Parameters.FilterType = Enum.RaycastFilterType.Blacklist;
            Parameters.IgnoreWater = true;
        
            return not Workspace:Raycast(Origin, Position - Origin, Parameters)            
        end)

        GetClosestPlayerToMouseAimbot = LPH_NO_VIRTUALIZE(function()
            if not Config.Aimlock.Enabled then return end
            if not Config.Aimlock.Aiming then return end
            
            local PriorityPlayers = {}

            local Plrs = Players:GetPlayers()

            if library.priority[1] then
                for Index, Value in Plrs do
                    if Value == LocalPlayer then continue end;
                    if not table.find(library.priority, Value.Name) then continue end;
                    if table.find(library.whitelist, Value.Name) then continue end;
                    if (Value.Character and Value.Character:FindFirstChild(Config.Aimlock.TargetPart) and Value.Character:FindFirstChild("Humanoid") and Value.Character:FindFirstChild("Humanoid").Health > (Game_Name == "South Bronx" and 4 or 0)) then
                        if FindFirstChildOfClass(Value.Character, "ForceField") then continue end
                        if FindFirstChild(Value.Character, "Torso") and FindFirstChild(Value.Character, "Torso").Material == Enum.Material.ForceField then continue end
                        if Value.Character.Parent == nil then continue end
                        local TargetPart = Value.Character:FindFirstChild(Config.Aimlock.TargetPart)
                        local MouseLocation = Vector2.new(Mouse.X, Mouse.Y)
                        local TargetPartPosition, OnScreen = Camera:WorldToScreenPoint(TargetPart.Position)
                        local Radius = Config.Aimlock.UseFieldOfView and Config.Aimlock.Radius or 9e9
                        local Magnitude = (Vector2.new(TargetPartPosition.X,TargetPartPosition.Y) - MouseLocation).Magnitude
                        if not DistanceCheck(Value, Config.Aimlock.MaxDistance) then continue end

                        if Radius > Magnitude and OnScreen and Value then
                            if (Config.Aimlock.WallCheck and not WallCheck(Value.Character)) then continue end
                            table.insert(PriorityPlayers, {Player = Value, Distance = Magnitude})
                        end
                    end;
                end;
                
                table.sort(PriorityPlayers, function(Player , PlayerTwo)
                    return Player.Distance<PlayerTwo.Distance
                end)

                if PriorityPlayers[1] then
                    return PriorityPlayers[1].Player
                end;
            end;

            local ValidPlayers = {};

            for Index, Value in Plrs do
                if Value == LocalPlayer then continue end;
                if table.find(library.whitelist, Value.Name) then continue end;
                if (Value.Character and Value.Character:FindFirstChild(Config.Aimlock.TargetPart) and Value.Character:FindFirstChild("Humanoid") and Value.Character:FindFirstChild("Humanoid").Health > (Game_Name == "South Bronx" and 4 or 0)) then
                    if FindFirstChildOfClass(Value.Character, "ForceField") then continue end
                    if FindFirstChild(Value.Character, "Torso") and FindFirstChild(Value.Character, "Torso").Material == Enum.Material.ForceField then continue end
                    if Value.Character.Parent == nil then continue end
                    local TargetPart = Value.Character:FindFirstChild(Config.Aimlock.TargetPart)
                    local MouseLocation = Vector2.new(Mouse.X, Mouse.Y)
                    local TargetPartPosition, OnScreen = Camera:WorldToScreenPoint(TargetPart.Position)
                    local Radius = Config.Aimlock.UseFieldOfView and Config.Aimlock.Radius or 9e9
                    local Magnitude = (Vector2.new(TargetPartPosition.X,TargetPartPosition.Y) - MouseLocation).Magnitude
                    if not DistanceCheck(Value, Config.Aimlock.MaxDistance) then continue end

                    if Radius > Magnitude and OnScreen and Value then
                        if (Config.Aimlock.WallCheck and not WallCheck(Value.Character)) then continue end
                        table.insert(ValidPlayers, {Player = Value, Distance = Magnitude})
                    end;
                end;
            end;
            
            table.sort(ValidPlayers, function(Player , PlayerTwo)
                return Player.Distance<PlayerTwo.Distance
            end);
            
            if ValidPlayers[1] then
                return ValidPlayers[1].Player
            end;

            return nil
        end);

        GetClosestPlayerToPlayer = LPH_NO_VIRTUALIZE(function(Player)
            local _Players = {}

            if not Player.Character or not Player.Character:FindFirstChild("HumanoidRootPart") or not Player.Character:FindFirstChild("Humanoid") then return end

            for Index, Value in Players:GetPlayers() do
                if Player == LocalPlayer and Value == LocalPlayer then continue end

                if not Value.Character or not Value.Character:FindFirstChild("HumanoidRootPart") or not Value.Character:FindFirstChild("Humanoid") then continue end
                if Value.Character:FindFirstChild("Humanoid").Health == 0 then continue end

                if (Player.Character.HumanoidRootPart.Position - Value.Character.HumanoidRootPart.Position).Magnitude > 15 then continue end

                table.insert(_Players, {Plr = Value, Range = (Player.Character.HumanoidRootPart.Position - Value.Character.HumanoidRootPart.Position).Magnitude})
            end

            table.sort(_Players, function(...)
                return select(1, ...).Range < select(2, ...).Range
            end)

            return _Players[1] and _Players[1].Plr or nil
        end);

        GetClosestPlayerToMouseSilent = LPH_NO_VIRTUALIZE(function()
            if not Config.Silent.Enabled then return end
            if not Config.Silent.Targetting then return end
            
            local PriorityPlayers = {}

            local Plrs = GetPlayers(Players)

            if library.priority[1] then
                for Index, Value in Plrs do
                    if Value == LocalPlayer then continue end;
                    if not table.find(library.priority, Value.Name) then continue end;
                    if table.find(library.whitelist, Value.Name) then continue end;
                    if (Value.Character and FindFirstChild(Value.Character, "HumanoidRootPart") and FindFirstChild(Value.Character,"Humanoid") and FindFirstChild(Value.Character,"Humanoid").Health > (Game_Name == "South Bronx" and 4 or 0)) then
                        if FindFirstChildOfClass(Value.Character, "ForceField") then continue end
                        if FindFirstChild(Value.Character, "Torso") and FindFirstChild(Value.Character, "Torso").Material == Enum.Material.ForceField then continue end
                        if Value.Character.Parent == nil then continue end
                        local TargetPart = FindFirstChild(Value.Character, "HumanoidRootPart");
                        local MouseLocation = Vector2.new(Mouse.X, Mouse.Y)
                        local TargetPartPosition, OnScreen = WorldToScreenPoint(Camera, TargetPart.Position);
                        local Radius = Config.Silent.UseFieldOfView and Config.Silent.Radius or 9e9;
                        local Magnitude = (Vector2.new(TargetPartPosition.X,TargetPartPosition.Y) - MouseLocation).Magnitude;
                        if not DistanceCheck(Value, Config.Silent.MaxDistance) then continue end
                        
                        if Radius > Magnitude and OnScreen and Value then
                            if not Config.Silent.WallBang and (Config.Silent.WallCheck and (not WallCheck(Value.Character))) then continue end;
                            table.insert(PriorityPlayers, {Player = Value, Distance = Magnitude});
                        end;
                    end;
                end;
                
                table.sort(PriorityPlayers, function(Player , PlayerTwo)
                    return Player.Distance<PlayerTwo.Distance
                end);

                if PriorityPlayers[1] then
                    return PriorityPlayers[1].Player
                end;
            end;

            local ValidPlayers = {};

            for Index, Value in Plrs do
                if Value == LocalPlayer then continue end;
                if table.find(library.whitelist, Value.Name) then continue end;
                if (Value.Character and FindFirstChild(Value.Character, "HumanoidRootPart") and FindFirstChild(Value.Character,"Humanoid") and FindFirstChild(Value.Character,"Humanoid").Health > (Game_Name == "South Bronx" and 4 or 0)) then
                    if FindFirstChildOfClass(Value.Character, "ForceField") then continue end
                    if FindFirstChild(Value.Character, "Torso") and FindFirstChild(Value.Character, "Torso").Material == Enum.Material.ForceField then continue end
                    if Value.Character.Parent == nil then continue end
                    local TargetPart = FindFirstChild(Value.Character, "HumanoidRootPart")
                    local MouseLocation = Vector2.new(Mouse.X, Mouse.Y)
                    local TargetPartPosition, OnScreen = WorldToScreenPoint(Camera, TargetPart.Position)
                    local Radius = Config.Silent.UseFieldOfView and Config.Silent.Radius or 9e9
                    local Magnitude = (Vector2.new(TargetPartPosition.X,TargetPartPosition.Y) - MouseLocation).Magnitude
                    if not DistanceCheck(Value, Config.Silent.MaxDistance) then continue end
                    
                    if Radius > Magnitude and OnScreen and Value then
                        if not Config.Silent.WallBang and (Config.Silent.WallCheck and not WallCheck(Value.Character)) then continue end
                        table.insert(ValidPlayers, {Player = Value, Distance = Magnitude})
                    end
                end;
            end;
            
            table.sort(ValidPlayers, function(Player , PlayerTwo)
                return Player.Distance<PlayerTwo.Distance                
            end);
            
            if ValidPlayers[1] then
                return ValidPlayers[1].Player                
            end;

            return nil            
        end);

        SilentTarget = GetClosestPlayerToMouseSilent()

        TargetTable = {GetClosestPlayerToMouseAimbot();}
        
        local __namecall; __namecall = Solara and nil or not Solara and hookmetamethod(Workspace, "__namecall", LPH_NO_VIRTUALIZE(function(...)
            local Arguments = {...};
            local Method = getnamecallmethod();

            if checkcaller() then
                return __namecall(...)
            end;

            if not SilentTarget then
                return __namecall(...)
            end;

            if not Config.Silent.Enabled then
                return __namecall(...)
            end;

            if Game_Name == "Town" then
                if tostring(getcallingscript()) ~= "GunScript" then
                    return __namecall(...)
                end
            end

            if not (mathrandom(0, 100) <= Config.Silent.HitChance) then
                return __namecall(...)
            end

            if Game_Name == "The Bronx" then
                local Script = getcallingscript()

                if not (Script.Name == "GunScript_Local" or Script.Name == "BulletVisualizerServerScript" or Script.Name == "BulletVisualizerClientScript") then
                    return __namecall(...)
                end
            end

            local RandomPart = Config.Silent.TargetPart[1] and Config.Silent.TargetPart[math.random(1, #Config.Silent.TargetPart)] or "Head"
            
            if Method == "Raycast" and table.find(Config.Game.Ray_Systems, "Raycast") then
                local Script = getcallingscript()

                if Game_Name == "BlockSpin" then
                    if Script and not (Script.Name == "Gun") then
                        return __namecall(...)
                    end
                end

                if Game_Name == "South Bronx" then
                    if Script and Script.Name == "RealismClient" then
                        return __namecall(...)
                    end
                end

                if Config.Silent.Enabled then
                    if Config.Silent.Targetting then
                        local Target = SilentTarget
                        if Target and Target.Character and FindFirstChild(Target.Character, RandomPart) and FindFirstChild(Target.Character,"Humanoid") and FindFirstChild(Target.Character,"Humanoid").Health ~= 0 then
                            local TargetPart = FindFirstChild(Target.Character, RandomPart);
                            local Origin = Arguments[2];
                            local Direction = (TargetPart.Position - Origin).Unit * 1000;

                            Arguments[3] = Direction;
                        end;

                        if Config.Silent.WallBang and Game_Name ~= "BlockSpin" then
                            local FilterDescendantsInstances = {};

                            if Target.Character then
                                for Index, Value in pairs(GetDescendants(Target.Character)) do
                                    if IsA(Value, "Part") or IsA(Value, "BasePart") or IsA(Value, "MeshPart") then
                                        table.insert(FilterDescendantsInstances, Value)
                                    end
                                end;
                            end;

                            local RaycastParams = RaycastParams.new();

                            RaycastParams.FilterType = Enum.RaycastFilterType.Include
                            RaycastParams.IgnoreWater = false
                            RaycastParams.RespectCanCollide = false
                            RaycastParams.FilterDescendantsInstances = FilterDescendantsInstances
                            Arguments[4] = RaycastParams
                        end;

                        if not Config.Silent.WallBang and Game_Name == "South Bronx" then
                            local RaycastParams = RaycastParams.new()
                            RaycastParams.FilterType = Enum.RaycastFilterType.Blacklist
                            RaycastParams.FilterDescendantsInstances = {LocalPlayer.Character}
                            Arguments[4] = RaycastParams
                        end;

                        return __namecall(unpack(Arguments))
                    end;
                end;
            end;

            if string.find(string.lower(Method), "findpartonray") and (table.find(Config.Game.Ray_Systems, "FindPartOnRay") or table.find(Config.Game.Ray_Systems, "FindPartOnRayWithWhitelist")) then
                if Config.Silent.Enabled then
                    if Config.Silent.Targetting and mathrandom(0, 100) <= Config.Silent.HitChance then
                        local Target = SilentTarget;
                        if Target and Target.Character and FindFirstChild(Target.Character, RandomPart) and FindFirstChild(Target.Character,"Humanoid") and FindFirstChild(Target.Character,"Humanoid").Health ~= 0 then
                            local TargetPart = FindFirstChild(Target.Character, RandomPart);
                            local Origin = Arguments[2].Origin;

                            local Direction = (TargetPart.Position - Origin).Unit * 9e17;

                            Arguments[2] = Ray.new(Origin, Direction)

                            if Config.Silent.WallBang then
                                return TargetPart, TargetPart.Position, Vector3.new(0,0,0)
                            end

                            return __namecall(unpack(Arguments))
                        end;
                    end;
                end;
            end;

            return __namecall(...)
        end));

        local function Draw(ClassName, Properties)
            local Drawing = Drawing.new(ClassName);

            for Property, Value in Properties do
                Drawing[Property] = Value;
            end;

            return Drawing
        end;

        local AimbotFieldOfViewOutline = Draw("Circle", {Visible = false, Color = Color3.new(0, 0, 0), Radius = 100, NumSides = 100, Thickness = 4});
        local AimbotFieldOfView = Draw("Circle", {Visible = false, Color = Color3.new(1, 1, 1), Radius = 100, NumSides = 100, Thickness = 2});
        local AimbotFieldOfViewFill = Draw("Circle", {Visible = false, Color = Color3.new(1, 1, 1), Radius = 100, NumSides = 100, Thickness = 2, Filled = true});

        local AimbotSnaplineOutline = Draw("Line", {Visible = false, Color = Color3.new(0, 0, 0), Thickness = 3});
        local AimbotSnapline = Draw("Line", {Visible = false, Color = Color3.new(1, 1, 1), Thickness = 1});

        
        local SilentFieldOfViewOutline = Draw("Circle", {Visible = false, Color = Color3.new(0, 0, 0), Radius = 100, NumSides = 100, Thickness = 4});
        local SilentFieldOfView = Draw("Circle", {Visible = false, Color = Color3.new(1, 1, 1), Radius = 100, NumSides = 100, Thickness = 2});
        local SilentFieldOfViewFill = Draw("Circle", {Visible = false, Color = Color3.new(1, 1, 1), Radius = 100, NumSides = 100, Thickness = 2, Filled = true});
        
        local SilentSnaplineOutline = Draw("Line", {Visible = false, Color = Color3.new(0, 0, 0), Thickness = 3});
        local SilentSnapline = Draw("Line", {Visible = false, Color = Color3.new(1, 1, 1), Thickness = 1});

        RunService:BindToRenderStep("Functions",math.huge,LPH_NO_VIRTUALIZE(function()
            if Config.Silent.Mode == "Always" then
                Config.Silent.Targetting = true;
            end;
        
            local MouseLocation = UserInputService:GetMouseLocation()

            if (not LocalPlayer) or (not LocalPlayer.Character) or (not LocalPlayer.Character:FindFirstChild("Humanoid")) then
                return                
            end;

            if not TargetTable[1] then
                TargetTable[1] = GetClosestPlayerToMouseAimbot();
            end;

            if (TargetTable[1] and TargetTable[1].Character and TargetTable[1].Character:FindFirstChild("Humanoid") and TargetTable[1].Character:FindFirstChild("Humanoid").Health == 0) then
                TargetTable[1] = nil
            end
            
            local Target = TargetTable[1]
            if (Config.Aimlock.Enabled and Config.Aimlock.Aiming and Config.Aimlock.Type == "Mouse") and (Target and Target.Character and Target.Character:FindFirstChild(Config.Aimlock.TargetPart)) then
                local TargetPosition = Target.Character:FindFirstChild(Config.Aimlock.TargetPart).Position;
                local Result, OnScreen = Camera:WorldToScreenPoint(TargetPosition);
                if OnScreen then
                    Move_Mouse_Function(Vector2.new(Result.X - Mouse.X, Result.Y - Mouse.Y).X / (Config.Aimlock.Smoothness+1) , Vector2.new(Result.X - Mouse.X, Result.Y - Mouse.Y).Y / (Config.Aimlock.Smoothness + 1));
                end
            elseif (Config.Aimlock.Enabled and Config.Aimlock.Aiming and Config.Aimlock.Type == "Camera") and (Target and Target.Character and Target.Character:FindFirstChild(Config.Aimlock.TargetPart)) then
                local Smoothness = Config.Aimlock.Smoothness * 10;
                Camera.CFrame = Camera.CFrame:Lerp(CFrame.new(Camera.CFrame.p, Target.Character:FindFirstChild(Config.Aimlock.TargetPart).Position), (100 - Smoothness) / 100);
            end;
        
            SilentTarget = GetClosestPlayerToMouseSilent()
            local AimlockTarget = TargetTable[1]

            AimbotFieldOfView.Visible = Config.Aimlock.Enabled and Config.Aimlock.DrawFieldOfView and Config.Aimlock.UseFieldOfView
            AimbotFieldOfView.Radius = Config.Aimlock.Radius
            AimbotFieldOfView.Color = Config.Aimlock.FieldOfViewColor
            AimbotFieldOfView.NumSides = Config.Aimlock.Sides
            AimbotFieldOfView.Position = MouseLocation
            AimbotFieldOfView.NumSides = Config.Aimlock.Sides
            AimbotFieldOfViewOutline.NumSides = Config.Aimlock.Sides
            AimbotFieldOfViewOutline.Radius = AimbotFieldOfView.Radius
            AimbotFieldOfViewOutline.Position = AimbotFieldOfView.Position
            AimbotFieldOfViewOutline.Visible = AimbotFieldOfView.Visible

            AimbotFieldOfViewFill.Visible = AimbotFieldOfView.Visible
            AimbotFieldOfViewFill.NumSides = AimbotFieldOfView.NumSides
            AimbotFieldOfViewFill.Color = AimbotFieldOfView.Color
            AimbotFieldOfViewFill.Radius = AimbotFieldOfView.Radius
            AimbotFieldOfViewFill.Position = AimbotFieldOfView.Position
            AimbotFieldOfViewFill.Transparency = Config.Aimlock.FieldOfViewTransparency

            SilentFieldOfView.Visible = Config.Silent.Enabled and Config.Silent.UseFieldOfView and Config.Silent.DrawFieldOfView
            SilentFieldOfView.Radius = Config.Silent.Radius
            SilentFieldOfView.NumSides = Config.Silent.Sides
            SilentFieldOfView.Color = Config.Silent.FieldOfViewColor
            SilentFieldOfView.NumSides = Config.Silent.Sides
            SilentFieldOfView.Position = MouseLocation

            SilentFieldOfViewFill.Visible = SilentFieldOfView.Visible
            SilentFieldOfViewFill.NumSides = SilentFieldOfView.NumSides
            SilentFieldOfViewFill.Color = SilentFieldOfView.Color
            SilentFieldOfViewFill.Radius = SilentFieldOfView.Radius
            SilentFieldOfViewFill.Position = SilentFieldOfView.Position
            SilentFieldOfViewFill.Transparency = Config.Silent.FieldOfViewTransparency

            SilentFieldOfViewOutline.NumSides = Config.Silent.Sides
            SilentFieldOfViewOutline.Position = SilentFieldOfView.Position
            SilentFieldOfViewOutline.Visible = SilentFieldOfView.Visible
            SilentFieldOfViewOutline.Radius = SilentFieldOfView.Radius

            SilentSnapline.Visible = (Config.Silent.Enabled == true) and (Config.Silent.Targetting == true) and Config.Silent.Snapline and (SilentTarget ~= nil)
            SilentSnapline.Color = Config.Silent.SnaplineColor
            SilentSnapline.Thickness = Config.Silent.SnaplineThickness;
            SilentSnaplineOutline.Thickness = Config.Silent.SnaplineThickness + 2
            SilentSnaplineOutline.Visible = SilentSnapline.Visible

            AimbotSnapline.Color = Config.Aimlock.SnaplineColor
            AimbotSnapline.Visible = (Config.Aimlock.Enabled == true) and (Config.Aimlock.Aiming == true) and Config.Aimlock.Snapline and (AimlockTarget ~= nil)
            AimbotSnapline.Thickness = Config.Aimlock.SnaplineThickness;
            AimbotSnaplineOutline.Thickness = Config.Aimlock.SnaplineThickness + 2
            AimbotSnaplineOutline.Visible = AimbotSnapline.Visible

            if (not SilentTarget or not SilentTarget.Character or not SilentTarget.Character:FindFirstChild("Head")) then
                SilentSnapline.Visible = false
            end;

            if (not AimlockTarget or not AimlockTarget.Character or not AimlockTarget.Character:FindFirstChild(Config.Aimlock.TargetPart)) then
                AimbotSnapline.Visible = false
            end;

            local _Part = "Head"

            if SilentTarget and SilentTarget.Character and SilentTarget.Character:FindFirstChild(_Part) then
                local SilentPosition, OnScreen = Camera:WorldToViewportPoint(SilentTarget.Character:FindFirstChild(_Part).Position)

                SilentSnapline.Visible = (Config.Silent.Snapline and SilentTarget and OnScreen)
                SilentSnapline.Visible = SilentSnapline.Visible

                if (SilentSnapline.Visible and OnScreen) then
                    SilentSnapline.From = MouseLocation
                    SilentSnaplineOutline.From = SilentSnapline.From

                    SilentSnapline.To = Vector2.new(SilentPosition.X, SilentPosition.Y)
                    SilentSnaplineOutline.To = SilentSnapline.To
                end;
            end;

            if AimlockTarget and AimlockTarget.Character and AimlockTarget.Character:FindFirstChild(Config.Aimlock.TargetPart) then
                local AimlockPosition, OnScreen = Camera:WorldToViewportPoint(AimlockTarget.Character:FindFirstChild(Config.Aimlock.TargetPart).Position)

                AimbotSnapline.Visible = (Config.Aimlock.Snapline and AimlockTarget and OnScreen)
                AimbotSnaplineOutline.Visible = AimbotSnapline.Visible

                if (AimbotSnapline.Visible and OnScreen) then
                    AimbotSnapline.From = MouseLocation
                    AimbotSnaplineOutline.From = AimbotSnapline.From

                    AimbotSnapline.To = Vector2.new(AimlockPosition.X, AimlockPosition.Y)
                    AimbotSnaplineOutline.To = AimbotSnapline.To
                end;
            end;
        end));

        if not LocalPlayer.Character then
            LocalPlayer.CharacterAdded:Wait()
        end

        local ConnectHitboxToPlayer = function(Player)
            task.spawn(LPH_NO_VIRTUALIZE(function()
                while (Player ~= nil) and task.wait(0.25) do
                    if not Player.Character then continue end
                    if Player.Character then
                        if not Player.Character:FindFirstChild("HumanoidRootPart") or not Player.Character:FindFirstChild("Humanoid") then
                            continue
                        end

                        if not Player.Character:FindFirstChild("Head") or not Player.Character:FindFirstChild("Humanoid") then
                            continue
                        end

                        local HumanoidRootPart, Head, Humanoid = Player.Character:FindFirstChild("HumanoidRootPart"), Player.Character:FindFirstChild("Head"), Player.Character:FindFirstChild("Humanoid")

                        if Humanoid.Sit and not DefaultPlayerSettings[Player.Name] then continue end

                        if not DefaultPlayerSettings[Player.Name] then
                            DefaultPlayerSettings[Player.Name] = {}
                            DefaultPlayerSettings[Player.Name].HeadSettings = {}
                            DefaultPlayerSettings[Player.Name].RootSettings = {}

                            DefaultPlayerSettings[Player.Name].HeadSettings.Size = Head.Size
                            DefaultPlayerSettings[Player.Name].HeadSettings.Color = Head.Color
                            DefaultPlayerSettings[Player.Name].HeadSettings.Massless = Head.Massless
                            DefaultPlayerSettings[Player.Name].HeadSettings.CanCollide = Head.CanCollide
                            DefaultPlayerSettings[Player.Name].HeadSettings.Material = Head.Material
                            DefaultPlayerSettings[Player.Name].HeadSettings.Transparency = Head.Transparency

                            DefaultPlayerSettings[Player.Name].RootSettings.Size = HumanoidRootPart.Size
                            DefaultPlayerSettings[Player.Name].RootSettings.Color = HumanoidRootPart.Color
                            DefaultPlayerSettings[Player.Name].RootSettings.Massless = HumanoidRootPart.Massless
                            DefaultPlayerSettings[Player.Name].RootSettings.CanCollide = HumanoidRootPart.CanCollide
                            DefaultPlayerSettings[Player.Name].RootSettings.Material = HumanoidRootPart.Material
                            DefaultPlayerSettings[Player.Name].RootSettings.Transparency = HumanoidRootPart.Transparency
                            DefaultPlayerSettings[Player.Name].RootSettings.Shape = HumanoidRootPart.Shape
                        end

                        if not Config.MiscSettings.Hitbox_Expander.Enabled or Humanoid.Sit or Humanoid.Health == 0 or table.find(library.whitelist, Player.Name) then
                            for Index, Value in DefaultPlayerSettings[Player.Name].RootSettings do
                                HumanoidRootPart[Index] = Value
                            end

                            for Index, Value in DefaultPlayerSettings[Player.Name].HeadSettings do
                                Head[Index] = Value
                            end

                            if Head:FindFirstChild("MeshPart") then
                                Head.Mesh.MeshId = "rbxassetid://8635368421"
                            end

                            continue
                        end

                        if Config.MiscSettings.Hitbox_Expander.Part == "Head" and Config.MiscSettings.Hitbox_Expander.Enabled then
                            for Index, Value in DefaultPlayerSettings[Player.Name].RootSettings do
                                HumanoidRootPart[Index] = Value
                            end
                        end

                        if Config.MiscSettings.Hitbox_Expander.Part == "HumanoidRootPart" and Config.MiscSettings.Hitbox_Expander.Enabled then
                            for Index, Value in DefaultPlayerSettings[Player.Name].HeadSettings do
                                Head[Index] = Value
                            end

                            if Head:FindFirstChild("MeshPart") then
                                Head.Mesh.MeshId = "rbxassetid://8635368421"
                            end
                        end

                        if Config.MiscSettings.Hitbox_Expander.Part == "Head" then
                            if Config.MiscSettings.Hitbox_Expander.Enabled and Humanoid.Health ~= 0 then
                                Head.Size = Vector3.new(Config.MiscSettings.Hitbox_Expander.Multiplier, Config.MiscSettings.Hitbox_Expander.Multiplier, Config.MiscSettings.Hitbox_Expander.Multiplier)
                                Head.Transparency = Config.MiscSettings.Hitbox_Expander.Transparency
                                Head.Material = Enum.Material[Config.MiscSettings.Hitbox_Expander.Material]
                                Head.Color = Config.MiscSettings.Hitbox_Expander.Color
                                Head.CanCollide = not DefaultPlayerSettings[Player.Name].HeadSettings.CanCollide
                                Head.Massless = not DefaultPlayerSettings[Player.Name].HeadSettings.Massless

                                if Head:FindFirstChild("MeshPart") then
                                    Head.Mesh.MeshId = ""
                                end
                            end
                        else
                            if Config.MiscSettings.Hitbox_Expander.Enabled and Humanoid.Health ~= 0 then
                                HumanoidRootPart.Size = Vector3.new(Config.MiscSettings.Hitbox_Expander.Multiplier, Config.MiscSettings.Hitbox_Expander.Multiplier, Config.MiscSettings.Hitbox_Expander.Multiplier)
                                HumanoidRootPart.Transparency = Config.MiscSettings.Hitbox_Expander.Transparency
                                HumanoidRootPart.Material = Enum.Material[Config.MiscSettings.Hitbox_Expander.Material]
                                HumanoidRootPart.Shape = Enum.PartType[Config.MiscSettings.Hitbox_Expander.Type]
                                HumanoidRootPart.Color = Config.MiscSettings.Hitbox_Expander.Color
                                HumanoidRootPart.CanCollide = not DefaultPlayerSettings[Player.Name].RootSettings.CanCollide
                            end
                        end
                    end
                end
            end))
        end

        for Index, Value in Players:GetPlayers() do
            if Value == LocalPlayer then continue end;
            if Game_Name == "South Bronx" then continue end
            if Game_Name == "Criminality" then continue end
            if Game_Name == "Universal" then continue end
            if Game_Name == "BlockSpin" then continue end

            ConnectHitboxToPlayer(Value)
        end

        Players.PlayerAdded:Connect(function(Value)
            if Game_Name == "South Bronx" then return end
            if Game_Name == "Criminality" then return end
            if Game_Name == "Universal" then return end
            if Game_Name == "BlockSpin" then return end

            ConnectHitboxToPlayer(Value)
        end)

        --local StaminaRegen, MaxStamina = LocalPlayer:GetAttribute("StaminaRegen"), LocalPlayer:GetAttribute("MaxStamina")

        if Game_Name == "BlockSpin" then
            --[[local Set_Stamina = false;

            RunService.PreRender:Connect(LPH_NO_VIRTUALIZE(function()
                if Config.BlockSpin.LocalPlayer.InfiniteStamina then
                    Set_Stamina = false
                    LocalPlayer:SetAttribute("StaminaRegen", math.huge)
                    LocalPlayer:SetAttribute("MaxStamina", math.huge)
                else
                    if not Set_Stamina then
                        Set_Stamina = true
                        LocalPlayer:SetAttribute("StaminaRegen", StaminaRegen)
                        LocalPlayer:SetAttribute("MaxStamina", MaxStamina)
                    end
                end
            end))]]

            local _Send; _Send = hookfunction(Send_Remote, LPH_NO_VIRTUALIZE(function(...)
                local Arguments = {...}

                if Arguments[1] == "throw_hit" then
                    if not Config.Silent.Enabled then
                        return _Send(...)
                    end

                    if checkcaller() or not SilentTarget or not (mathrandom(0, 100) <= Config.Silent.HitChance) then
                        return _Send(...)
                    end

                    local RandomPart = Config.Silent.TargetPart[1] and Config.Silent.TargetPart[math.random(1, #Config.Silent.TargetPart)] or "Head"

                    local TargetPart = SilentTarget.Character:FindFirstChild(RandomPart)

                    if not SilentTarget.Character or not TargetPart then
                        return _Send(...)
                    end

                    Arguments[3] = TargetPart
                    Arguments[4] = TargetPart.CFrame
                end

                return _Send(unpack(Arguments))
            end))

            local PressKey = function(KeyCode, Duration)
                task.spawn(function()
                    VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                    VirtualInputManager:SendKeyEvent(true, KeyCode, false, game)
                    task.wait(Duration)
                    VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                end)
            end

            local Get_Puddle = LPH_NO_VIRTUALIZE(function()
                local CurrentPuddle, MaxDistance, BestPath = nil, math.huge, nil

                for _, v in ipairs(Workspace.Map.Tiles.BurgerPlaceTile.BurgerPlace.Interior.Puddles:GetChildren()) do
                    if v:IsA("BasePart") and v.Parent and (v.Name == "SmallPuddle" or v.Name == "LargePuddle") and v.Size.X >= 1 and v.Size.Z >= 1 and (v.Position - Vector3.new(150, 253, -250)).Magnitude > 3 then
                        local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
                        if not hrp then continue end

                        local Path = Services.PathfindingService:CreatePath({
                            AgentRadius = 1,
                            AgentHeight = 4,
                            AgentCanJump = false,
                            AgentCanClimb = true,
                        })

                        local targetPos = v.Position + Vector3.new(0, 2, 0)
                        Path:ComputeAsync(hrp.Position, targetPos)

                        if Path.Status ~= Enum.PathStatus.NoPath then
                            local dist = (hrp.Position - v.Position).Magnitude
                            if dist < MaxDistance then
                                CurrentPuddle = v
                                MaxDistance = dist
                                BestPath = Path
                            end
                        end
                    end
                end

                return CurrentPuddle, BestPath
            end)


            local Mop_FarmThread

            Start_MopFarm = function()
                Mop_FarmThread = task.spawn(LPH_JIT_MAX(function()
                    while task.wait(1) do
                        if not Config.BlockSpin.AutoFarming.FarmMops then continue end

                        local character = LocalPlayer.Character
                        local humanoid = character and character:FindFirstChild("Humanoid")
                        local hrp = character and character:FindFirstChild("HumanoidRootPart")

                        if not humanoid or humanoid.Health <= 0 or not hrp then continue end

                        local puddle, path = Get_Puddle()

                        if not puddle or not puddle:IsDescendantOf(game) or puddle.Size.X < 1 or puddle.Size.Z < 1 or not path or path.Status == Enum.PathStatus.NoPath then
                            continue
                        end

                        VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.LeftShift, false, game)
                        local waypoints = path:GetWaypoints()

                        if not puddle or not puddle:IsDescendantOf(game) or puddle.Size.X < 1 or puddle.Size.Z < 1 or not path or path.Status == Enum.PathStatus.NoPath then
                            continue
                        end

                        local default_time = puddle.Name == "SmallPuddle" and 5 or puddle.Name == "LargePuddle" and 10

                        default_time = 
                            (Config.BlockSpin.AutoFarming.MopType == "Default" and default_time) or
                            (Config.BlockSpin.AutoFarming.MopType == "Silver" and default_time * 0.8) or
                            (Config.BlockSpin.AutoFarming.MopType == "Gold" and default_time * 0.7) or
                            (Config.BlockSpin.AutoFarming.MopType == "Diamond" and default_time * 0.6) or
                            default_time

                        for index, waypoint in ipairs(waypoints) do
                            humanoid:MoveTo(waypoint.Position)
                            humanoid.MoveToFinished:Wait()

                            if not puddle:IsDescendantOf(game) or puddle.Size.X < 1 or puddle.Size.Z < 1 then
                                break
                            end

                            if index == #waypoints then
                                VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.LeftShift, false, game)
                                PressKey(Enum.KeyCode.W, 0.1)
                                task.wait(default_time + 0.25)
                            end
                        end
                    end
                end))
            end


            Stop_MopFarm = LPH_NO_VIRTUALIZE(function()
                if not Mop_FarmThread then return end
                if coroutine.status(Mop_FarmThread) == "suspended" then
                    task.cancel(Mop_FarmThread)
                end
            end)

            LocalPlayer.CharacterAdded:Connect(LPH_NO_VIRTUALIZE(function()
                if Mop_FarmThread then
                    Stop_MopFarm()
                end
            end))
        end

        if Game_Name == "South Bronx" then
            if not Solara then
                CurrentGunHeld = nil;

                local OldWeaponValues = {}

                local GetAllTools = LPH_NO_VIRTUALIZE(function()
                    local Result = {}
        
                    for _, Value in next, {LocalPlayer.Backpack, LocalPlayer.Character ~= nil and LocalPlayer.Character} do
                        if type(Value) == "userdata" then
                            for _, _Value in next, Value:GetChildren() do
                                if _Value:IsA("Tool") and _Value:FindFirstChild("Setting") then
                                    Result[#Result + 1] = _Value
                                end
                            end
                        end
                    end
        
                    return Result
                end)

                local ReloadFunction = nil
                
                for Index, Value in getgc(true) do
                    if not (type(Value) == "function") then continue end
                    
                    local Function_Info = debug.getinfo(Value)
                
                    if tostring(Function_Info.name) == "Reload" then
                        ReloadFunction = Value
                    end
                end

                local RefreshReloadFunction = LPH_NO_VIRTUALIZE(function()
                    for Index, Value in getgc() do
                        if typeof(Value) == 'function' then
                            local Function_Info = debug.getinfo(Value)
                        
                            if tostring(Function_Info.name) == "Reload" then
                                ReloadFunction = Value
                            end
                        end
                    end
                end)

                local GetSettings = LPH_NO_VIRTUALIZE(function(Weapon)
                    local Settings = {}

                    for i,v in debug.getupvalue(ReloadFunction, 3) do
                        if i ~= Weapon then continue end

                        Settings = v
                        break
                    end

                    return Settings
                end)

                local GetPercentage = LPH_NO_VIRTUALIZE(function(DefaultValue, NewValue)
                    NewValue = math.max(0, math.min(100, NewValue))
            
                    local newRecoil = DefaultValue * (NewValue / 100)
                
                    return newRecoil
                end)
            
                local ModWeapon = LPH_JIT_MAX(function(Weapon)
                    if type(Weapon) ~= "userdata" then return end
                    if not Weapon:IsA("Tool") then return end
                    if not Weapon:FindFirstChild("Setting") then return end
            
                    local Module = GetSettings(Weapon)
                    local ModuleSettings = rawget(Module, "Module")
                    local OldConfig = OldWeaponValues[Weapon.Name]
            
                    task.spawn(function()
                        local Success, Error = pcall(LPH_NO_VIRTUALIZE(function()
                            task.wait(0.05)
                            if Module == nil or ModuleSettings == nil then
                                RefreshReloadFunction()
            
                                if ReloadFunction == nil then
                                    return
                                end
            
                                Module = GetSettings(Weapon)
                                ModuleSettings = rawget(Module, "Module")
                            end
            
                            if ModuleSettings == nil or Module == nil then
                                return
                            end
            
                            setreadonly(Module, false)
                            setreadonly(ModuleSettings, false)
                        
                            if SetInfiniteAmmo == nil then
                                SetInfiniteAmmo = true
                            end
            
                            if SetInfiniteClips == nil then
                                SetInfiniteClips = true
                            end
                            
                            --[[if Config.South_Bronx._Modifications.InfiniteAmmo then
                                Module.Mag = Config.South_Bronx._Modifications.InfiniteAmmo and math.huge or OldConfig.Ammo
            
                                SetInfiniteAmmo = false
                            end
            
                            if Config.South_Bronx._Modifications.InfiniteAmmo == false and SetInfiniteAmmo == false then
                                Module.Mag = OldConfig.MaxAmmo / 2
                                SetInfiniteAmmo = true
                            end]]
            
                            --[[if Config.South_Bronx._Modifications.InfiniteClips then
                                Module.Ammo = Config.South_Bronx._Modifications.InfiniteClips and 999999 or OldConfig.MaxAmmo
            
                                SetInfiniteClips = false
                            end]]
            
                            if Config.South_Bronx._Modifications.InfiniteClips == false and SetInfiniteClips == false then
                                Module.Ammo = OldConfig.MaxAmmo
                                SetInfiniteClips = true
                            end
            
                            if ModuleSettings.LimitedAmmoEnabled then
                                ModuleSettings.LimitedAmmoEnabled = Config.South_Bronx._Modifications.InfiniteAmmo and false or OldConfig.LimitedAmmoEnabled
                            end
            
                            task.spawn(function()
                                while Weapon ~= nil and LocalPlayer.Character ~= nil and Weapon.Parent == LocalPlayer.Character and Module ~= nil and ModuleSettings ~= nil and ModuleSettings.FireRate ~= nil and task.wait(.1) do
                                    if Config.South_Bronx._Modifications.DisableJamming then
                                        rawset(Module, "Jam", false)
                                        rawset(Module, "Canshoot", true)
                                    end

                                    if Config.South_Bronx._Modifications.InfiniteAmmo then
                                        Module.Mag = OldConfig.AmmoPerMag
                                    end
                                end
                            end)
            
                            ModuleSettings.FireRate = Config.South_Bronx._Modifications.ModifyFireRate and GetPercentage(OldConfig.FireRate, Config.South_Bronx._Modifications.FireRateSpeed) or OldConfig.FireRate
                            
                            ModuleSettings.ReloadTime = Config.South_Bronx._Modifications.ModifyReloadSpeed and GetPercentage(OldConfig.ReloadTime, Config.South_Bronx._Modifications.ReloadSpeed) or OldConfig.ReloadTime
                            ModuleSettings.TacticalReloadTime = Config.South_Bronx._Modifications.ModifyReloadSpeed and GetPercentage(OldConfig.TacticalReloadTime, Config.South_Bronx._Modifications.ReloadSpeed) or OldConfig.TacticalReloadTime
                            
                            ModuleSettings.EquippingTime = Config.South_Bronx._Modifications.ModifyEquipSpeed and GetPercentage(OldConfig.EquippingTime, Config.South_Bronx._Modifications.EquipSpeed) or OldConfig.EquippingTime
                            
                            ModuleSettings.SpreadX = Config.South_Bronx._Modifications.ModifySpreadValue and GetPercentage(OldConfig.SpreadX, Config.South_Bronx._Modifications.SpreadPercentage) or OldConfig.SpreadX
                            ModuleSettings.SpreadY = Config.South_Bronx._Modifications.ModifySpreadValue and GetPercentage(OldConfig.SpreadY, Config.South_Bronx._Modifications.SpreadPercentage) or OldConfig.SpreadY
            
                            ModuleSettings.Recoil = Config.South_Bronx._Modifications.ModifyRecoilValue and GetPercentage(OldConfig.Recoil, Config.South_Bronx._Modifications.RecoilPercentage) or OldConfig.Recoil
            
                            ModuleSettings.ShotgunEnabled = Config.South_Bronx._Modifications.InstantKill and true or OldConfig.ShotgunEnabled
            
                            ModuleSettings.Auto = Config.South_Bronx._Modifications.Automatic or OldConfig.Auto
                        
                            ModuleSettings.JamChance = Config.South_Bronx._Modifications.DisableJamming and 0 or OldConfig.JamChance
                        end))
            
                        if not Success and Error ~= nil then
                            warn("[GUN MOD ERROR] :", Error)
                        end
                    end)
                end)

                local ModWeapons = LPH_NO_VIRTUALIZE(function()
                    for _, Weapon in next, GetAllTools() do
                        if Weapon:IsA("Tool") then
                            ModWeapon(Weapon)
                        end
                    end
                end)

                local SetValues = LPH_NO_VIRTUALIZE(function()
                    for _, Weapon in next, GetAllTools() do
                        if Weapon:IsA("Tool") then
                            local Module = Weapon:FindFirstChildOfClass("ModuleScript")

                            if Module and Module.Name == "Setting" then
                                Module = require(Module)
                            end

                            if type(Module) == "table" and not OldWeaponValues[Weapon.Name] then
                                OldWeaponValues[Weapon.Name] = {}

                                local OldConfig = OldWeaponValues[Weapon.Name]

                                for Index, Value in next, Module do
                                    OldConfig[Index] = Value
                                end
                            end
                        end
                    end
                end)

                if not LocalPlayer.Character then LocalPlayer.CharacterAdded:Wait() end

                LocalPlayer.Character.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Weapon)
                    if not Weapon:IsA("Tool") then return end

                    if Weapon:FindFirstChild("Setting") then
                        CurrentGunHeld = Weapon
                    end

                    SetValues(); ModWeapon(Weapon);
                end))

                LocalPlayer.Backpack.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Weapon)
                    if not Weapon:IsA("Tool") then return end
                    
                    if Weapon:FindFirstChild("Setting") then
                        CurrentGunHeld = Weapon
                    end

                    SetValues(); ModWeapon(Weapon);
                end))

                LocalPlayer.CharacterAdded:Connect(function(Character)
                    Character.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Weapon)
                        if not Weapon:IsA("Tool") then return end

                        if Weapon:FindFirstChild("Setting") then
                            CurrentGunHeld = Weapon
                        end
        
                        SetValues(); ModWeapon(Weapon);
                    end))
        
                    LocalPlayer.Backpack.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Weapon)
                        if not Weapon:IsA("Tool") then return end

                        if Weapon:FindFirstChild("Setting") then
                            CurrentGunHeld = Weapon
                        end

                        SetValues(); ModWeapon(Weapon);
                    end))
                end)

                local ConfigMetatable = getmetatable(Config.South_Bronx.Modifications)

                ConfigMetatable.__index = LPH_NO_VIRTUALIZE(function(...)
                    return Config.South_Bronx._Modifications[select(2, ...)]
                end)
        
                ConfigMetatable.__newindex = LPH_NO_VIRTUALIZE(function(...)
                    local Index, Value = select(2, ...)
        
                    Config.South_Bronx._Modifications[Index] = Value; ModWeapons()
                end)

                --[[local OldGunSettingsHook ; OldGunSettingsHook = hookmetamethod(game, "__namecall", LPH_NO_VIRTUALIZE(function(Self, ...)
                    if CurrentGunHeld == nil then
                        return OldGunSettingsHook(Self, ...)
                    end

                    if getnamecallmethod() == "FireServer" or getnamecallmethod() == "InvokeServer" and CurrentGunHeld then
                        local Arguments = {...}
            
                        for Index, Value in Arguments do
                            if typeof(Value) == "table" and rawget(Value , "Ammo") then
                                Value = OldWeaponValues[CurrentGunHeld.Name]
                                
                                return OldGunSettingsHook(Self, unpack(Arguments))
                            end
                        end
                    end
                    
                    return OldGunSettingsHook(Self, ...)
                end))
            
                local OldMagAndAmmo; OldMagAndAmmo = hookmetamethod(game, "__namecall", LPH_NO_VIRTUALIZE(function(Self, ...)
                    if CurrentGunHeld == nil then
                        return OldMagAndAmmo(Self, ...)
                    end
                    
                    if getnamecallmethod() == "FireServer" or getnamecallmethod() == "InvokeServer" and tostring(Self) == "ChangeMagAndAmmo" and (Config.South_Bronx._Modifications.InfiniteAmmo or Config.South_Bronx._Modifications.InfiniteClips) then
                        local Arguments = {...}
            
                        if Config.South_Bronx._Modifications.InfiniteAmmo then
                            Arguments[2] = OldWeaponValues[CurrentGunHeld.Name].AmmoPerMag
                        end
            
                        return OldMagAndAmmo(Self, unpack(Arguments))
                    end
            
                    return OldMagAndAmmo(Self, ...)
                end))]]
            end

            --[[if not Solara then
                local DeleteChatPlayer = LPH_NO_VIRTUALIZE(function(Player)
                    if Player.Character then
                        local Head = Player.Character:FindFirstChild("Head")
                        if Head then
                            if Head:FindFirstChild("chatpart") then
                                Head:FindFirstChild("chatpart"):Destroy()
                            end
                        end
                    end

                    Player.CharacterAdded:Connect(function(Character)
                        Character:WaitForChild("Head")

                        Character.Head:WaitForChild("chatpart"):Destroy()
                    end)
                end)

                for Index, Value in Players:GetPlayers() do
                    if Value == LocalPlayer then continue end

                    DeleteChatPlayer(Value)
                end

                Players.PlayerAdded:Connect(DeleteChatPlayer)
            end]]

            --[[local FireFunc, FireFuncs = LPH_NO_VIRTUALIZE(function(...)
                return ...
            end), {}

            local RefreshFireFunc = LPH_NO_VIRTUALIZE(function()
                for Index, Value in getgc() do
                    if typeof(Value) == "function" then
                        local Info = debug.getinfo(Value)
                        if Info.source == string.format("=Players.%s.PlayerScripts.Main.Modules.GunScript_Local", LocalPlayer.Name) and not table.find(FireFuncs, Value) then
                            FireFunc = Value
                            table.insert(FireFuncs, FireFunc)
                        end
                    end
                end
            end)

            RefreshFireFunc()

            LocalPlayer.CharacterAdded:Connect(LPH_NO_VIRTUALIZE(function()
                task.wait(5)
                RefreshFireFunc()
            end))

            ShootPlayer = LPH_NO_VIRTUALIZE(function(Player)
                if not LocalPlayer.Character then 
                    return 
                end

                if not LocalPlayer.Character:FindFirstChildOfClass("Tool") then
                    return
                end

                local Tool = LocalPlayer.Character:FindFirstChildOfClass("Tool"); local Handle = Tool:FindFirstChild("Handle")

                if not Tool:FindFirstChild("Settings") then
                    return
                end

                if not Players:FindFirstChild(Player) then
                    return
                end

                local Player = Players:FindFirstChild(Player)

                if not Player.Character or not Player.Character:FindFirstChild("Head") or not Player.Character:FindFirstChild("Humanoid") or Player.Character:FindFirstChild("Humanoid"):GetState() == Enum.HumanoidStateType.Dead then
                    return
                end

                if not FireFunc then
                    RefreshFireFunc()
                end

                print("Fired")

                FireFunc(Tool, Handle, Player.Character:FindFirstChild("Head").Position)
            end)

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait(0.1) do
                    if not Config.South_Bronx.KillAura then continue end
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChildOfClass("Tool") or not LocalPlayer.Character:FindFirstChildOfClass("Tool"):FindFirstChild("Setting") then continue end
                    for Index, Value in Players:GetPlayers() do
                        if table.find(Config.South_Bronx.KillAuraWhitelist, tostring(Value)) then continue end
                        if Value == LocalPlayer then continue end
                        if not Value.Character or not Value.Character:FindFirstChildOfClass("Humanoid") or not Value.Character:FindFirstChild("HumanoidRootPart") then continue end
                        if Value.Character:FindFirstChildOfClass("Humanoid").Health == 0 then continue end
                        if Value.Character:FindFirstChildOfClass("ForceField") then continue end

                        if not DistanceCheck(Value, Config.South_Bronx.KillAuraRange) then continue end

                        ShootPlayer(Value.Name)
                    end
                end
            end))]]

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do
                    local Delta = RunService.Heartbeat:Wait()

                    if not Config.South_Bronx.LocalPlayer_Config.Speed then continue end

                    if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                        local Humanoid = LocalPlayer.Character:FindFirstChild("Humanoid")

                        if Humanoid.MoveDirection.Magnitude > 0 then
                            local SpeedFactor = (Humanoid.WalkSpeed >= 10) and 1 or 0.54
                            LocalPlayer.Character:TranslateBy(
                                Humanoid.MoveDirection * Config.South_Bronx.LocalPlayer_Config.SpeedValue 
                                * Delta * 10 * SpeedFactor
                            )
                        end
                    end
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait() do
                    if not Config.South_Bronx.PlayerUtilities.BringingPlayer then continue end
                    if tostring(Config.South_Bronx.PlayerUtilities.SelectedPlayer) == tostring(LocalPlayer) then continue end
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or not Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer) or not Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer).Character or not Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart") then continue end
                    Players:FindFirstChild(Config.South_Bronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart").CFrame = LocalPlayer.Character:FindFirstChild("HumanoidRootPart").CFrame + Vector3.new(2, 0, 0)
                end
            end))
            
            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do
                    task.wait(0)
                    if Config.South_Bronx.VehicleModifications.SpeedEnabled and UserInputService:IsKeyDown(Enum.KeyCode.W) then
                        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                            if LocalPlayer.Character and typeof(LocalPlayer.Character) == "Instance" then
                                local Humanoid = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid")
                                if Humanoid and typeof(Humanoid) == "Instance" then
                                    local SeatPart = Humanoid.SeatPart
                                    if SeatPart and typeof(SeatPart) == "Instance" and SeatPart:IsA("VehicleSeat") then
                                        SeatPart.AssemblyLinearVelocity *= Vector3.new(1 + Config.South_Bronx.VehicleModifications.SpeedValue, 1, 1 + Config.South_Bronx.VehicleModifications.SpeedValue)
                                    end
                                end
                            end
                        end
                    end
                end
            end))
            
            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do
                    task.wait(0)
                    if Config.South_Bronx.VehicleModifications.BreakEnabled and UserInputService:IsKeyDown(Enum.KeyCode.S) then
                        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                            if LocalPlayer.Character and typeof(LocalPlayer.Character) == "Instance" then
                                local Humanoid = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid")
                                if Humanoid and typeof(Humanoid) == "Instance" then
                                    local SeatPart = Humanoid.SeatPart
                                    if SeatPart and typeof(SeatPart) == "Instance" and SeatPart:IsA("VehicleSeat") then
                                        SeatPart.AssemblyLinearVelocity *= Vector3.new(1 - Config.South_Bronx.VehicleModifications.BreakValue, 1, 1 - Config.South_Bronx.VehicleModifications.BreakValue)
                                    end
                                end
                            end
                        end
                    end
                end
            end))
            
            UserInputService.InputBegan:Connect(function(Input, GameProcessedEvent)
                if Input.KeyCode == Config.South_Bronx.VehicleModifications.InstantStopBind and Config.South_Bronx.VehicleModifications.InstantStop and (not GameProcessedEvent) then
                    if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                        if LocalPlayer.Character and typeof(LocalPlayer.Character) == "Instance" then
                            local Humanoid = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid")
                            if Humanoid and typeof(Humanoid) == "Instance" then
                                local SeatPart = Humanoid.SeatPart
                                if SeatPart and typeof(SeatPart) == "Instance" and SeatPart:IsA("VehicleSeat") then
                                    SeatPart.AssemblyLinearVelocity *= Vector3.new(0, 0, 0)
                                    SeatPart.AssemblyAngularVelocity *= Vector3.new(0, 0, 0)
                                end
                            end
                        end
                    end
                end

                if Config.South_Bronx.LocalPlayer_Config.DeleteKey ~= nil and Input.UserInputType == Enum.UserInputType.MouseButton1 and UserInputService:IsKeyDown(Config.South_Bronx.LocalPlayer_Config.DeleteKey) and Config.South_Bronx.LocalPlayer_Config.DeleteOnKey and (not GameProcessedEvent) then
                    if Mouse and Mouse.Target then
                        Mouse.Target:Destroy()
                    end
                end
            end)

            ProximityPromptService.PromptButtonHoldBegan:Connect(LPH_NO_VIRTUALIZE(function(Prompt, Player)
                if Prompt and Player == LocalPlayer and fireproximityprompt then
                    if Config.South_Bronx.LocalPlayer_Config.InstantInteract then
                        fireproximityprompt(Prompt)
                    end
                end 
            end))

            getgenv().Find_Bike = LPH_NO_VIRTUALIZE(function()
                for Index, Value in Workspace:GetChildren() do
                    if Value:FindFirstChild("Owner") and string.match(tostring(Value), LocalPlayer.Name.."'s Car") and Value:FindFirstChild("Body") and Value:FindFirstChild("Body"):FindFirstChild("Passenger") then
                        return Value
                    end
                end
            
                return nil
            end)

            local FindSeatInPlayersCar = LPH_NO_VIRTUALIZE(function(Car)
                for _Index, _Value in Car.Body:GetChildren() do
                    if _Value:IsA("Seat") then
                        if _Value.Occupant ~= nil then 
                            continue
                            else
                            return _Value
                        end
                    end
                end

                return
            end)

            getgenv().SitInPlayersVehicle = LPH_NO_VIRTUALIZE(function(Player)
                if not Player.Character or Player.Character.Humanoid.SeatPart == nil then
                    return
                end
                
                local SeatPart = Player.Character.Humanoid.SeatPart
                local Parent = SeatPart.Parent
                while Parent do
                    if string.match(tostring(Parent), "'s Car") then
                        Seat = FindSeatInPlayersCar(Parent)
                        LocalPlayer.Character.HumanoidRootPart.CFrame = Seat.CFrame
                        Seat:Sit(LocalPlayer.Character.Humanoid)
                        break
                    end
                    
                    Parent = Parent.Parent

                    if Parent == game then
                        break
                    end
                end
                
                return Seat
            end)

            local Teleport_Status;

            local GetDistance = LPH_NO_VIRTUALIZE(function(position1, position2)
                return (position1 - position2).Magnitude
            end)
            
            local GetTweenSpeed = LPH_NO_VIRTUALIZE(function(distance)
                local baseTime = 4.5
                local timeToTween = baseTime * (distance / 50)
                return timeToTween
            end)

            HideUI = LPH_NO_VIRTUALIZE(function(Title, Timing)
                getgenv().HideScreenGUI = Instance.new("ScreenGui")
                getgenv().HideScreenGUI.Name = getexecutorname()
                getgenv().HideScreenGUI.Parent = gethui and gethui() or Services.CoreGui
            
                local frame = Instance.new("Frame")
                frame.Name = "BlackFrame"
                frame.Size = UDim2.new(2, 0, 2, 0) 
                frame.Position = UDim2.new(0, -155, 0, -155) 
                frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) 
                frame.BackgroundTransparency = 0
                frame.Parent = getgenv().HideScreenGUI
            
                local textLabel = Instance.new("TextLabel")
                textLabel.Name = "\nhideuibronxlol"
                textLabel.Size = UDim2.new(0, 400, 0, 100)
                textLabel.Font = Enum.Font.SourceSansBold
                textLabel.RichText = true
                textLabel.Text = '<font color="rgb(0,163,224)">bronx.</font>lol\n' .. Title
                textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
                textLabel.BackgroundTransparency = 1
                textLabel.TextSize = 36
                textLabel.TextStrokeTransparency = 0.8 
                textLabel.TextXAlignment = Enum.TextXAlignment.Center
                textLabel.TextYAlignment = Enum.TextYAlignment.Center
                textLabel.TextWrapped = true
                textLabel.AnchorPoint = Vector2.new(0.5, 0.5)
                textLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
                textLabel.Parent = getgenv().HideScreenGUI
            
                if Timing then
                    task.spawn(function()
                        local startTime = tick()
                        local endTime = startTime + Timing
                        while tick() < endTime do
                            local timeLeft = endTime - tick()

                            textLabel.Text = string.format(
                                '<font color="rgb(0,163,224)">bronx.</font>lol\n%s\nplease wait : <font color="rgb(0,163,224)">%.2f</font> seconds',
                                Title, math.max(timeLeft, 0)
                            )

                            task.wait()
                        end
                    end)
                end
            
                return textLabel
            end)            

            DeleteSecretUI = LPH_NO_VIRTUALIZE(function(Title)
                if getgenv().HideScreenGUI then
                    getgenv().HideScreenGUI:Destroy()
                    getgenv().HideScreenGUI = nil
                end

                pcall(function()
                    for i,v in gethui():GetChildren() do
                        if v.Name == getexecutorname() then
                            v:Destroy()
                        end
                    end
                end)
            end)

            local tp_debounce = false

            local GetCuttingBoard, GetBowl, GetPot, CheckHobo, GetHouse = LPH_NO_VIRTUALIZE(function()
                for Index, Value in Workspace.Map.Locations["The Laboratory"]["Cutting Boards"]:GetChildren() do
                    local Prompt = Value:FindFirstChildWhichIsA("ProximityPrompt", true)

                    if Prompt and Prompt.Enabled then
                        return Value
                    end
                end
            end), LPH_NO_VIRTUALIZE(function()
                for Index, Value in Workspace.Map.Locations["The Laboratory"].Bowls:GetChildren() do
                    local Prompt = Value:FindFirstChildWhichIsA("ProximityPrompt", true)

                    if Prompt and Prompt.Enabled then
                        return Value
                    end
                end
            end), LPH_NO_VIRTUALIZE(function()
                for Index, Value in Workspace.Map.Locations["The Laboratory"].Extra:GetChildren() do
                    if Value.Name == "Table" then
                        Value.CanCollide = false
                    end
                end

                for Index, Value in Workspace.Map.Locations["The Laboratory"].Pots:GetChildren() do
                    local Prompt = Value:FindFirstChildWhichIsA("ProximityPrompt", true)

                    if Prompt and Prompt.Enabled then
                        return Value
                    end
                end
            end), LPH_NO_VIRTUALIZE(function(Name)
                if Workspace.Folders.HomelessPeople:FindFirstChild(Name) then
                    local Prompt = Workspace.Folders.HomelessPeople:FindFirstChild(Name):FindFirstChildWhichIsA("ProximityPrompt", true)

                    if Prompt and Prompt.Enabled and Workspace.Folders.HomelessPeople:FindFirstChild(Name).LeftLowerLeg.Rotation.X == 90 then
                        return true
                    end
                end

                return false
            end), LPH_NO_VIRTUALIZE(function()
                for Index, Value in Workspace.Map.APTS:GetChildren() do
                    if Value:FindFirstChild("Board") then
                        local Name = Value:FindFirstChild("Board").name.SurfaceGui.TextLabel.Text

                        if Name == LocalPlayer.Name then
                            return Workspace.Map.Houses:FindFirstChild(Value.Name)
                        end
                    end
                end

                return nil
            end)

            local Get_Hobo = LPH_NO_VIRTUALIZE(function()
                for i,v in Workspace.Folders.HomelessPeople:GetChildren() do
                    if CheckHobo(v.Name) then
                        return v
                    end
                end 

                return nil
            end)


            getgenv().Teleport = LPH_NO_VIRTUALIZE(function(CFrame)   
                if Config.South_Bronx.TeleportMethod == 'Dirt Bike' then
                    local Bike = Find_Bike()

                    if Bike == nil then
                        ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("Dealershipinteraction"):FireServer("Spawn", "DirtBike")
                        local BikeForce = false

                        task.spawn(function()
                            task.wait(3) ; BikeForce = true
                        end)

                        repeat task.wait() until Find_Bike() ~= nil or BikeForce == true

                        Bike = Find_Bike()
                        task.wait()
                        if Bike == nil then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = "Your bike was not found!",
                                lifetime = 5
                            })

                            return "Failed"
                        end
                    end

                    if Bike and Bike.DriveSeat and Bike.DriveSeat.Occupant ~= nil and Bike.DriveSeat.Occupant ~= LocalPlayer.Character.Humanoid then
                        ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("Dealershipinteraction"):FireServer("Spawn", "DirtBike")
                        local BikeForce = false

                        task.spawn(function()
                            task.wait(3) ; BikeForce = true
                        end)

                        repeat task.wait() until Find_Bike() ~= nil or BikeForce == true

                        Bike = Find_Bike()
                        task.wait()
                        if Bike == nil then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = "Your bike was not found!",
                                lifetime = 5
                            })

                            return "Failed"
                        end
                    end

                    LocalPlayer.Character.HumanoidRootPart.CFrame = Bike.PrimaryPart.CFrame
                    
                    Bike.DriveSeat:Sit(LocalPlayer.Character.Humanoid)

                    task.wait(1.5)

                    for Index = 1, 50 do
                        Bike:SetPrimaryPartCFrame(CFrame + Vector3.new(0, 1.5, 0))
                    end

                    task.wait(1)

                    for Index = 1, 10 do
                        Bike:SetPrimaryPartCFrame(CFrame + Vector3.new(0, 1.5, 0))
                    end

                    for Index, Value in Bike:GetDescendants() do
                        pcall(function()
                            Value.Velocity = Vector3.new(0, 0, 0)
                        end)

                        pcall(function()
                            Value.RotVelocity = Vector3.new(0, 0, 0)
                        end)
                    end

                    task.wait(.25)

                    ReplicatedStorage.RemoteEvents.ClientEffects:FireServer("JumpRequest")

                    return "Success"
                elseif Config.South_Bronx.TeleportMethod == 'Tween' then
                    local DistanceFromPos = GetDistance(LocalPlayer.Character.HumanoidRootPart.Position , CFrame.Position)

                    local Tween = Services.TweenService:Create(LocalPlayer.Character.HumanoidRootPart, TweenInfo.new(GetTweenSpeed(DistanceFromPos), Enum.EasingStyle.Linear), {CFrame = CFrame})

                    Tween:Play() ; Tween.Completed:Wait() ;

                    return (LocalPlayer.Character.HumanoidRootPart.Position - CFrame.Position).Magnitude > 20 and "Success" or "Failed"
                elseif Config.South_Bronx.TeleportMethod == 'Damage' then
                    if tp_debounce then repeat wait(.1) until not tp_debounce end
                    tp_debounce = true
                    HideUI("teleporting.\nplease wait.")
                    
                    pcall(function()
                        local E1 = LocalPlayer.PlayerGui.Misc.Blood.ImageLabel.Changed:Connect(function()
                            LocalPlayer.PlayerGui.Misc.Blood.ImageLabel.Visible = false
                        end)

                        local E3 = LocalPlayer.PlayerGui.Misc.Blood.Impact.Changed:Connect(function()
                            LocalPlayer.PlayerGui.Misc.Blood.Impact.Visible = false
                        end)

                        local E5 = Lighting.ChildAdded:Connect(function(a)
                            if tostring(a) == "KN_Blur" then 
                                a.Enabled = false
                            end
                        end)

                        local Hobo = Get_Hobo()

                        if not Hobo then
                            repeat wait(1) Hobo = Get_Hobo()
                            until Hobo ~= nil
                        end

                        repeat
                            task.wait()
                            if Hobo then
                                LocalPlayer.Character.HumanoidRootPart.CFrame = Hobo.HumanoidRootPart.CFrame
                                fireproximityprompt(Hobo:FindFirstChildWhichIsA('ProximityPrompt', true))

                                if not CheckHobo(Hobo.Name) then
                                    Hobo = Get_Hobo()
                                end
                            end

                        until LocalPlayer.Character.Humanoid.Health <= 15

                        local number = 1

                        repeat task.wait()
                        LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame + Vector3.new(0, 1, 0)
                        number+=1

                        if number > 50 then
                            LocalPlayer.Character.HumanoidRootPart.Anchored = true
                        end

                        until LocalPlayer.Character.Humanoid:GetState() ~= Enum.HumanoidStateType.Physics

                        task.delay(4, function()
                            E1:Disconnect()
                            E3:Disconnect()
                            E5:Disconnect()
                        end)

                        task.wait(1)

                        LocalPlayer.Character.HumanoidRootPart.Anchored = false
                    end)

                    DeleteSecretUI()

                    tp_debounce = false

                    return (LocalPlayer.Character.HumanoidRootPart.Position - CFrame.Position).Magnitude < 20 and "Success" or "Failed"
                end
            end)

            local ATMPositions = {
                ATM1 = CFrame.new(-30, 4, -300);
                ATM2 = CFrame.new(539, 4, -353);
                ATM3 = CFrame.new(497, 4, 403);
                ATM4 = CFrame.new(236, 4, -158);
                ATM5 = CFrame.new(525, -8, -92);
                ATM6 = CFrame.new(-450, 4, 370);
                ATM7 = CFrame.new(-266, 4, -209);
                ATM8 = CFrame.new(-11, 4, 231);
                ATM9 = CFrame.new(717, 4, 410);
                ATM10 = CFrame.new(-532, 3, -21);
                ATM11 = CFrame.new(-646, 4, 155);
                ATM12 = CFrame.new(698, 3, -241);
                ATM13 = CFrame.new(-315, 4, 142);
                ATM14 = CFrame.new(-378, 4, -365);
                ATM15 = CFrame.new(360, 4, -364);
                ATM16 = CFrame.new(870, 3, -346);
                ATM17 = CFrame.new(904, 3, -99);
                ATM18 = CFrame.new(1095, 3, 178);
                ATM19 = CFrame.new(1054, 4, 585);
                ATM20 = CFrame.new(895, 4, 142);
                ATM21 = CFrame.new(1021, 3, -229);
            };

            local PressKeyTween = LPH_NO_VIRTUALIZE(function(KeyCode, Tween)
                task.spawn(function()
                    VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                    VirtualInputManager:SendKeyEvent(true, KeyCode, false, game)
                    Tween.Completed:Wait()
                    VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                end)
            end)

            local PressKey = function(KeyCode, Duration)
                task.spawn(LPH_NO_VIRTUALIZE(function()
                    Services.VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                    Services.VirtualInputManager:SendKeyEvent(true, KeyCode, false, game)
                    task.wait(Duration)
                    Services.VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                end))
            end

            local boxfarm_thread

            Start_BoxFarm = function()
                boxfarm_thread = task.spawn(LPH_NO_VIRTUALIZE(function()
                    while task.wait() do
                        if not LocalPlayer.Character then continue end
                        if not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then continue end
                        if not Config.South_Bronx.FarmingUtilities.BoxFarm then continue end

                        if not LocalPlayer.Backpack:FindFirstChild("Crate") and not LocalPlayer.Character:FindFirstChild("Crate") then
                            local DistanceFromBox = GetDistance(LocalPlayer.Character.HumanoidRootPart.Position, Vector3.new(-549, 3, -82))

                            local Tween = Services.TweenService:Create(LocalPlayer.Character.HumanoidRootPart, TweenInfo.new(GetTweenSpeed(DistanceFromBox), Enum.EasingStyle.Linear), {CFrame = CFrame.new(-549.1292724609375, 3.5371456146240234, -82.9239501953125)})

                            PressKeyTween(Enum.KeyCode.W, Tween) ; PressKeyTween(Enum.KeyCode.LeftShift, Tween)

                            Tween:Play() ; Tween.Completed:Wait() ; Tween = nil

                            fireproximityprompt(Workspace.PlaceHere.Attachment.ProximityPrompt)

                            task.wait(1)

                            repeat task.wait() until LocalPlayer.Backpack:FindFirstChild("Crate")

                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack.Crate)

                            task.wait(1)
                        end

                        if not LocalPlayer.Character:FindFirstChild("Crate") then
                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Crate"))
                            task.wait(1)
                        end

                        if not LocalPlayer.Backpack:FindFirstChild("Crate") and not LocalPlayer.Character:FindFirstChild("Crate") then
                            continue
                        end

                        local DistanceFromTruck = GetDistance(LocalPlayer.Character.HumanoidRootPart.Position, Vector3.new(-401.04364013671875, 3.3621325492858887, -72.07713317871094))

                        local Tween = Services.TweenService:Create(LocalPlayer.Character.HumanoidRootPart, TweenInfo.new(GetTweenSpeed(DistanceFromTruck), Enum.EasingStyle.Linear), {CFrame = CFrame.new(-401.04364013671875, 3.3621325492858887, -72.07713317871094)})

                        PressKeyTween(Enum.KeyCode.W, Tween) ; PressKeyTween(Enum.KeyCode.LeftShift, Tween)

                        Tween:Play() ; Tween.Completed:Wait() ; Tween = nil

                        fireproximityprompt(Workspace.cratetruck2.Model.ClickBox.Attachment.ProximityPrompt)

                        task.wait(0.9)
                    end
                end))
            end

            Stop_BoxFarm = LPH_NO_VIRTUALIZE(function()
                if not boxfarm_thread then return end

                if coroutine.status(boxfarm_thread) == "suspended" then
                    task.cancel(boxfarm_thread)
                end
            end)

            task.spawn(LPH_JIT_MAX(function()
                while task.wait(.1) do
                    if not Config.South_Bronx.FarmingUtilities.CardFarm then continue end
                    if not LocalPlayer.Character and not LocalPlayer.Character:FindFirstChild("Humanoid") then continue end

                    LocalPlayer.Character:FindFirstChild("Humanoid").Sit = false ; LocalPlayer.Character:FindFirstChild("Humanoid").Jump = true

                    for Index, Value in Workspace.Map.Locations["Community Bank"]:GetDescendants() do
                        pcall(function()
                            Value.CanCollide = false
                        end)
                    end
                end
            end))

            task.spawn(LPH_JIT_MAX(function()
                while task.wait(.1) do
                    if not Config.South_Bronx.FarmingUtilities.MarshmallowFarm then continue end
                    if not LocalPlayer.Character and not LocalPlayer.Character:FindFirstChild("Humanoid") then continue end

                    LocalPlayer.Character:FindFirstChild("Humanoid").Sit = false ; LocalPlayer.Character:FindFirstChild("Humanoid").Jump = true
                end
            end))
        
            playerHasCard = false

            task.spawn(LPH_JIT_MAX(function()
                while task.wait(.1) do
                    if not Config.South_Bronx.FarmingUtilities.CardFarm then continue end
                    
                    pcall(function()
                        Workspace.Map.Decor:FindFirstChild("rail thing"):Destroy()
                    end)

                    if not Workspace.Map.Decor:FindFirstChild("rail thing") then
                        break
                    end
                end
            end))

            local MarshmallowFarm_Thread

            Start_MarshmallowFarm = function()
                MarshmallowFarm_Thread = task.spawn(LPH_JIT_MAX(function()
                    while wait() do
                        if not Config.South_Bronx.FarmingUtilities.MarshmallowFarm then continue end
                        local Owns_Bike = Config.South_Bronx.OwnedBike == "No"
                        
                        local Marshmellow_Increment = Config.South_Bronx.FarmingUtilities.MarshmallowIncrement

                        local Items = {"Gelatin", "Sugar Block Bag", "Water"}

                        Teleport(CFrame.new(510, 4, 602), Owns_Bike)

                        for _ = 1, Marshmellow_Increment do
                            for Index, Value in Items do
                                ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("StorePurchase"):FireServer(Value)
                                task.wait()
                            end
                        end

                        task.wait(3)

                        local House = GetHouse();

                        if not House then
                            repeat task.wait() House = GetHouse() until House ~= nil
                        end 

                        local Pot = House.Interior["Cooking Pot"]

                        Teleport(Pot.CFrame, Owns_Bike)

                        task.wait(1)

                        LocalPlayer.Character.Humanoid:MoveTo(Pot.Position)

                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()

                        for _ = 1, Marshmellow_Increment do
                            if not LocalPlayer.Character:FindFirstChild("Water") then
                                LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Water"))
                            end

                            task.wait(1)

                            fireproximityprompt(Pot.Attachment.ProximityPrompt)

                            task.wait(2.5)

                            repeat task.wait() until Pot.Timer.TextLabel.Text == "0"

                            if not LocalPlayer.Character:FindFirstChild("Sugar Block Bag") then
                                LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Sugar Block Bag"))
                            end

                            task.wait(1)

                            fireproximityprompt(Pot.Attachment.ProximityPrompt)

                            task.wait(2.5)

                            LocalPlayer.Character.Humanoid:UnequipTools()

                            if not LocalPlayer.Character:FindFirstChild("Gelatin") then
                                LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Gelatin"))
                            end

                            fireproximityprompt(Pot.Attachment.ProximityPrompt)

                            task.wait(3)

                            repeat task.wait() until Pot.Timer.TextLabel.Text == "0"

                            if not LocalPlayer.Character:FindFirstChild("Empty Bag") then
                                LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Empty Bag"))
                            end

                            task.wait(1)

                            fireproximityprompt(Pot.Attachment.ProximityPrompt)

                            task.wait(1)

                            LocalPlayer.Character.Humanoid:UnequipTools()
                        end

                        Teleport(CFrame.new(510, 4, 602), Owns_Bike)

                        repeat task.wait() until Workspace.NPCs:FindFirstChild('Lamont Bell')

                        task.wait(1)

                        LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(511, 4, 598))

                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()

                        for Index, Value in LocalPlayer.Backpack:GetChildren() do
                            if Value:IsA("Tool") and Value.Name:find("Marshmallow") then
                                LocalPlayer.Character.Humanoid:EquipTool(Value)
                                fireproximityprompt(Workspace.NPCs["Lamont Bell"].UpperTorso.ProximityPrompt)

                                task.wait(0.25)
                            end
                        end

                        task.wait(3)
                    end
                end))
            end

            Stop_MarshmallowFarm = LPH_NO_VIRTUALIZE(function()
                if not MarshmallowFarm_Thread then return end
                if coroutine.status(MarshmallowFarm_Thread) == "suspended" then
                    task.cancel(MarshmallowFarm_Thread)
                end
            end)

            local ChipFarm_Thread

            Start_ChipFarm = function()
                ChipFarm_Thread = task.spawn(LPH_JIT_MAX(function()
                    while task.wait(1) do
                        if not Config.South_Bronx.FarmingUtilities.ChipFarm then continue end

                        local Owns_Bike = Config.South_Bronx.OwnedBike == "No"

                        if not LocalPlayer.Backpack:FindFirstChild("Flour") or not LocalPlayer.Backpack:FindFirstChild("Potato") then
                            Teleport_Status = Teleport(CFrame.new(-773, 4, -157), Owns_Bike)
                                        
                            if not LocalPlayer.Backpack:FindFirstChild("Flour") then
                                repeat task.wait(2)
                                ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("StorePurchase"):FireServer("Flour")
                                until LocalPlayer.Backpack:FindFirstChild("Flour")
                            end
                    
                            if not LocalPlayer.Backpack:FindFirstChild("Potato") then
                                repeat task.wait(2)
                                ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("StorePurchase"):FireServer("Potato")
                                until LocalPlayer.Backpack:FindFirstChild("Potato")
                            end
                        end
                    
                        repeat task.wait() until LocalPlayer.Backpack:FindFirstChild("Potato") and LocalPlayer.Backpack:FindFirstChild("Flour")
                    
                        task.wait(3)
                    
                        Teleport_Status = Teleport(CFrame.new(-479, 4, -437), Owns_Bike)

                        repeat task.wait() until Teleport_Status == "Success"

                        task.wait(3)
                                        
                        LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-479, 4, -437))
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        fireproximityprompt(Workspace.Map.Locations["The Laboratory"].Prompts.Clipboard.ProximityPrompt)
                    
                        task.wait(2)
                    
                        local CookingBoard = GetCuttingBoard()
                    
                        LocalPlayer.Character.Humanoid:MoveTo(CookingBoard.Part.Position)
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        if not LocalPlayer.Character:FindFirstChild("Potato") then
                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Potato"))
                        end
                    
                        task.wait(2)
                    
                        fireproximityprompt(CookingBoard:FindFirstChildWhichIsA("ProximityPrompt", true))
                    
                        task.wait(3)
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-463, 4, -473))
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        fireproximityprompt(Workspace.Map.Locations["The Laboratory"].Prompts["Plastic Bag"].Attachment.ProximityPrompt)
                    
                        task.wait(1.5)
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-466, 4, -474))
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-466, 4, -522))
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        local Bowl = GetBowl()
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Bowl.CamPart.Position)
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        if not LocalPlayer.Character:FindFirstChild("Flour") then
                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Flour"))
                        end
                    
                        task.wait(1)
                    
                        fireproximityprompt(Bowl.ProximityPrompt)
                    
                        task.wait(5)
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-466, 4, -518))
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-467, 4, -470))
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        local Pot = GetPot()
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Pot.Position)
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        fireproximityprompt(Pot.ProximityPrompt)

                        task.wait(5)
                    
                        repeat task.wait(1) until Pot.Timer.TextLabel.Text == "0"

                        fireproximityprompt(Pot.ProximityPrompt)

                        PressKey(Enum.KeyCode.W, .25) task.wait(.25)
                        PressKey(Enum.KeyCode.S, .25) task.wait(.25)
                        PressKey(Enum.KeyCode.A, .25) task.wait(.25)
                        PressKey(Enum.KeyCode.D, .25) task.wait(.25)
                    
                        repeat task.wait() until LocalPlayer.Backpack:FindFirstChild("Potato Chips")

                        Teleport_Status = Teleport(Workspace.NPCs:FindFirstChild("Poor Guy").Head.CFrame)

                        repeat task.wait() until Teleport_Status == "Success"

                        task.wait(3)
                    
                        LocalPlayer.Character.Humanoid:MoveTo(Workspace.NPCs:FindFirstChild("Poor Guy").Head.Position)
                    
                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()
                    
                        fireproximityprompt(Workspace.NPCs["Poor Guy"].UpperTorso.ProximityPrompt)
                    
                        task.wait(1)
                    
                        task.wait(12.5)

                        local Hobo = Get_Hobo()

                        if not Hobo then
                            repeat wait(1)
                                Hobo = Get_Hobo()
                            until Hobo ~= nil
                        end 

                        Teleport_Status = Teleport(Hobo.Head.CFrame)

                        repeat task.wait() until Teleport_Status == "Success" and tp_debounce == false

                        task.wait(5)

                        PressKey(Enum.KeyCode.W, .25) task.wait(.25)
                        PressKey(Enum.KeyCode.S, .25) task.wait(.25)
                        PressKey(Enum.KeyCode.A, .25) task.wait(.25)
                        PressKey(Enum.KeyCode.D, .25) task.wait(.25)
                            
                        task.wait(1.25)

                        if not LocalPlayer.Character:FindFirstChild("Hot Chips") then
                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Hot Chips"))
                        end
        
                        LocalPlayer.Character.Humanoid:MoveTo(Hobo:FindFirstChild("RightLowerLeg", true).Position)

                        LocalPlayer.Character.Humanoid.MoveToFinished:Wait()

                        task.wait(4)
                    
                        local prompt = Hobo:FindFirstChildWhichIsA("ProximityPrompt", true)

                        fireproximityprompt(prompt)

                        task.wait(5)
                    end
                end))
            end
            
            Stop_ChipFarm = LPH_NO_VIRTUALIZE(function()
                if not ChipFarm_Thread then return end
                if coroutine.status(ChipFarm_Thread) == "suspended" then
                    task.cancel(ChipFarm_Thread)
                end
            end)

            local CardFarm_Thread

            Start_CardFarm = function()
                CardFarm_Thread = task.spawn(LPH_JIT_MAX(function()
                    while task.wait(1) do
                        if not Config.South_Bronx.FarmingUtilities.CardFarm then continue end
                        if not LocalPlayer.Character then continue end
                        
                        if Config.South_Bronx.TeleportMethod ~= "Tween" then
                            if playerHasCard == false then
                                if not LocalPlayer.Backpack:FindFirstChild("Fake ID") and not LocalPlayer.Character:FindFirstChild("Fake ID") and not LocalPlayer.Backpack:FindFirstChild("Card") and not LocalPlayer.Character:FindFirstChild("Card") then
                                    local Teleport_Status = Teleport(CFrame.new(219, 4, -332))
                                    repeat RunService.RenderStepped:Wait() until Workspace.NPCs:FindFirstChild("FakeIDSeller")
                                    repeat RunService.RenderStepped:Wait() fireproximityprompt(Workspace.NPCs.FakeIDSeller.UpperTorso.Attachment:FindFirstChild("ProximityPrompt")) until LocalPlayer.Backpack:FindFirstChild("Fake ID") or LocalPlayer.Character:FindFirstChild("Fake ID")
                                    repeat RunService.RenderStepped:Wait() until Teleport_Status == "Success"
            
                                    task.wait(1.5)

                                    repeat RunService.RenderStepped:Wait() if LocalPlayer.Backpack:FindFirstChild("Fake ID") then
                                        pcall(function()
                                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Fake ID"))
                                        end)
                                    end

                                    until LocalPlayer.Character:FindFirstChild("Fake ID")
                                end
            
                                if not LocalPlayer.Backpack:FindFirstChild("Card") and not LocalPlayer.Character:FindFirstChild("Card") then
                                    local Teleport_Status = Teleport(CFrame.new(-49, 4, -323))
            
                                    repeat RunService.RenderStepped:Wait() until Workspace.NPCs:FindFirstChild("Bank Teller")
            
                                    repeat RunService.RenderStepped:Wait() until Teleport_Status == "Success"
            
                                    LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-49, 4, -321))
            
                                    task.wait(2.1)
            
                                    local Application_Successful = false
                                    local Old ; Old = LocalPlayer.PlayerGui.Main.Message.Warning:GetPropertyChangedSignal("Text"):Connect(function()
                                        if not LocalPlayer.PlayerGui.Main.Message.Warning.Text:find("application") then return end
            
                                        if LocalPlayer.PlayerGui.Main.Message.Warning.Text == "Your application was successful. Please allow 30 seconds for the bank to prepare your card." then
                                            Application_Successful = true
                                            playerHasCard = true
                                        else
                                            Application_Successful = false
                                            playerHasCard = false
                                        end
                                    end)

                                    repeat RunService.RenderStepped:Wait() if LocalPlayer.Backpack:FindFirstChild("Fake ID") then
                                        pcall(function()
                                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Fake ID"))
                                        end)
                                    end
                                    
                                    until LocalPlayer.Character:FindFirstChild("Fake ID")

                                    repeat RunService.RenderStepped:Wait() until Workspace.NPCs:FindFirstChild("Bank Teller")
            
                                    repeat fireproximityprompt(Workspace.NPCs:FindFirstChild("Bank Teller").UpperTorso.Attachment:FindFirstChild("ProximityPrompt")) task.wait() until not LocalPlayer.Character:FindFirstChild("Fake ID")
            
                                    task.wait(1)
            
                                    LocalPlayer.PlayerGui.Main.Message.Warning:GetPropertyChangedSignal("Text"):Wait()
            
                                    task.spawn(function()
                                        task.wait(3)
                                        Old:Disconnect()
                                    end)
            
                                    task.wait(.5)
            
                                    if Application_Successful == false then
                                        continue
                                    end
            
                                    task.wait(1.5)
            
                                    LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-43, 4, -332))
            
                                    task.wait(1.5)
            
                                    repeat RunService.RenderStepped:Wait() fireproximityprompt(Workspace.Blank.Attachment.ProximityPrompt) until LocalPlayer.Backpack:FindFirstChild("Card")

                                    playerHasCard = false
                                end
                            else
                                local Teleport_Status = Teleport(CFrame.new(-49, 4, -323))
            
                                repeat RunService.RenderStepped:Wait() until Workspace.NPCs:FindFirstChild("Bank Teller")
        
                                repeat RunService.RenderStepped:Wait() until Teleport_Status == "Success"
        
                                LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-49, 4, -321))
        
                                task.wait(2.1)

                                LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-43, 4, -332))
            
                                task.wait(1.5)
        
                                repeat RunService.RenderStepped:Wait() fireproximityprompt(Workspace.Blank.Attachment.ProximityPrompt) until LocalPlayer.Backpack:FindFirstChild("Card")

                                playerHasCard = false
                            end
                            
                            if not LocalPlayer.Backpack:FindFirstChild("Card") and not LocalPlayer.Character:FindFirstChild("Card") then
                                continue
                            end
        
                            local ATM;
        
                            for Index, Value in Workspace.Map.ATMS:GetChildren() do
                                if Value.ATMScreen.Transparency == 0 then
                                    ATM = Value
                                    break
                                end
                            end
        
                            if ATM == nil then
                                repeat RunService.RenderStepped:Wait()
        
                                for Index, Value in Workspace.Map.ATMS:GetChildren() do
                                    if Value.ATMScreen.Transparency == 0 then
                                        ATM = Value
                                        break
                                    end
                                end
                                
                                until ATM ~= nil
                            end
        
                            task.wait(1)
        
                            local Teleport_Status = Teleport(ATMPositions[tostring(ATM)])
        
                            repeat RunService.RenderStepped:Wait() until Teleport_Status == "Success"
        
                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Card"))
                            
                            --PressKey(Enum.KeyCode.LeftShift, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.W, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.S, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.A, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.D, .25) task.wait(.25)
                            
                            task.wait(1.25)
        
                            LocalPlayer.Character.Humanoid:MoveTo(ATM.CFrame.Position)

                            task.wait(2.5)
        
                            --PressKey(Enum.KeyCode.LeftShift, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.W, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.S, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.A, .25) task.wait(.25)
                            PressKey(Enum.KeyCode.D, .25) task.wait(.25)

                            task.wait(1.25)
        
                            fireproximityprompt(ATM.Attachment.ProximityPrompt)

                            LocalPlayer.Character.Humanoid:MoveTo(ATM.CFrame.Position)
                            
                            if ATM.ATMScreen.Transparency == 1 then
                                continue
                            end
        
                            repeat RunService.RenderStepped:Wait() until LocalPlayer.PlayerGui:FindFirstChild("ATM")

                            Services.VirtualUser:CaptureController()
        
                            LocalPlayer.PlayerGui.ATM.Frame.Swipe.Position = UDim2.new(-3.0742092, 0, -0.270338974, 0)
        
                            task.wait(0.5)
        
                            LocalPlayer.PlayerGui.ATM.Frame.Swipe.Size = UDim2.new(1001 + Random.new():NextNumber(0.1, 1), 0, 1001 + Random.new():NextNumber(0.1, 1), 0)
        
                            task.wait(0.5)
        
                            repeat RunService.RenderStepped:Wait() 
                            if LocalPlayer.PlayerGui:FindFirstChild("ATM") then
                                Services.VirtualUser:CaptureController() ; 
                                Services.VirtualUser:ClickButton1(Vector2.new(LocalPlayer.PlayerGui.ATM.Frame.Swipe.AbsolutePosition)) 
                            end
        
                            until not LocalPlayer.PlayerGui:FindFirstChild("ATM")
        
                            task.wait(3)
                        else
                            if playerHasCard == false then
                                if not LocalPlayer.Backpack:FindFirstChild("Fake ID") and not LocalPlayer.Character:FindFirstChild("Fake ID") and not LocalPlayer.Backpack:FindFirstChild("Card") and not LocalPlayer.Character:FindFirstChild("Card") then
                                    local DistanceFromFakeIDSeller = GetDistance(LocalPlayer.Character.HumanoidRootPart.Position, Vector3.new(219.42543029785156, 3.7371325492858887, -332.2640686035156))

                                    local Tween = Services.TweenService:Create(LocalPlayer.Character.HumanoidRootPart, TweenInfo.new(GetTweenSpeed(DistanceFromFakeIDSeller), Enum.EasingStyle.Linear), {CFrame = CFrame.new(219.42543029785156, 3.7371325492858887, -332.2640686035156)})
            
                                    PressKeyTween(Enum.KeyCode.W, Tween) ; PressKeyTween(Enum.KeyCode.LeftShift, Tween)
            
                                    Tween:Play() ; Tween.Completed:Wait() ; Tween = nil

                                    repeat RunService.RenderStepped:Wait() fireproximityprompt(Workspace.NPCs.FakeIDSeller.UpperTorso.Attachment:FindFirstChild("ProximityPrompt")) until LocalPlayer.Backpack:FindFirstChild("Fake ID") or LocalPlayer.Character:FindFirstChild("Fake ID")
                                
                                    repeat RunService.RenderStepped:Wait() if LocalPlayer.Backpack:FindFirstChild("Fake ID") then
                                        pcall(function()
                                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Fake ID"))
                                        end)
                                    end
                                    
                                    until LocalPlayer.Character:FindFirstChild("Fake ID")
                                end
                    
                                if not LocalPlayer.Backpack:FindFirstChild("Card") and not LocalPlayer.Character:FindFirstChild("Card") then
                                    local DistanceFromFakeBankClerk = GetDistance(LocalPlayer.Character.HumanoidRootPart.Position, Vector3.new(-49.03115463256836, 3.7371387481689453, -323.28619384765625))

                                    local Tween = Services.TweenService:Create(LocalPlayer.Character.HumanoidRootPart, TweenInfo.new(GetTweenSpeed(DistanceFromFakeBankClerk), Enum.EasingStyle.Linear), {CFrame = CFrame.new(-49.03115463256836, 3.7371387481689453, -323.28619384765625)})
            
                                    PressKeyTween(Enum.KeyCode.W, Tween) ; PressKeyTween(Enum.KeyCode.LeftShift, Tween)
            
                                    Tween:Play() ; Tween.Completed:Wait() ; Tween = nil
            
                                    LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-49, 4, -321))
            
                                    task.wait(2.1)
            
                                    local Application_Successful = false
                                    local Old ; Old = LocalPlayer.PlayerGui.Main.Message.Warning:GetPropertyChangedSignal("Text"):Connect(function()
                                        if not LocalPlayer.PlayerGui.Main.Message.Warning.Text:find("application") then return end
            
                                        if LocalPlayer.PlayerGui.Main.Message.Warning.Text == "Your application was successful. Please allow 30 seconds for the bank to prepare your card." then
                                            Application_Successful = true
                                            playerHasCard = true
                                        else
                                            Application_Successful = false
                                            playerHasCard = false
                                        end
                                    end)

                                    repeat RunService.RenderStepped:Wait() if LocalPlayer.Backpack:FindFirstChild("Fake ID") then
                                        pcall(function()
                                            LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Fake ID"))
                                        end)
                                    end
                                    
                                    until LocalPlayer.Character:FindFirstChild("Fake ID")

                                    repeat RunService.RenderStepped:Wait() until Workspace.NPCs:FindFirstChild("Bank Teller")
            
                                    repeat fireproximityprompt(Workspace.NPCs:FindFirstChild("Bank Teller").UpperTorso.Attachment:FindFirstChild("ProximityPrompt")) task.wait() until not LocalPlayer.Character:FindFirstChild("Fake ID")
            
                                    task.wait(1)
            
                                    LocalPlayer.PlayerGui.Main.Message.Warning:GetPropertyChangedSignal("Text"):Wait()
            
                                    task.spawn(function()
                                        task.wait(3)
                                        Old:Disconnect()
                                    end)
            
                                    task.wait(.5)
            
                                    if Application_Successful == false then
                                        continue
                                    end
            
                                    task.wait(1.5)
            
                                    LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-43, 4, -332))
            
                                    task.wait(1.5)
            
                                    repeat RunService.RenderStepped:Wait() fireproximityprompt(Workspace.Blank.Attachment.ProximityPrompt) until LocalPlayer.Backpack:FindFirstChild("Card")

                                    playerHasCard = false
                                end
                            else
                                local DistanceFromFakeBankClerk = GetDistance(LocalPlayer.Character.HumanoidRootPart.Position, Vector3.new(-49.03115463256836, 3.7371387481689453, -323.28619384765625))

                                local Tween = Services.TweenService:Create(LocalPlayer.Character.HumanoidRootPart, TweenInfo.new(GetTweenSpeed(DistanceFromFakeBankClerk), Enum.EasingStyle.Linear), {CFrame = CFrame.new(-49.03115463256836, 3.7371387481689453, -323.28619384765625)})
        
                                PressKeyTween(Enum.KeyCode.W, Tween) ; PressKeyTween(Enum.KeyCode.LeftShift, Tween)
        
                                Tween:Play() ; Tween.Completed:Wait() ; Tween = nil
        
                                LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-49, 4, -321))
        
                                task.wait(2.1)

                                LocalPlayer.Character.Humanoid:MoveTo(Vector3.new(-43, 4, -332))
            
                                task.wait(1.5)
        
                                repeat RunService.RenderStepped:Wait() fireproximityprompt(Workspace.Blank.Attachment.ProximityPrompt) until LocalPlayer.Backpack:FindFirstChild("Card")

                                playerHasCard = false
                            end
                            
                            if not LocalPlayer.Backpack:FindFirstChild("Card") and not LocalPlayer.Character:FindFirstChild("Card") then
                                continue
                            end

                            task.wait(3)
        
                            local ATM;

                            local function GetClosestATM()
                                local ATMClosestTable = {}

                                for Index, Value in Workspace.Map.ATMS:GetChildren() do
                                    if Value.ATMScreen.Transparency == 0 then
                                       table.insert(ATMClosestTable, {ATM = Value, Range = (LocalPlayer.Character.HumanoidRootPart.Position - Value.Position).Magnitude})
                                    end
                                end

                                table.sort(ATMClosestTable, function(...)
                                    return select(1, ...).Range < select(2, ...).Range
                                end)

                                return ATMClosestTable[1] ~= nil and ATMClosestTable[1].ATM or nil
                            end
        
                            repeat RunService.RenderStepped:Wait() until GetClosestATM() ~= nil

                            ATM = GetClosestATM()
        
                            task.wait(1)

                            local DistanceFromATM = GetDistance(LocalPlayer.Character.HumanoidRootPart.Position, ATMPositions[tostring(ATM)].Position)

                            local Tween = Services.TweenService:Create(LocalPlayer.Character.HumanoidRootPart, TweenInfo.new(GetTweenSpeed(DistanceFromATM), Enum.EasingStyle.Linear), {CFrame = ATMPositions[tostring(ATM)]})
        
                            PressKeyTween(Enum.KeyCode.W, Tween) ; PressKeyTween(Enum.KeyCode.LeftShift, Tween)
        
                            Tween:Play() ; Tween.Completed:Wait() ; Tween = nil

                            LocalPlayer.Character.Humanoid:MoveTo(ATM.CFrame.Position)
        
                            task.wait(4)
        
                            fireproximityprompt(ATM.Attachment.ProximityPrompt)
                            
                            if ATM.ATMScreen.Transparency == 1 then
                                continue
                            end

                            if LocalPlayer.Backpack:FindFirstChild("Card") then
                                LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("Card"))

                                task.wait(1)
                            end
        
                            repeat RunService.RenderStepped:Wait() until LocalPlayer.PlayerGui:FindFirstChild("ATM")
        
                            Services.VirtualUser:CaptureController()
        
                            LocalPlayer.PlayerGui.ATM.Frame.Swipe.Position = UDim2.new(-3.0742092, 0, -0.270338974, 0)
        
                            task.wait(0.5)
        
                            LocalPlayer.PlayerGui.ATM.Frame.Swipe.Size = UDim2.new(1001 + Random.new():NextNumber(0.1, 1), 0, 1001 + Random.new():NextNumber(0.1, 1), 0)
        
                            task.wait(0.5)
        
                            repeat RunService.RenderStepped:Wait() 
                            if LocalPlayer.PlayerGui:FindFirstChild("ATM") then
                                Services.VirtualUser:CaptureController() ;
                                Services.VirtualUser:ClickButton1(Vector2.new(LocalPlayer.PlayerGui.ATM.Frame.Swipe.AbsolutePosition)) 
                            end
        
                            until not LocalPlayer.PlayerGui:FindFirstChild("ATM")
        
                            task.wait(3)
                        end
                    end
                end))
            end

            Stop_CardFarm = LPH_NO_VIRTUALIZE(function()
                if not CardFarm_Thread then return end
                if coroutine.status(CardFarm_Thread) == "suspended" then
                    task.cancel(CardFarm_Thread)
                end
            end)

            local Humanoid = LocalPlayer.Character:WaitForChild("Humanoid")

            Humanoid.Died:Connect(function()
                tp_debounce = false

                if Config.South_Bronx.FarmingUtilities.CardFarm then
                    Stop_CardFarm()
                end

                if Config.South_Bronx.FarmingUtilities.BoxFarm then
                    Stop_BoxFarm()
                end

                if Config.South_Bronx.FarmingUtilities.ChipFarm then
                    Stop_ChipFarm()
                end

                if Config.South_Bronx.FarmingUtilities.MarshmallowFarm then
                    Stop_MarshmallowFarm()
                end
            end)

            LocalPlayer.CharacterAdded:Connect(function(Character)
                Humanoid = Character:WaitForChild("Humanoid")
                tp_debounce = false

                if Config.South_Bronx.FarmingUtilities.CardFarm then
                    Stop_CardFarm()
                    task.wait(10)
                    Start_CardFarm()
                end

                if Config.South_Bronx.FarmingUtilities.BoxFarm then
                    Stop_BoxFarm()
                    task.wait(10)
                    Start_BoxFarm()
                end

                if Config.South_Bronx.FarmingUtilities.ChipFarm then
                    Stop_ChipFarm()
                    task.wait(10)
                    Start_ChipFarm()
                end

                if Config.South_Bronx.FarmingUtilities.MarshmallowFarm then
                    Stop_MarshmallowFarm()
                    task.wait(10)
                    Start_MarshmallowFarm()
                end

                Humanoid.Died:Connect(function()
                    if Config.South_Bronx.FarmingUtilities.CardFarm then
                        Stop_CardFarm()
                    end

                    if Config.South_Bronx.FarmingUtilities.BoxFarm then
                        Stop_BoxFarm()
                    end

                    if Config.South_Bronx.FarmingUtilities.ChipFarm then
                        Stop_ChipFarm()
                    end

                    if Config.South_Bronx.FarmingUtilities.MarshmallowFarm then
                        Stop_MarshmallowFarm()
                    end
                end)
            end)

            if Workspace:FindFirstChild("PromptPurchases") then
                GunPosition = {}

                for Index, Value in ReplicatedStorage.Workspace.PromptPurchases:GetChildren() do
                    if Value:IsA("Model") and not Workspace:FindFirstChild("PromptPurchases"):FindFirstChild(Value.Name) then
                        Value.Parent = Workspace:FindFirstChild("PromptPurchases")
                    end
                end

                for Index, Value in Workspace.PromptPurchases:GetChildren() do
                    if not Value:FindFirstChild("Price") then continue end
                    if not Value:FindFirstChild("proxprompt") then continue end
                    if not Value:FindFirstChild("proxprompt"):FindFirstChildOfClass("ProximityPrompt") then continue end

                    local GunWithPrice = string.format("%s - $%s", tostring(Value), tostring(Value.Price.Value))
                    if not table.find(Config.South_Bronx.Guns, GunWithPrice) then
                        table.insert(Config.South_Bronx.Guns, GunWithPrice)

                        GunPosition[Value.Name] = Value.proxprompt.CFrame
                    end
                end

                table.sort(Config.South_Bronx.Guns)
            end
        end

        if Game_Name == "The Bronx" then
            RequireSupport = type(select(2, pcall(require, Services.ReplicatedStorage.BlacklistedMarketTools))) == "table"
        end
            
        if Game_Name == "The Bronx" and RequireSupport then                                                
            local OldWeaponValues = {}

            local GetAllTools = LPH_NO_VIRTUALIZE(function(LocalToolsOnly)
                local Result = {}
    
                for _, Value in next, {not LocalToolsOnly and Lighting, LocalPlayer.Backpack, LocalPlayer.Character ~= nil and LocalPlayer.Character} do
                    if type(Value) == "userdata" then
                        for _, _Value in next, Value:GetChildren() do
                            --if _Value.Name == "TP9EliteTan" then continue end
                            Result[#Result + 1] = _Value
                        end
                    end
                end
    
                return Result
            end)

            local GetPercentage = LPH_NO_VIRTUALIZE(function(DefaultValue, NewValue)
                NewValue = math.max(0, math.min(100, NewValue))

                local newRecoil = DefaultValue * (NewValue / 100)
            
                return newRecoil
            end)

            local ModWeapon = LPH_JIT_MAX(function(Weapon)
                local Module = Weapon:FindFirstChildOfClass("ModuleScript")
                local OldConfig = OldWeaponValues[Weapon.Name]
    
                if Module and Module.Name == "Setting" then
                    Module = require(Module)
                else
                    return
                end

                if SetInfiniteAmmo == nil then
                    SetInfiniteAmmo = true
                end

                if SetInfiniteClips == nil then
                    SetInfiniteClips = true
                end

                if Config.TheBronx._Modifications.InfiniteClips then
                    debug.setupvalue(getsenv(Weapon:FindFirstChild("GunScript_Local")).Reload, 3, 90000)

                    SetInfiniteClips = false
                end

                if Config.TheBronx._Modifications.InfiniteClips == false and SetInfiniteClips == false then
                    debug.setupvalue(getsenv(Weapon:FindFirstChild("GunScript_Local")).Reload, 3, OldConfig.AmmoPerMag)

                    SetInfiniteClips = true
                end

                if Config.TheBronx._Modifications.InfiniteAmmo then
                    debug.setupvalue(getsenv(Weapon:FindFirstChild("GunScript_Local")).Reload, 5, Config.TheBronx._Modifications.InfiniteAmmo and 90000 or OldConfig.AmmoPerMag / 2)
                    SetInfiniteAmmo = false
                end

                if Config.TheBronx._Modifications.InfiniteAmmo == false and SetInfiniteAmmo == false then
                    debug.setupvalue(getsenv(Weapon:FindFirstChild("GunScript_Local")).Reload, 5, OldConfig.AmmoPerMag)

                    SetInfiniteAmmo = true
                end

                Module.LimitedAmmoEnabled = false

                Module.FireRate = Config.TheBronx._Modifications.ModifyFireRate and GetPercentage(OldConfig.FireRate, Config.TheBronx._Modifications.FireRateSpeed) or OldConfig.FireRate
                            
                Module.ReloadTime = Config.TheBronx._Modifications.ModifyReloadSpeed and GetPercentage(OldConfig.ReloadTime, Config.TheBronx._Modifications.ReloadSpeed) or OldConfig.ReloadTime
                                
                if Module.SpreadXY then
                    Module.SpreadXY = Config.TheBronx._Modifications.ModifySpreadValue and GetPercentage(OldConfig.SpreadXY, Config.TheBronx._Modifications.SpreadPercentage) or OldConfig.SpreadXY
                end

                if Module.SpreadYX then
                    Module.SpreadYX = Config.TheBronx._Modifications.ModifySpreadValue and GetPercentage(OldConfig.SpreadYX, Config.TheBronx._Modifications.SpreadPercentage) or OldConfig.SpreadYX
                end

                if Module.Spread then
                    Module.Spread = Config.TheBronx._Modifications.ModifySpreadValue and GetPercentage(OldConfig.Spread, Config.TheBronx._Modifications.SpreadPercentage) or OldConfig.Spread
                end

                Module.SpreadX = Config.TheBronx._Modifications.ModifySpreadValue and GetPercentage(OldConfig.SpreadX, Config.TheBronx._Modifications.SpreadPercentage) or OldConfig.SpreadX
                Module.SpreadY = Config.TheBronx._Modifications.ModifySpreadValue and GetPercentage(OldConfig.SpreadY, Config.TheBronx._Modifications.SpreadPercentage) or OldConfig.SpreadY

                Module.Recoil = Config.TheBronx._Modifications.ModifyRecoilValue and GetPercentage(OldConfig.Recoil, Config.TheBronx._Modifications.RecoilPercentage) or OldConfig.Recoil

                Module.BaseDamage = Config.TheBronx._Modifications.InfiniteDamage and math.huge or OldConfig.BaseDamage

                Module.Auto = Config.TheBronx._Modifications.Automatic or OldConfig.Auto
            
                Module.JamChance = Config.TheBronx._Modifications.DisableJamming and 0 or OldConfig.JamChance
    
                Module.Auto = Config.TheBronx._Modifications.Automatic or OldConfig.Auto
        
                Module.EquipTime = Config.TheBronx._Modifications.ModifyEquipSpeed and GetPercentage(OldConfig.EquipTime, Config.TheBronx._Modifications.EquipSpeed) or OldConfig.EquipTime

                Module.JamChance = Config.TheBronx._Modifications.NoJam and 0 or OldConfig.JamChance
            end)

            local ModWeapons = LPH_NO_VIRTUALIZE(function()
                for _, Weapon in next, GetAllTools(true) do
                    if Weapon:IsA("Tool") then
                        ModWeapon(Weapon)
                    end
                end
            end)

            local SetValues = LPH_NO_VIRTUALIZE(function()
                for _, Weapon in next, GetAllTools() do
                    if Weapon:IsA("Tool") then
                        local Module = Weapon:FindFirstChildOfClass("ModuleScript")

                        if Module and Module.Name == "Setting" then
                            Module = require(Module)
                        end

                        if type(Module) == "table" and not OldWeaponValues[Weapon.Name] then
                            OldWeaponValues[Weapon.Name] = {}

                            local OldConfig = OldWeaponValues[Weapon.Name]

                            for Index, Value in next, Module do
                                OldConfig[Index] = Value
                            end
                        end
                    end
                end
            end)

            if not LocalPlayer.Character then LocalPlayer.CharacterAdded:Wait() end

            LocalPlayer.Character.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Value)
                if not Value:IsA("Tool") then return end

                SetValues()

                ModWeapon(Value);
            end))

            LocalPlayer.Backpack.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Value)
                if not Value:IsA("Tool") then return end
                
                SetValues()

                ModWeapon(Value);
            end))

            LocalPlayer.CharacterAdded:Connect(function(Character)
                Character.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Value)
                    if not Value:IsA("Tool") then return end
    
                    SetValues()

                    ModWeapon(Value);
                end))
    
                LocalPlayer.Backpack.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function(Value)
                    if not Value:IsA("Tool") then return end
                        
                    SetValues()

                    ModWeapon(Value);
                end))
            end)

            local ConfigMetatable = getmetatable(Config.TheBronx.Modifications)

            ConfigMetatable.__index = LPH_NO_VIRTUALIZE(function(...)
                return Config.TheBronx._Modifications[select(2, ...)]
            end)
    
            ConfigMetatable.__newindex = LPH_NO_VIRTUALIZE(function(...)
                local Index, Value = select(2, ...)
    
                Config.TheBronx._Modifications[Index] = Value; ModWeapons()
            end)
        end

        if Game_Name == "The Bronx" then
            RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function()
                if LocalPlayer.PlayerGui:FindFirstChild("Run") and LocalPlayer.PlayerGui.Run:FindFirstChild("StaminaBarScript", true) then
                    LocalPlayer.PlayerGui.Run:FindFirstChild("StaminaBarScript", true).Disabled = Config.TheBronx.PlayerModifications.InfiniteStamina
                end

                if LocalPlayer.PlayerGui:FindFirstChild("Hunger") and LocalPlayer.PlayerGui.Hunger:FindFirstChild("HungerBarScript", true) then
                    LocalPlayer.PlayerGui.Hunger:FindFirstChild("HungerBarScript", true).Disabled = Config.TheBronx.PlayerModifications.InfiniteHunger
                end

                if LocalPlayer.PlayerGui:FindFirstChild("SleepGui") and LocalPlayer.PlayerGui.SleepGui:FindFirstChild("sleepScript", true) then
                    LocalPlayer.PlayerGui.SleepGui:FindFirstChild("sleepScript", true).Disabled = Config.TheBronx.PlayerModifications.InfiniteSleep
                end

                if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("CameraBobbing") then
                    LocalPlayer.Character:FindFirstChild("CameraBobbing").Disabled = Config.TheBronx.PlayerModifications.DisableCameraBobbing
                end

                if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("FallDamageRagdoll") then
                    LocalPlayer.Character:FindFirstChild("FallDamageRagdoll").Disabled = Config.TheBronx.PlayerModifications.NoFallDamage
                end

                if LocalPlayer.PlayerGui:FindFirstChild("BloodGui") then
                    LocalPlayer.PlayerGui:FindFirstChild("BloodGui").Enabled = not Config.TheBronx.PlayerModifications["DisableBloodEffects"]
                end

                if LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce") and LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce"):FindFirstChild("LocalScript") then
                    LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce").LocalScript.Disabled = Config.TheBronx.PlayerModifications.NoJumpCooldown
                end

                if LocalPlayer.PlayerGui:FindFirstChild("CameraTexts") and LocalPlayer.PlayerGui:FindFirstChild("CameraTexts"):FindFirstChild("LocalScript") then
                    LocalPlayer.PlayerGui:FindFirstChild("CameraTexts").Enabled = not Config.TheBronx.PlayerModifications.DisableCameras
                    LocalPlayer.PlayerGui:FindFirstChild("CameraTexts").LocalScript.Disabled = Config.TheBronx.PlayerModifications.DisableCameras
                end

                if LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce") and LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce"):FindFirstChild("LocalScript") then
                    LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce").LocalScript.Disabled = Config.TheBronx.PlayerModifications.NoJumpCooldown
                end

                if LocalPlayer.PlayerGui:FindFirstChild("RentGui") and LocalPlayer.PlayerGui:FindFirstChild("RentGui"):FindFirstChild("LocalScript") then
                    LocalPlayer.PlayerGui:FindFirstChild("RentGui").LocalScript.Disabled = Config.TheBronx.PlayerModifications.NoRentPay
                end

                if Config.TheBronx.PlayerModifications.AutoPickupBags and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
                    for Index, Value in next, Workspace.Storage:GetChildren() do
                        if not Value:IsA("MeshPart") then continue end
                        if Value:FindFirstChild("PlayerName") and Value:FindFirstChild("PlayerName").Value == LocalPlayer.Name then continue end
        
                        if (Value.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude < 5 then
                            fireproximityprompt(Value.stealprompt)
                        end
                    end
                end

                if Config.TheBronx.PlayerModifications.AutoPickupCash and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
                    for Index, Value in next, Workspace.Dollas:GetChildren() do
                        if not Value:IsA("Part") then continue end
        
                        if (Value.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude < 5 then
                            fireproximityprompt(Value.ProximityPrompt)
                        end
                    end
                end
            end))       
            
            LocalPlayer.CharacterAdded:Connect(LPH_NO_VIRTUALIZE(function()
                if Config.TheBronx.PlayerModifications.DisableCameras then
                    Lighting.Shiesty:FindFirstChildWhichIsA("RemoteEvent", true):FireServer()
                end
            end))

            UserInputService.InputBegan:Connect(LPH_NO_VIRTUALIZE(function(Input, Game_Event)
                if Game_Event then return end
                if not Config.MiscSettings.ModifyJump.Infinity then return end

                if Input.KeyCode == Enum.KeyCode.Space then
                    if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") and LocalPlayer.Character.Humanoid.Health ~= 0 then
                        LocalPlayer.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
                    end
                end
            end))

            local DeathFrame;

            if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                LocalPlayer.Character:FindFirstChild("Humanoid").Died:Connect(LPH_NO_VIRTUALIZE(function()
                    DeathFrame = LocalPlayer.Character:WaitForChild("HumanoidRootPart").CFrame
                end))

                LocalPlayer.Character.DescendantAdded:Connect(function(Descendant)
                    if Descendant:IsA("BodyVelocity") or Descendant:IsA("LinearVelocity") or Descendant:IsA("VectorForce") and Config.TheBronx.PlayerModifications.NoKnockback then
                        task.wait(); Descendant:Destroy()
                    end
                end)
            end

            LocalPlayer.CharacterAdded:Connect(LPH_NO_VIRTUALIZE(function(Character)
                Character:WaitForChild("Humanoid"); Character:WaitForChild("HumanoidRootPart");

                LocalPlayer.Character.DescendantAdded:Connect(function(Descendant)
                    if Descendant:IsA("BodyVelocity") or Descendant:IsA("LinearVelocity") or Descendant:IsA("VectorForce") and Config.TheBronx.PlayerModifications.NoKnockback then
                        task.wait(); Descendant:Destroy()
                    end
                end)

                Character:WaitForChild("Humanoid").Died:Connect(function()
                    DeathFrame = Character:WaitForChild("HumanoidRootPart").CFrame
                end)

                if Config.TheBronx.PlayerModifications.RespawnWhereYouDied and typeof(DeathFrame) == "CFrame" then
                    Character:WaitForChild("HumanoidRootPart").CFrame = DeathFrame
                end
            end))

            local KEYCODES = {
                [Enum.KeyCode.W] = true,
                [Enum.KeyCode.A] = true,
                [Enum.KeyCode.S] = true,
                [Enum.KeyCode.D] = true,
                [Enum.KeyCode.LeftControl] = true,
                [Enum.KeyCode.Space] = true
            }
            
            local root = LocalPlayer.Character:WaitForChild("HumanoidRootPart")
            local humanoid = LocalPlayer.Character:WaitForChild("Humanoid")
            local input_keys = {}
            local flight_registry = {}
            
            -- Functions
            local isKeysPressed = function(...)
                local keys = {...}
                for i = 1, #keys do
                    if input_keys[keys[i]] then return 1 end
                end
                return 0
            end
            
            local getFlightDirection = function()
                return Vector3.new(
                    isKeysPressed(Enum.KeyCode.D) - isKeysPressed(Enum.KeyCode.A),
                    isKeysPressed(Enum.KeyCode.Space) - isKeysPressed(Enum.KeyCode.LeftControl),
                    isKeysPressed(Enum.KeyCode.S) - isKeysPressed(Enum.KeyCode.W)
                )
            end
            
            StartFlight = LPH_NO_VIRTUALIZE(function()
                if Config.MiscSettings.Fly.Type == "Classic" then
                    local gyro = Instance.new("BodyGyro")
                    local velo = Instance.new("BodyVelocity")
                    table.insert(
                        flight_registry,
                        RunService.Stepped:Connect(function(t, dt)
                            if not root or not humanoid then return end
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            humanoid.PlatformStand = true
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            local velocity = getFlightDirection() * Config.MiscSettings.Fly.Speed
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            local orientation = CFrame.fromEulerAnglesXYZ(Camera.CFrame:ToEulerAnglesXYZ())
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            gyro.CFrame = orientation
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            velo.Velocity = orientation:PointToWorldSpace(velocity)
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            gyro.Parent = root
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            velo.Parent = root
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                        end)
                    )
                    table.insert(flight_registry, gyro)
                    table.insert(flight_registry, velo)
                    table.insert(flight_registry, function() humanoid.PlatformStand = false end)
                    gyro.P = 9e4
                    gyro.D = 1e3
                    gyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
                    velo.MaxForce = Vector3.new(9e9, 9e9, 9e9)
                elseif Config.MiscSettings.Fly.Type == "CFrame" then
                    table.insert(
                        flight_registry,
                        RunService.Stepped:Connect(function(t, dt)
                            if not root or not humanoid then return end
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            local velocity = getFlightDirection() * Config.MiscSettings.Fly.Speed * dt
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            local position, orientation = CFrame.new(root.Position), CFrame.fromEulerAnglesXYZ(Camera.CFrame:ToEulerAnglesXYZ())
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            root.CFrame = position * orientation * CFrame.new(velocity)
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            root.AssemblyLinearVelocity = Vector3.zero
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            root.AssemblyAngularVelocity = Vector3.zero
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            root.Anchored = true
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                            humanoid.PlatformStand = true
                            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
                        end)
                    )
                    table.insert(flight_registry, function() root.Anchored = false end)
                    table.insert(flight_registry, function() humanoid.PlatformStand = false end)
                end
            end)
            
            ResetFlight = LPH_NO_VIRTUALIZE(function()
                for i,v in flight_registry do
                    local t = typeof(v)
                    if t == "RBXScriptConnection" then v:Disconnect()
                    elseif t == "Instance" then v:Destroy()
                    elseif t == "function" then task.spawn(v) end
                end
                flight_registry = {}
            end)
            
            local OnCharacter = LPH_NO_VIRTUALIZE(function(character: Model)
                root = character:WaitForChild("HumanoidRootPart")
                humanoid = character:WaitForChild("Humanoid")

                if Config.TheBronx.Fly.Enabled then
                    RunService.Stepped:Wait()
                    StartFlight()
                end
            end)
            
            local OnInputBegan = LPH_NO_VIRTUALIZE(function(input: InputObject, gameProcessedEvent: boolean)
                if gameProcessedEvent then return end
                if input.UserInputType ~= Enum.UserInputType.Keyboard then return end
                local keycode = input.KeyCode
                if KEYCODES[keycode] then input_keys[keycode] = true end
            end)
            
            local OnInputEnded = LPH_NO_VIRTUALIZE(function(input: InputObject)
                if input.UserInputType ~= Enum.UserInputType.Keyboard then return end
                local keycode = input.KeyCode
                if KEYCODES[keycode] then input_keys[keycode] = false end
            end)
            
            local OnCamera = LPH_NO_VIRTUALIZE(function()
                Camera = Workspace.CurrentCamera or Camera
            end)
            
            if LocalPlayer.Character then task.spawn(OnCharacter, LocalPlayer.Character) end
            LocalPlayer.CharacterAdded:Connect(OnCharacter)
            UserInputService.InputBegan:Connect(OnInputBegan)
            UserInputService.InputEnded:Connect(OnInputEnded)
            Workspace.Changed:Connect(OnCamera)

            local kill_gun = LPH_JIT_MAX(function(target: string, hpart: string, damage: number) 
                if not hpart then
                    hpart = "head"
                end

                if not damage then
                    damage = math.huge
                end

                local data = {
                    ["tool"] = Players.LocalPlayer.Character:FindFirstChildOfClass("Tool"),
                    ["target"] = Players[target],
                    ["hitpos"] = Players[target].Character[hpart].Position,
                }

                if not rawget(data, "tool") then
                    return
                end

                if RequireSupport then
                    require(rawget(data, "tool").Setting).Range = 10000
                end

                ReplicatedStorage.VisualizeMuzzle:FireServer(table.unpack({
                    rawget(data, "tool").Handle,
                    true,
                    {
                        false,
                        7,
                        Color3.new(1, 1.1098039150238, 0),
                        15,
                        true,
                        0.02
                    },
                    rawget(data, "tool").GunScript_Local.MuzzleEffect
                }))

                ReplicatedStorage.VisualizeBullet:FireServer(table.unpack({
                    rawget(data, "tool"),
                rawget(data, "tool").Handle,
                    Vector3.new(-0.17746905982494, 0.088731124997139, 0.98011803627014),
                    rawget(data, "tool").Handle.GunFirePoint,
                    {
                        true,
                        {
                            112139677907600,
                            92977228204408,
                            112139677907600,
                            92977228204408
                        },
                        1,
                        1,
                        10,
                        rawget(data, "tool").GunScript_Local.HitEffect,
                        true
                    },
                    {
                        true,
                        {
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        },
                        1,
                        1,
                        1,
                        rawget(data, "tool").GunScript_Local.BloodEffect
                    },
                    {
                        true,
                        0.2,
                        {
                            3696144972
                        },
                        true,
                        7,
                        1
                    },
                    {
                        false,
                        8,
                        true,
                        {
                            163064102
                        },
                        1,
                        1.5,
                        1,
                        false,
                        rawget(data, "tool").GunScript_Local.ExplosionEffect
                    },
                    {
                        false,
                        Vector3.new(0.10000000149012, 0, 0),
                        Vector3.new(-0.10000000149012, 0, 0),
                        rawget(data, "tool").GunScript_Local.TracerEffect,
                        nil,
                        rawget(data, "tool").GunScript_Local.ParticleEffect,
                        300,
                        526,
                        0,
                        Vector3.zero,
                        Vector3.new(0.40000000596046, 0.40000000596046, 0.40000000596046),
                        Color3.new(0.63921570777893, 0.63529413938522, 0.61176472902298),
                        1,
                        Enum.Material.Neon,
                        Enum.PartType.Cylinder,
                        false,
                        6696543809,
                        0,
                        Vector3.new(0.0070000002160668, 0.0070000002160668, 0.0070000002160668)
                    },
                    {
                        true,
                        {
                            269514869,
                            269514887,
                            269514807,
                            269514817
                        },
                        0.5,
                        1,
                        1.5,
                        100
                    },
                    {
                        false,
                        3,
                        Color3.new(1, 0.64705884456635, 0.60000002384186),
                        6,
                        true
                    }
                }))

                ReplicatedStorage.InflictTarget:FireServer(table.unpack({
                    rawget(data, "tool"),
                    LocalPlayer,
                    rawget(data, "target").Character.Humanoid,
                    rawget(data, "target").Character[hpart],
                    damage,
                    {
                        0,
                        0,
                        false,
                        false,
                        rawget(data, "tool").GunScript_Server.IgniteScript,
                        rawget(data, "tool").GunScript_Server.IcifyScript,
                        100,
                        100
                    },
                    {
                        false,
                        5,
                        3
                    },
                    rawget(data, "target").Character[hpart],
                    {
                        false,
                        {
                            1930359546
                        },
                        1,
                        1.5,
                        1
                    },
                    rawget(data, "hitpos"),
                    Vector3.new(0.074456036090851, -0.099775791168213, -0.99222022294998),
                    true
                }))
            end)

            getgenv().kill_gun = kill_gun

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait(1) do
                    if not Config.TheBronx.KillAura then continue end
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChildOfClass("Tool") or not LocalPlayer.Character:FindFirstChildOfClass("Tool"):FindFirstChild("Setting") then continue end
                    for Index, Value in Players:GetPlayers() do
                        if table.find(library.whitelist, tostring(Value)) then continue end
                        if Value == LocalPlayer then continue end
                        if not Value.Character or not Value.Character:FindFirstChildOfClass("Humanoid") or not Value.Character:FindFirstChild("HumanoidRootPart") then continue end
                        if Value.Character:FindFirstChildOfClass("Humanoid").Health == 0 then continue end
                        if Value.Character:FindFirstChildOfClass("ForceField") then continue end

                        if not DistanceCheck(Value, Config.TheBronx.KillAuraRange) then continue end

                        kill_gun(tostring(Value), 'Head', math.huge)
                    end
                end
            end))

            local Get_Vehicle = LPH_NO_VIRTUALIZE(function()
                for Index, Value in Workspace.CivCars:GetChildren() do
                    if not Value:FindFirstChild("DriveSeat") then continue end
                    if not Value.DriveSeat.Occupant then
                        return Value
                    end
                end
            end)

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait() do
                    if not Config.TheBronx.PlayerUtilities.BugPlayer then continue end
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer) or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart") then continue end                    

                    local Car_To_Use = Get_Vehicle()

                    if not Car_To_Use then continue end
                    if not Car_To_Use:FindFirstChild("DriveSeat") then continue end
                    if Car_To_Use:FindFirstChild("DriveSeat").Occupant then continue end

                    if not Car_To_Use:GetAttribute("Usable") or Car_To_Use:GetAttribute("Usable") == false then
                        Car_To_Use.DriveSeat:Sit(LocalPlayer.Character.Humanoid)

                        Car_To_Use:SetAttribute("Usable", true)
                        task.wait(1)

                        LocalPlayer.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)

                        LocalPlayer.Character.Humanoid.Jump = true
                        LocalPlayer.Character.Humanoid.Sit = false
                    end
                    
                    task.wait()

                    if not Car_To_Use.PrimaryPart then
                        Car_To_Use.PrimaryPart = Car_To_Use.Body:FindFirstChild("#Weight")
                    end

                    Car_To_Use:SetPrimaryPartCFrame(Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart").CFrame)
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait(.25) do
                    if not Config.TheBronx.AutoDrop then continue end
                    ReplicatedStorage:WaitForChild("BankProcessRemote"):InvokeServer("Drop", tostring(Config.TheBronx.MoneyAmount))
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait(1) do
                    if not Config.TheBronx.PlayerUtilities.AutoKill then continue end
                    if not LocalPlayer.Character then continue end
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer) or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart") then continue end                    
                    if not LocalPlayer.Character:FindFirstChildOfClass("Tool") then continue end
                    if not LocalPlayer.Character:FindFirstChildOfClass("Tool"):FindFirstChild("GunScript_Local") then continue end

                    if Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("Humanoid").Health == 0 then continue end
                    if Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChildOfClass("ForceField") then continue end

                    if RequireSupport then
                        kill_gun(Config.TheBronx.PlayerUtilities.SelectedPlayer, 'Head', math.huge)
                    else
                        if DistanceCheck(Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer), 300) == false then
                            local OldCFrame = LocalPlayer.Character:FindFirstChild("HumanoidRootPart").CFrame
                            Teleport(Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart").CFrame)
                            kill_gun(Config.TheBronx.PlayerUtilities.SelectedPlayer, 'Head', math.huge)
                            task.wait(.5)
                            Teleport(OldCFrame)
                        else
                            kill_gun(Config.TheBronx.PlayerUtilities.SelectedPlayer, 'Head', math.huge)
                        end
                    end
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait(2) do
                    if not Config.TheBronx.PlayerUtilities.AutoRagdoll then continue end
                    if not LocalPlayer.Character then continue end
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer) or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart") then continue end                    
                    if not LocalPlayer.Character:FindFirstChildOfClass("Tool") then continue end
                    if not LocalPlayer.Character:FindFirstChildOfClass("Tool"):FindFirstChild("GunScript_Local") then continue end

                    if Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("Humanoid").Health == 0 then continue end
                    if Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("Humanoid"):GetState() == Enum.HumanoidStateType.Physics then continue end

                    kill_gun(Config.TheBronx.PlayerUtilities.SelectedPlayer, 'RightUpperLeg', 0.01)
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait() do
                    if not Config.TheBronx.PlayerUtilities.BringingPlayer then continue end
                    if tostring(Config.TheBronx.PlayerUtilities.SelectedPlayer) == tostring(LocalPlayer) then continue end
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer) or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character or not Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart") then continue end
                    Players:FindFirstChild(Config.TheBronx.PlayerUtilities.SelectedPlayer).Character:FindFirstChild("HumanoidRootPart").CFrame = LocalPlayer.Character:FindFirstChild("HumanoidRootPart").CFrame + Vector3.new(2, 0, 0)
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do
                    task.wait(0)
                    if Config.TheBronx.VehicleModifications.SpeedEnabled and UserInputService:IsKeyDown(Enum.KeyCode.W) then
                        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                            if LocalPlayer.Character and typeof(LocalPlayer.Character) == "Instance" then
                                local Humanoid = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid")
                                if Humanoid and typeof(Humanoid) == "Instance" then
                                    local SeatPart = Humanoid.SeatPart
                                    if SeatPart and typeof(SeatPart) == "Instance" and SeatPart:IsA("VehicleSeat") then
                                        SeatPart.AssemblyLinearVelocity *= Vector3.new(1 + Config.TheBronx.VehicleModifications.SpeedValue, 1, 1 + Config.TheBronx.VehicleModifications.SpeedValue)
                                    end
                                end
                            end
                        end
                    end
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do
                    task.wait(0)
                    if Config.TheBronx.VehicleModifications.BreakEnabled and UserInputService:IsKeyDown(Enum.KeyCode.S) then
                        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                            if LocalPlayer.Character and typeof(LocalPlayer.Character) == "Instance" then
                                local Humanoid = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid")
                                if Humanoid and typeof(Humanoid) == "Instance" then
                                    local SeatPart = Humanoid.SeatPart
                                    if SeatPart and typeof(SeatPart) == "Instance" and SeatPart:IsA("VehicleSeat") then
                                        SeatPart.AssemblyLinearVelocity *= Vector3.new(1 - Config.TheBronx.VehicleModifications.BreakValue, 1, 1 - Config.TheBronx.VehicleModifications.BreakValue)
                                    end
                                end
                            end
                        end
                    end
                end
            end))

            local GetPlaceToPlaceWood = LPH_NO_VIRTUALIZE(function()
                for Index, Value in Workspace.ConstructionStuff:GetChildren() do
                    if Value.Name:find("Wall") and Value:IsA("Part") and Value:FindFirstChild("Prompt") then
                        if Value:FindFirstChild("Prompt").Enabled then
                            return Value
                        end
                    end
                end
            end)

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do task.wait()
                    if not Config.TheBronx.Farms.FarmConstructionJob then continue end

                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then continue end
                    if not LocalPlayer.Character:FindFirstChild("Humanoid") or LocalPlayer.Character:FindFirstChild("Humanoid").Health == 0 then continue end

                    if not LocalPlayer:GetAttribute("WorkingJob") then
                        Teleport(CFrame.new(-1729, 371, -1171))

                        task.wait(0.4)

                        fireproximityprompt(Workspace.ConstructionStuff["Start Job"].Prompt)

                        repeat task.wait() until LocalPlayer:GetAttribute("WorkingJob")
                    end

                    if not LocalPlayer.Backpack:FindFirstChild("PlyWood") and not LocalPlayer.Character:FindFirstChild("PlyWood") then
                        Teleport(CFrame.new(-1728, 371, -1178))
                        
                        repeat task.wait() fireproximityprompt(Workspace.ConstructionStuff["Grab Wood"].Prompt) until LocalPlayer.Backpack:FindFirstChild("PlyWood") or LocalPlayer.Character:FindFirstChild("PlyWood")
                    end

                    repeat task.wait() until LocalPlayer.Backpack:FindFirstChild("PlyWood") or LocalPlayer.Character:FindFirstChild("PlyWood")

                    LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("PlyWood"))

                    local PlaceToPlaceWood = GetPlaceToPlaceWood()

                    if not PlaceToPlaceWood then continue end

                    Teleport(PlaceToPlaceWood.CFrame)

                    repeat task.wait()
                        fireproximityprompt(PlaceToPlaceWood.Prompt)
                    until not LocalPlayer.Character:FindFirstChild("PlyWood") or not PlaceToPlaceWood.Prompt.Enabled
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do task.wait()
                    if not Config.TheBronx.Farms.FarmBank then continue end

                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then continue end
                    if not LocalPlayer.Character:FindFirstChild("Humanoid") or LocalPlayer.Character:FindFirstChild("Humanoid").Health == 0 then continue end

                    local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                    local Robbable = Workspace.vault.door.robPrompt.ProximityPrompt.Enabled

                    if not Robbable then
                        if Config.TheBronx.Farms.AFKCheck then
                            Teleport(SafePosition)
                        end

                        task.wait(0.4)

                        continue
                    end

                    if not LocalPlayer.Character:FindFirstChild("DuffelBag") then
                        Teleport(CFrame.new(-397, 340, -551))

                        task.wait(0.4)

                        fireproximityprompt(Workspace.dufflebagequip:FindFirstChildWhichIsA("ProximityPrompt"))
                    end

                    if not LocalPlayer.Backpack:FindFirstChild("C4") and not LocalPlayer.Character:FindFirstChild("C4") then
                        Teleport(CFrame.new(-393, 340, -564))

                        task.wait(0.4)

                        fireproximityprompt(Workspace.GUNS.C4.Handle.BuyPrompt)
                    end

                    repeat task.wait() until LocalPlayer.Backpack:FindFirstChild("C4") or LocalPlayer.Character:FindFirstChild("C4")

                    LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack:FindFirstChild("C4"))

                    Teleport(CFrame.new(-196, 374, -1216))

                    task.wait(0.4)

                    fireproximityprompt(Workspace.vault.door.robPrompt.ProximityPrompt)

                    task.wait(2)

                    local Number = LocalPlayer.Character.DuffelBag.display.SurfaceGui.Frame.TextLabel.Text

                    Number = Number:gsub("0/", "")

                    for Index = 1, math.min(5, tonumber(Number)) do
                        local Cash = Workspace.BankItems.Cash:FindFirstChild("Cash")

                        if not Cash then
                            for i,v in Workspace:GetChildren() do
                                if v.Name == "Cash" and v:IsA("Model") and v:FindFirstChild("Model") then
                                    Cash = v
                                end
                            end
                        end

                        Teleport(Cash.Model.Cash.CFrame)
                        task.wait(0.4)
                        fireproximityprompt(Cash.Model:FindFirstChildWhichIsA("ProximityPrompt", true))
                        task.wait(.25)
                    end

                    Teleport(Workspace.sellgold.CFrame)

                    task.wait(0.4)

                    fireclickdetector(Workspace.sellgold.ClickDetector)

                    task.spawn(Teleport, OldCFrame)
                    task.wait(0.4)
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do task.wait()
                    if not Config.TheBronx.Farms.FarmHouses then continue end

                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then continue end
                    if not LocalPlayer.Character:FindFirstChild("Humanoid") or LocalPlayer.Character:FindFirstChild("Humanoid").Health == 0 then continue end

                    local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                    local HardDoorEnabled = Workspace.HouseRobb.HardDoor.Door:FindFirstChildWhichIsA("ProximityPrompt", true).Enabled

                    if not HardDoorEnabled and Config.TheBronx.Farms.AFKCheck then
                        Teleport(SafePosition)
                        continue
                    end

                    if HardDoorEnabled then
                        repeat task.wait()
                        Teleport(Workspace.HouseRobb.HardDoor.Door:FindFirstChildWhichIsA("ProximityPrompt", true).Parent.CFrame)
                        task.wait(0.4)

                        fireproximityprompt(Workspace.HouseRobb.HardDoor.Door:FindFirstChildWhichIsA("ProximityPrompt", true))

                        until Workspace.HouseRobb.HardDoor:FindFirstChild("TakeMoney") and Workspace.HouseRobb.HardDoor:FindFirstChild("TakeMoney"):FindFirstChild("MoneyGrab"):FindFirstChildWhichIsA("ProximityPrompt", true).Enabled


                        for Index, Value in Workspace.HouseRobb.HardDoor.TakeMoney:GetChildren() do                            
                            Teleport(Value.CFrame)
                            fireproximityprompt(Value.ProximityPrompt)
                            task.wait(0.025)
                        end

                        task.spawn(Teleport, OldCFrame)
                        task.wait(0.4)

                        continue
                    end
                end
            end))

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do task.wait()
                    if not Config.TheBronx.Farms.FarmStudio then continue end

                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then continue end
                    if not LocalPlayer.Character:FindFirstChild("Humanoid") or LocalPlayer.Character:FindFirstChild("Humanoid").Health == 0 then continue end

                    local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                    local Prompt1, Prompt2, Prompt3 = Workspace.StudioPay.Money.StudioPay1:FindFirstChild("Prompt", true), Workspace.StudioPay.Money.StudioPay2:FindFirstChild("Prompt", true), Workspace.StudioPay.Money.StudioPay3:FindFirstChild("Prompt", true)

                    if Prompt1.Enabled then
                        Teleport(Prompt1.Parent.CFrame)
                        task.wait(0.4)
                        fireproximityprompt(Prompt1)
                        task.wait(0.1)
                    end

                    if Prompt2.Enabled then
                        Teleport(Prompt2.Parent.CFrame)
                        task.wait(0.4)
                        fireproximityprompt(Prompt2)
                        task.wait(0.1)
                    end

                    if Prompt3.Enabled then
                        Teleport(Prompt3.Parent.CFrame)
                        task.wait(0.4)
                        fireproximityprompt(Prompt3)
                        task.wait(0.1)
                    end
                    
                    task.spawn(Teleport, OldCFrame)
                    task.wait(0.4)

                    if Config.TheBronx.Farms.AFKCheck then
                        task.wait(0.4)
                        Teleport(SafePosition)
                        task.wait(0.4)
                        continue
                    end
                end
            end))

            local PressKey = function(KeyCode, Duration)
                task.spawn(LPH_NO_VIRTUALIZE(function()
                    Services.VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                    Services.VirtualInputManager:SendKeyEvent(true, KeyCode, false, game)
                    task.wait(Duration)
                    Services.VirtualInputManager:SendKeyEvent(false, KeyCode, false, game)
                end))
            end

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while true do task.wait()
                    if not Config.TheBronx.Farms.FarmTrash then continue end

                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then continue end
                    if not LocalPlayer.Character:FindFirstChild("Humanoid") or LocalPlayer.Character:FindFirstChild("Humanoid").Health == 0 then continue end

                    local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                    for Index, Value in Workspace:GetChildren() do
                        if Value.Name == "DumpsterPromt" and Config.TheBronx.Farms.FarmTrash then
                            if Value:FindFirstChild("ProximityPrompt") and Value:FindFirstChild("ProximityPrompt").Enabled then
                                Value:FindFirstChild("ProximityPrompt").HoldDuration = 0
                                Teleport(CFrame.new(Value.Position.X, Value.Position.Y, Value.Position.Z))
                                task.wait(0.4)

                                if not Solara then
                                    PressKey(Enum.KeyCode.E)
                                else
                                    fireproximityprompt(Value:FindFirstChild("ProximityPrompt"))
                                end

                                task.wait(0.5)
                                Value:FindFirstChild("ProximityPrompt").HoldDuration = 1
                            end
                        end 
                    end

                    if Config.TheBronx.Farms.AutoSellTrash then
                        for Index, Value in LocalPlayer.Backpack:GetChildren() do
                            if Value:IsA("Tool") then
                                ReplicatedStorage:WaitForChild("PawnRemote"):FireServer(Value.Name)
                                task.wait()
                            end
                        end
                        
                        task.wait(1)
                    end

                    task.spawn(Teleport, OldCFrame)
                    task.wait(0.4)
                end
            end))

            GetGoodCleaner = LPH_NO_VIRTUALIZE(function()
                local CounterInstance;

                for Index, Value in Workspace["1# Map"]:GetChildren() do
                    if Value:FindFirstChild("CounterM") then
                        CounterInstance = Value
                    end
                end

                for Index, Value in next, {Workspace.CounterBag:GetChildren(), CounterInstance:GetChildren()} do
                    for _Index, _Value in Value do
                        if _Value:FindFirstChild("CashPrompt", true) and _Value:FindFirstChild("CashPrompt", true).Enabled and _Value:FindFirstChild("CashPrompt", true).ObjectText == "Count Bread" and _Value:FindFirstChild("GrabPrompt", true) and not _Value:FindFirstChild("GrabPrompt", true).Enabled then
                            return _Value
                        end
                    end
                end
            end)

            UserInputService.InputBegan:Connect(function(Input, GameProcessedEvent)
                if Input.KeyCode == Config.TheBronx.VehicleModifications.InstantStopBind and Config.TheBronx.VehicleModifications.InstantStop and (not GameProcessedEvent) then
                    if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                        if LocalPlayer.Character and typeof(LocalPlayer.Character) == "Instance" then
                            local Humanoid = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid")
                            if Humanoid and typeof(Humanoid) == "Instance" then
                                local SeatPart = Humanoid.SeatPart
                                if SeatPart and typeof(SeatPart) == "Instance" and SeatPart:IsA("VehicleSeat") then
                                    SeatPart.AssemblyLinearVelocity *= Vector3.new(0, 0, 0)
                                    SeatPart.AssemblyAngularVelocity *= Vector3.new(0, 0, 0)
                                end
                            end
                        end
                    end
                end
            end)

            if Solara then
                LocalPlayer.PlayerScripts.BulletVisualizerClientScript.Visualize.Event:Connect(function(...)
                    local args = {...}

                    local data = {
                        ["damage"] = args[10][1],
                        ["player"] = args[1].Parent
                    }

                    if rawget(data, "damage") and type(args[10][1]) == 'number' and Config.Silent.Enabled and Config.Silent.Targetting and args[10] and data["player"] == LocalPlayer.Character then
                        if not (math.random(0, 100) <= Config.Silent.HitChance) then 
                            return
                        end 

                        local RandomPart = Config.Silent.TargetPart[1] and Config.Silent.TargetPart[math.random(1, #Config.Silent.TargetPart)] or "Head"

                        if SilentTarget and SilentTarget.Character and SilentTarget.Character:FindFirstChild(RandomPart) then

                            if not Config.Silent.WallBang then
                                local Holocaust = Workspace:FindPartOnRayWithIgnoreList(Ray.new(LocalPlayer.Character[RandomPart].Position, (SilentTarget.Character[RandomPart].Position - LocalPlayer.Character[RandomPart].Position).Unit * (SilentTarget.Character[RandomPart].Position - LocalPlayer.Character[RandomPart].Position).Magnitude), {SilentTarget.Character, LocalPlayer.Character})
                                
                                if Holocaust then return end
                            end

                            kill_gun(tostring(SilentTarget), RandomPart, data["damage"])
                        end
                    end
                end)
            end
        
            
            HideUI = LPH_NO_VIRTUALIZE(function(Title, Timing)
                getgenv().HideScreenGUI = Instance.new("ScreenGui")
                getgenv().HideScreenGUI.Name = "\n\n\n\n\n"
                getgenv().HideScreenGUI.Parent = gethui and gethui() or Services.CoreGui
            
                local frame = Instance.new("Frame")
                frame.Name = "BlackFrame"
                frame.Size = UDim2.new(2, 0, 2, 0) 
                frame.Position = UDim2.new(0, -155, 0, -155) 
                frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) 
                frame.BackgroundTransparency = 0
                frame.Parent = getgenv().HideScreenGUI
            
                local textLabel = Instance.new("TextLabel")
                textLabel.Name = "\nhideuibronxlol"
                textLabel.Size = UDim2.new(0, 400, 0, 100)
                textLabel.Font = Enum.Font.SourceSansBold
                textLabel.RichText = true
                textLabel.Text = '<font color="rgb(0,163,224)">bronx.</font>lol\n' .. Title
                textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
                textLabel.BackgroundTransparency = 1
                textLabel.TextSize = 36
                textLabel.TextStrokeTransparency = 0.8 
                textLabel.TextXAlignment = Enum.TextXAlignment.Center
                textLabel.TextYAlignment = Enum.TextYAlignment.Center
                textLabel.TextWrapped = true
                textLabel.AnchorPoint = Vector2.new(0.5, 0.5)
                textLabel.Position = UDim2.new(0.5, 0, 0.5, 0)
                textLabel.Parent = getgenv().HideScreenGUI
            
                if Timing then
                    task.spawn(function()
                        local startTime = tick()
                        local endTime = startTime + Timing
                        while tick() < endTime do
                            local timeLeft = endTime - tick()

                            textLabel.Text = string.format(
                                '<font color="rgb(0,163,224)">bronx.</font>lol\n%s\nplease wait : <font color="rgb(0,163,224)">%.2f</font> seconds',
                                Title, math.max(timeLeft, 0)
                            )

                            task.wait()
                        end
                    end)
                end
            
                return textLabel
            end)            

            DeleteSecretUI = LPH_NO_VIRTUALIZE(function(Title)
                if getgenv().HideScreenGUI then
                    getgenv().HideScreenGUI:Destroy()
                    getgenv().HideScreenGUI = nil
                end
            end)

            getgenv().Teleport = LPH_NO_VIRTUALIZE(function(CFrame, DontUi)
                if not LocalPlayer.Character then return end
                if not LocalPlayer.Character:FindFirstChild("Humanoid") then return end

                --[[if not DontUi then
                    HideUI("teleporting.\nplease wait.")
                end]]
                
                LocalPlayer.Character:FindFirstChild("Humanoid"):ChangeState(0)

                repeat task.wait() until not LocalPlayer:GetAttribute("LastACPos")
                LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame

                task.wait()
                LocalPlayer.Character:FindFirstChild("Humanoid"):ChangeState(2)

                --[[if not DontUi then
                    DeleteSecretUI()
                end]]

                return true
            end)

            GetWorkingSafe = LPH_NO_VIRTUALIZE(function()
                local House; local Safe;
                
                for Index, Value in workspace["1# Map"]["2 Crosswalks"].Safes:GetChildren() do
                    if Value:IsA("Model") and Value.Name == "Safe" then
                        if Value.WorldPivot == CFrame.new(-215.944153, 292.669647, -1034.16846, 0, 0, -1, -1, 0, 0, 0, 1, 0) then
                            Safe = Value
                            break
                        end
                    end
                end


                return Safe
            end)

            CollectDroppedMoney = LPH_NO_VIRTUALIZE(function()  
                if not Config.TheBronx.Farms.CollectDroppedMoney then return end
                if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then return end
                local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                for Index, Value in next, {Workspace.Dollas:GetChildren()} do
                    for _Index, _Value in Value do
                        if not _Value:IsA("Part") then continue end

                        Teleport(_Value.CFrame + Vector3.new(0, 3.5, 0))

                        task.wait(0.4)

                        fireproximityprompt(_Value.ProximityPrompt)

                        task.wait(_Value.ProximityPrompt.HoldDuration)
                    end
                end

                Teleport(OldCFrame)

                task.wait(0.4)

                return true
            end)

            local GunNames = {}

            for Index, Value in Lighting:GetChildren() do
                if Value:IsA("Tool") and Value:FindFirstChild("Setting") then
                    table.insert(GunNames, Value.Name)
                end
            end

            CollectLootBags = LPH_NO_VIRTUALIZE(function()  
                if not Config.TheBronx.Farms.CollectDroppedLoot then return end
                if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then return end
                local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                for Index, Value in next, {Workspace.Storage:GetChildren()} do
                    for _Index, _Value in Value do
                        if not _Value:IsA("MeshPart") then continue end
                        if _Value:FindFirstChild("PlayerName").Value == LocalPlayer.Name then continue end
                        
                        local _GunFound = true

                        --[[if Config.TheBronx.Farms.OnlyCollectGuns then
                            _GunFound = false; for __Index, __Value in _Value.Container:GetChildren() do
                                if table.find(GunNames, __Value.Name) then
                                    _GunFound = true;
                                end
                            end
                        end]]

                        if _GunFound == false then continue end;

                        Teleport(_Value.CFrame + Vector3.new(0, 3.5, 0))

                        task.wait(0.4)

                        fireproximityprompt(_Value.stealprompt)

                        task.wait(_Value.stealprompt.HoldDuration)
                    end
                end

                return true
            end)

            Workspace.Storage.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function()
                task.spawn(CollectLootBags)
            end))

            Workspace.Dollas.ChildAdded:Connect(LPH_NO_VIRTUALIZE(function()
                task.spawn(CollectDroppedMoney)
            end))

            WashMoney = LPH_NO_VIRTUALIZE(function()
                -- TODO
            end)

            DryMoney = LPH_NO_VIRTUALIZE(function()
                -- TODO
            end)

            RunService.PreRender:Connect(LPH_NO_VIRTUALIZE(function()
                if not Config.TheBronx.PlayerModifications.InstantRevive then return end
                if not LocalPlayer.Character then return end
                if not LocalPlayer.Character:FindFirstChild("Humanoid") then return end

                if LocalPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Physics then
                    FireServer(ReplicatedStorage.FSpamRemote)
                    LocalPlayer.Character.Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
                end

                StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, true)
            end))

            ProximityPromptService.PromptButtonHoldBegan:Connect(function(Prompt, Self)
                if Prompt and Self == LocalPlayer and fireproximityprompt then
                    if Config.TheBronx.PlayerModifications.InstantInteract then
                        fireproximityprompt(Prompt, true)
                    end

                    if Config.TheBronx.PlayerModifications.BypassLockedCars then
                        if Self == LocalPlayer then
                            while true do
                                if Prompt.Parent:FindFirstChild("DriveSeat") then
                                    if Prompt:IsA("VehicleSeat") then
                                        Prompt:Sit(LocalPlayer.Character.Humanoid)
                                    else
                                        Prompt = Prompt.Parent
                                    end

                                    break
                                else
                                    Prompt = Prompt.Parent
                                end
                    
                                if not Prompt.Parent then
                                    break
                                end
                            end
                        end
                    end
                end 
            end)

            local Teleport_Debounce = false
            UserInputService.InputBegan:Connect(LPH_NO_VIRTUALIZE(function(Input, Game_Event)
                if not library then return end
                if not library.flags then return end
                if Game_Event then return end
                if Input.UserInputType == Enum.UserInputType.MouseButton1 and library.flags["ClickTeleport_TheBronx"] and Config.TheBronx.ClickTeleportActive then
                    local MouseLocation = UserInputService:GetMouseLocation()
                    local Ray = Camera:ViewportPointToRay(MouseLocation.X, MouseLocation.Y)
                    local RaycastParams = RaycastParams.new()
                    RaycastParams.FilterType = Enum.RaycastFilterType.Blacklist
                    RaycastParams.FilterDescendantsInstances = {LocalPlayer.Character, Workspace:FindFirstChild("Cameras"), Workspace:FindFirstChild("CameraLocations")}
                    local Cast = Workspace:Raycast(Ray.Origin, Ray.Direction * 1000, RaycastParams)
                    
                    if Cast and not Teleport_Debounce then
                        Teleport_Debounce = true

                        Teleport(CFrame.new(Cast.Position + Vector3.new(0,3,0)))

                        Teleport_Debounce = false
                    end
                end
            end))

            if Workspace:FindFirstChild("GUNS") then
                for Index, Value in Workspace:FindFirstChild("GUNS"):GetChildren() do
                    if not Value:IsA("Model") then continue end;
                    local Price = Value:FindFirstChild("Price", true).Value;
                    if Price == 0 then continue end;
                    if Price > 100000 then continue end;
                    if Price < 10 then continue end;
                    
                    if not table.find(Config.Guns, Value.Name.." - $"..tostring(Price)) then
                        table.insert(Config.Guns, Value.Name.." - $"..tostring(Price));
                    end;
                end;
            end;

            table.sort(Config.Guns, LPH_NO_VIRTUALIZE(function(a,b)
                return a<b
            end));
        end
    end)()
end

local Fonts = {}; do
    local function RegisterFont(Name, Weight, Style, Asset)
        if isfile(library.directory.."/assets/"..Asset.Id) then
            delfile(library.directory.."/assets/"..Asset.Id)
        end

        writefile(library.directory.."/assets/"..Asset.Id, Asset.Font)

        local Data = {
            name = Name,
            faces = {
                {
                    Name = "Normal",
                    weight = Weight,
                    style = Style,
                    assetId = getcustomasset(library.directory.."/assets/"..Asset.Id),
                },
            },
        }

        writefile(library.directory.."/fonts/"..Name .. ".font", Services.HttpService:JSONEncode(Data))

        return getcustomasset(library.directory.."/fonts/"..Name .. ".font");
    end
    
    local Tahoma = RegisterFont("Tahoma", 400, "Normal", {
        Id = "Tahoma.ttf",
        Font = game:HttpGet("https://[Log in to view URL]"),
    })

    local Pixel = RegisterFont("Pixel", 400, "Normal", {
        Id = "Pixel.ttf",
        Font = game:HttpGet("https://[Log in to view URL]"),
    })

    local Minecraftia = RegisterFont("Minecraftia", 400, "Normal", {
        Id = "Minecraftia.ttf",
        Font = game:HttpGet("https://[Log in to view URL]"),
    }) 

    local Verdana = RegisterFont("Verdana", 400, "Normal", {
        Id = "Verdana.ttf",
        Font = game:HttpGet("https://[Log in to view URL]"),
    })

    Fonts["Plex"] = Font.new(Tahoma, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
    Fonts["Pixel"] = Font.new(Pixel, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
    Fonts["Minecraftia"] = Font.new(Minecraftia, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
    Fonts["Verdana"] = Font.new(Verdana, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
end

local Players_ESP = {}

local RefreshAllElements = LPH_NO_VIRTUALIZE(function()
    for i,v in Players_ESP do
        if v and v.RefreshElements then
            v.RefreshElements()
        end
    end 
end)

do
    local Workspace, RunService, Players, CoreGui = Services.Workspace, Services.RunService, Services.Players, Services.CoreGui

    -- Def & Vars
    local Euphoria = Config.ESP.Connections;
    local lplayer = Players.LocalPlayer;
    local Cam = Workspace.CurrentCamera;
    local RotationAngle, Tick = -45, tick();

    local Functions = {}
    do
        function Functions:Create(Class, Properties)
            local _Instance = typeof(Class) == 'string' and Instance.new(Class) or Class
            for Property, Value in pairs(Properties) do
                _Instance[Property] = Value
            end
            return _Instance;
        end
        --
        Functions.FadeOutOnDist = LPH_NO_VIRTUALIZE(function(element, distance)
            local transparency = math.max(0.1, 1 - (distance / Config.ESP.MaxDistance))
            if element:IsA("TextLabel") then
                element.TextTransparency = 1 - transparency
            elseif element:IsA("ImageLabel") then
                element.ImageTransparency = 1 - transparency
            elseif element:IsA("UIStroke") then
                element.Transparency = 1 - transparency
            elseif element:IsA("Frame") and (element == Healthbar or element == BehindHealthbar) then
                element.BackgroundTransparency = 1 - transparency
            elseif element:IsA("Frame") then
                element.BackgroundTransparency = 1 - transparency
            elseif element:IsA("Highlight") then
                element.FillTransparency = 1 - transparency
                element.OutlineTransparency = 1 - transparency
            end;
        end);  

        Functions.AddOutline = LPH_NO_VIRTUALIZE(function(Frame, Thickness)     
            Functions:Create("Frame", {
                Parent = Frame,
                BorderSizePixel = 0,
                BackgroundColor3 = Color3.new(0, 0, 0),
                Position = UDim2.new(0, -Thickness, 0, -Thickness),
                Size = UDim2.new(1, Thickness * 2, 0, Thickness),
                ZIndex = Frame.ZIndex - 1
            })
        
            Functions:Create("Frame", {
                Parent = Frame,
                BorderSizePixel = 0,
                BackgroundColor3 = Color3.new(0, 0, 0),
                Position = UDim2.new(0, -Thickness, 1, 0),
                Size = UDim2.new(1, Thickness * 2, 0, Thickness),
                ZIndex = Frame.ZIndex - 1
            })
        
            Functions:Create("Frame", {
                Parent = Frame,
                BorderSizePixel = 0,

                BackgroundColor3 = Color3.new(0, 0, 0),
                Position = UDim2.new(0, -Thickness, 0, 0),
                Size = UDim2.new(0, Thickness, 1, 0),
                ZIndex = Frame.ZIndex - 1
            })
        
            Functions:Create("Frame", {
                Parent = Frame,
                BorderSizePixel = 0,

                BackgroundColor3 = Color3.new(0, 0, 0),
                Position = UDim2.new(1, 0, 0, 0),
                Size = UDim2.new(0, Thickness, 1, 0),
                ZIndex = Frame.ZIndex - 1
            })
        end)
    end;

    do -- Initalize
        local ScreenGui = Functions:Create("ScreenGui", {
            Parent = CoreGui,
            Name = "ESPHolder",
            ResetOnSpawn = false,
        });

        local DupeCheck = LPH_NO_VIRTUALIZE(function(plr)
            if ScreenGui:FindFirstChild(plr.Name) then
                ScreenGui[plr.Name]:Destroy()
            end
        end)

        local getHealthColor = LPH_NO_VIRTUALIZE(function(currentHealth, maxHealth)    
            return Config.ESP.Drawing.Healthbar.GradientRGB1:Lerp(Config.ESP.Drawing.Healthbar.GradientRGB2, (currentHealth / maxHealth))
        end)

        local ESP = function(plr)
            task.spawn(LPH_JIT_MAX(function()
            if plr == lplayer then return end

            coroutine.wrap(DupeCheck)(plr)
            local Name = Functions:Create("TextLabel", {Visible = false,Parent = ScreenGui, Position = UDim2.new(0.5, 0, 0, -11), Size = UDim2.new(0, 100, 0, 20), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Font = Enum.Font.Code, TextSize = Config.ESP.FontSize, TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(0, 0, 0), RichText = true})
            local Distance = Functions:Create("TextLabel", {Visible = false,Parent = ScreenGui, Position = UDim2.new(0.5, 0, 0, 11), Size = UDim2.new(0, 100, 0, 20), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Font = Enum.Font.Code, TextSize = Config.ESP.FontSize, TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(0, 0, 0), RichText = true})
            local Weapon = Functions:Create("TextLabel", {Visible = false,Parent = ScreenGui, Position = UDim2.new(0.5, 0, 0, 31), Size = UDim2.new(0, 100, 0, 20), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Font = Enum.Font.Code, TextSize = Config.ESP.FontSize, TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(0, 0, 0), RichText = true, Text = "None"})
            local Box = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Color3.fromRGB(0, 0, 0), BackgroundTransparency = 0.75, BorderSizePixel = 0})
            local Gradient1 = Functions:Create("UIGradient", {Parent = Box, Enabled = Config.ESP.Drawing.Boxes.GradientFill, Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Config.ESP.Drawing.Boxes.GradientFillRGB1), ColorSequenceKeypoint.new(1, Config.ESP.Drawing.Boxes.GradientFillRGB2)}})
            local Outline = Functions:Create("UIStroke", {Parent = Box, Enabled = Config.ESP.Drawing.Boxes.Gradient, Transparency = 0, Color = Color3.fromRGB(255, 255, 255), LineJoinMode = Enum.LineJoinMode.Miter})
            local Gradient2 = Functions:Create("UIGradient", {Parent = Outline, Enabled = Config.ESP.Drawing.Boxes.Gradient, Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Config.ESP.Drawing.Boxes.GradientRGB1), ColorSequenceKeypoint.new(1, Config.ESP.Drawing.Boxes.GradientRGB2)}})
            local Healthbar = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Color3.fromRGB(255, 255, 255), BackgroundTransparency = 0})
            local BehindHealthbar = Functions:Create("Frame", {BorderColor3 = Color3.fromRGB(0, 0, 0), Parent = ScreenGui, ZIndex = -1, BackgroundColor3 = Color3.fromRGB(0, 0, 0), BackgroundTransparency = 0})
            local HealthbarGradient = Functions:Create("UIGradient", {Parent = Healthbar, Enabled = Config.ESP.Drawing.Healthbar.Gradient, Rotation = -90, Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Config.ESP.Drawing.Healthbar.GradientRGB1), ColorSequenceKeypoint.new(1, Config.ESP.Drawing.Healthbar.GradientRGB2)}})
            local HealthText = Functions:Create("TextLabel", {Visible = false,Parent = ScreenGui, Position = UDim2.new(0.5, 0, 0, 31), Size = UDim2.new(0, 100, 0, 20), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Font = Enum.Font.Code, TextSize = Config.ESP.FontSize, TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(0, 0, 0), ZIndex = 500})
            local Chams = Functions:Create("Highlight", {Parent = ScreenGui, FillTransparency = 1, OutlineTransparency = 0, OutlineColor = Color3.fromRGB(119, 120, 255), DepthMode = "AlwaysOnTop"})
            local WeaponIcon = Functions:Create("ImageLabel", {Parent = ScreenGui, BackgroundTransparency = 1, BorderColor3 = Color3.fromRGB(0, 0, 0), BorderSizePixel = 0, Size = UDim2.new(0, 40, 0, 40)})
            local Gradient3 = Functions:Create("UIGradient", {Parent = WeaponIcon, Rotation = -90, Enabled = Config.ESP.Drawing.Weapons.Gradient, Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Config.ESP.Drawing.Weapons.GradientRGB1), ColorSequenceKeypoint.new(1, Config.ESP.Drawing.Weapons.GradientRGB2)}})
            local LeftTop = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local LeftSide = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local RightTop = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local RightSide = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local BottomSide = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local BottomDown = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local BottomRightSide = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local BottomRightDown = Functions:Create("Frame", {Parent = ScreenGui, BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB, Position = UDim2.new(0, 0, 0, 0), BorderSizePixel = 0, BorderColor3 = Color3.new(0,0,0)})
            local Flag1 = Functions:Create("TextLabel", {Visible = false,Parent = ScreenGui, Position = UDim2.new(1, 0, 0, 0), Size = UDim2.new(0, 100, 0, 20), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Font = Enum.Font.Code, TextSize = Config.ESP.FontSize, TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(0, 0, 0)})
            local Flag2 = Functions:Create("TextLabel", {Visible = false,Parent = ScreenGui, Position = UDim2.new(1, 0, 0, 0), Size = UDim2.new(0, 100, 0, 20), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Font = Enum.Font.Code, TextSize = Config.ESP.FontSize, TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(0, 0, 0)})
            --local DroppedItems = Functions:Create("TextLabel", {Visible = false,Parent = ScreenGui, AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Font = Enum.Font.Code, TextSize = Config.ESP.FontSize, TextStrokeTransparency = 0, TextStrokeColor3 = Color3.fromRGB(0, 0, 0)})
            --
            Functions.AddOutline(LeftTop, 1); Functions.AddOutline(LeftSide, 1); Functions.AddOutline(LeftSide, 1); Functions.AddOutline(RightTop, 1); Functions.AddOutline(RightSide, 1); Functions.AddOutline(BottomSide, 1); Functions.AddOutline(BottomDown, 1); Functions.AddOutline(BottomRightSide, 1); Functions.AddOutline(BottomRightDown, 1); 
            if not plr.Character then plr.CharacterAdded:Wait() end
            local Humanoid, HRP = plr.Character:WaitForChild("Humanoid"), plr.Character:WaitForChild("HumanoidRootPart")

            local Pos, OnScreen = Cam:WorldToScreenPoint(HRP.Position)
            local Dist = (Cam.CFrame.Position - HRP.Position).Magnitude
                            
            local Size = HRP.Size.Y

            if DefaultPlayerSettings[plr.Name] and DefaultPlayerSettings[plr.Name].RootSettings and DefaultPlayerSettings[plr.Name].RootSettings.Size then
                Size = DefaultPlayerSettings[plr.Name].RootSettings.Size.Y
            end

            local health_clamped = math.clamp(Humanoid.Health, 0, Humanoid.MaxHealth)
            local health = health_clamped / Humanoid.MaxHealth;
            
            local scaleFactor = (Size * Cam.ViewportSize.Y) / (Pos.Z * 2)
            
            local w, h = 3 * scaleFactor, 4.5 * scaleFactor

            if not Players_ESP[plr.Name] then
                -- ERROR BECAUSE LEAVE + JOIN NEW PLAYER CHARACTER NEW ESP ELEMTNS

                Players_ESP[plr.Name] = {}
                Players_ESP[plr.Name].RefreshElements = LPH_JIT_MAX(function()
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if Config.ESP.Font == Fonts["Plex"] or Config.ESP.Font == Fonts["Pixel"] or Config.ESP.Font == Fonts["Minecraftia"] or Config.ESP.Font == Fonts["Verdana"] then
                            HealthText.FontFace = Config.ESP.Font
                            Name.FontFace = Config.ESP.Font
                            Distance.FontFace = Config.ESP.Font
                            Weapon.FontFace = Config.ESP.Font
                        else
                            HealthText.Font = Config.ESP.Font
                            Name.Font = Config.ESP.Font
                            Distance.Font = Config.ESP.Font
                            Weapon.Font = Config.ESP.Font
                        end

                        do -- \\ Boxes
                            Box.Visible = Config.ESP.Drawing.Boxes.Full.Enabled
                            if Config.ESP.Drawing.Boxes.Filled.Enabled then
                                Box.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
                                if Config.ESP.Drawing.Boxes.GradientFill then
                                    Box.BackgroundTransparency = Config.ESP.Drawing.Boxes.Filled.Transparency;
                                else
                                    Box.BackgroundTransparency = 1
                                end
                                Box.BorderSizePixel = 1
                            else
                                Box.BackgroundTransparency = 1
                            end

                            if not Config.ESP.Drawing.Boxes.Bounding.Enabled or (Config.ESP.Drawing.Boxes.Corner.Enabled and Config.ESP.Drawing.Boxes.Bounding.Enabled) then
                                LeftTop.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                LeftTop.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB

                                LeftSide.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                LeftSide.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB

                                BottomSide.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                BottomSide.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB

                                BottomDown.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                BottomDown.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB

                                RightTop.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                RightTop.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB

                                RightSide.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                RightSide.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB

                                BottomRightSide.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                BottomRightSide.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB

                                BottomRightDown.Transparency = Config.ESP.Drawing.Boxes.Corner.Transparency
                                BottomRightDown.BackgroundColor3 = Config.ESP.Drawing.Boxes.Corner.RGB
                            end

                            if not Config.ESP.Drawing.Boxes.Corner.Enabled then
                                LeftTop.Transparency = Config.ESP.Drawing.Boxes.Bounding.Transparency
                                LeftSide.Transparency = Config.ESP.Drawing.Boxes.Bounding.Transparency
                                BottomSide.Transparency = Config.ESP.Drawing.Boxes.Bounding.Transparency
                                RightSide.Transparency = Config.ESP.Drawing.Boxes.Bounding.Transparency

                                LeftTop.BackgroundColor3 = Config.ESP.Drawing.Boxes.Bounding.RGB
                                LeftSide.BackgroundColor3 = Config.ESP.Drawing.Boxes.Bounding.RGB
                                BottomSide.BackgroundColor3 = Config.ESP.Drawing.Boxes.Bounding.RGB
                                RightSide.BackgroundColor3 = Config.ESP.Drawing.Boxes.Bounding.RGB
                            end

                            BottomSide.AnchorPoint = Vector2.new(0, 5)
                            BottomDown.AnchorPoint = Vector2.new(0, 1)
                            RightTop.AnchorPoint = Vector2.new(1, 0)
                            RightSide.AnchorPoint = Vector2.new(0, 0)
                            BottomRightSide.AnchorPoint = Vector2.new(1, 1)
                            BottomRightDown.AnchorPoint = Vector2.new(1, 1)

                            if not Config.ESP.Drawing.Boxes.Animate then
                                Gradient1.Rotation = -45
                                Gradient2.Rotation = -45
                            end

                            Gradient1.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Config.ESP.Drawing.Boxes.GradientFillRGB1), ColorSequenceKeypoint.new(1, Config.ESP.Drawing.Boxes.GradientFillRGB2)}
                            Gradient2.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Config.ESP.Drawing.Boxes.GradientRGB1), ColorSequenceKeypoint.new(1, Config.ESP.Drawing.Boxes.GradientRGB2)}
                        end
                        
                        do -- \\ Names
                            Name.TextSize = Config.ESP.FontSize
                            --Name.Font = Config.ESP.Font
                            Name.TextColor3 = Config.ESP.Drawing.Names.RGB
                            Name.TextStrokeTransparency = Config.ESP.Drawing.Names.Transparency
                        end

                        do -- \\ Chams
                            if Config.ESP.Drawing.Chams.VisibleCheck then
                                Chams.DepthMode = "Occluded"
                            else
                                Chams.DepthMode = "AlwaysOnTop"
                            end

                            Chams.FillColor = Config.ESP.Drawing.Chams.FillRGB
                            Chams.OutlineColor = Config.ESP.Drawing.Chams.OutlineRGB

                            if not Config.ESP.Drawing.Chams.Thermal then 
                                Chams.OutlineTransparency = Config.ESP.Drawing.Chams.Outline_Transparency / 100
                                Chams.FillTransparency = Config.ESP.Drawing.Chams.Fill_Transparency / 100
                            end
                        end

                        do -- \\ Rest im lazy cuzzy bro
                            Distance.TextStrokeTransparency = Config.ESP.Drawing.Distances.Transparency
                            Distance.TextSize = Config.ESP.FontSize
                            Distance.TextColor3 = Config.ESP.Drawing.Distances.RGB
                            Weapon.TextStrokeTransparency = Config.ESP.Drawing.Weapons.Transparency
                            Weapon.TextSize = Config.ESP.FontSize
                            Weapon.TextColor3 = Config.ESP.Drawing.Weapons.WeaponTextRGB
                        end
                    end))
                end)

                Players_ESP[plr.Name].Health_Changed = LPH_NO_VIRTUALIZE(function()
                    health_clamped = math.clamp(Humanoid.Health, 0, Humanoid.MaxHealth)
                    health = health_clamped / Humanoid.MaxHealth;
                end)

                Players_ESP[plr.Name].Health_Changed()

                Players_ESP[plr.Name].Child_Added = LPH_NO_VIRTUALIZE(function(Item)
                    if not Item:IsA("Tool") then 
                        return
                    end 

                    local name = plr.Character:FindFirstChild(Item.Name) and Item.Name or "None"

                    Weapon.Text = name
                end)

                Players_ESP[plr.Name].ToolConnection_Added = plr.Character.ChildAdded:Connect(Players_ESP[plr.Name].Child_Added)
                Players_ESP[plr.Name].ToolConnection_Removed = plr.Character.ChildRemoved:Connect(Players_ESP[plr.Name].Child_Added)

                Players_ESP[plr.Name].HumanoidConnection = Humanoid.HealthChanged:Connect(Players_ESP[plr.Name].Health_Changed)

                Players_ESP[plr.Name].CharacterAdded = plr.CharacterAdded:Connect(LPH_JIT_MAX(function(Character)
                    Humanoid = Character:WaitForChild("Humanoid")
                    HRP = Character:WaitForChild("HumanoidRootPart")
                    Players_ESP[plr.Name].ToolConnection_Added:Disconnect()
                    Players_ESP[plr.Name].ToolConnection_Removed:Disconnect()

                    Players_ESP[plr.Name].ToolConnection_Removed = nil
                    Players_ESP[plr.Name].ToolConnection_Added = nil

                    Players_ESP[plr.Name].ToolConnection_Added = plr.Character.ChildAdded:Connect(Players_ESP[plr.Name].Child_Added)
                    Players_ESP[plr.Name].ToolConnection_Removed = plr.Character.ChildRemoved:Connect(Players_ESP[plr.Name].Child_Added)

                    Players_ESP[plr.Name].HumanoidConnection:Disconnect()
                    Players_ESP[plr.Name].HumanoidConnection = Humanoid.HealthChanged:Connect(Players_ESP[plr.Name].Health_Changed)
                    Players_ESP[plr.Name].Health_Changed()
                    Players_ESP[plr.Name].RefreshElements()
                end))

                Players_ESP[plr.Name].RefreshElements()
            end

            local Updater = function()
                local Connection;
                local HideESP = LPH_NO_VIRTUALIZE(function()
                    Box.Visible = false;
                    Name.Visible = false;
                    Distance.Visible = false;
                    Weapon.Visible = false;
                    Healthbar.Visible = false;
                    BehindHealthbar.Visible = false;
                    HealthText.Visible = false;
                    WeaponIcon.Visible = false;
                    LeftTop.Visible = false;
                    LeftSide.Visible = false;
                    BottomSide.Visible = false;
                    BottomDown.Visible = false;
                    RightTop.Visible = false;
                    RightSide.Visible = false;
                    BottomRightSide.Visible = false;
                    BottomRightDown.Visible = false;
                    Flag1.Visible = false;
                    Chams.Enabled = false;
                    Flag2.Visible = false;
                    if not plr then
                        ScreenGui:Destroy();
                        Connection:Disconnect();
                    end
                end)
                --
                Connection = Euphoria.RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function()
                    if plr.Character and lplayer.Character and Config.ESP.Enabled then
                        if Humanoid and HRP then
                            Pos, OnScreen = Cam:WorldToScreenPoint(HRP.Position)
                            Dist = (Cam.CFrame.Position - HRP.Position).Magnitude
                            
                            if OnScreen and Dist <= Config.ESP.MaxDistance then
                                Size = HRP.Size.Y

                                if DefaultPlayerSettings[plr.Name] and DefaultPlayerSettings[plr.Name].RootSettings and DefaultPlayerSettings[plr.Name].RootSettings.Size then
                                    Size = DefaultPlayerSettings[plr.Name].RootSettings.Size.Y
                                end
                                
                                scaleFactor = (Size * Cam.ViewportSize.Y) / (Pos.Z * 2)
                                
                                w, h = 3 * scaleFactor, 4.5 * scaleFactor

                                -- Fade-out effect --
                                if Config.ESP.FadeOut.OnDistance then
                                    Functions.FadeOutOnDist(Box, Dist)
                                    Functions.FadeOutOnDist(Outline, Dist)
                                    Functions.FadeOutOnDist(Name, Dist)
                                    Functions.FadeOutOnDist(Distance, Dist)
                                    Functions.FadeOutOnDist(Weapon, Dist)
                                    Functions.FadeOutOnDist(Healthbar, Dist)
                                    Functions.FadeOutOnDist(BehindHealthbar, Dist)
                                    Functions.FadeOutOnDist(HealthText, Dist)
                                    Functions.FadeOutOnDist(WeaponIcon, Dist)
                                    Functions.FadeOutOnDist(LeftTop, Dist)
                                    Functions.FadeOutOnDist(LeftSide, Dist)
                                    Functions.FadeOutOnDist(BottomSide, Dist)
                                    Functions.FadeOutOnDist(BottomDown, Dist)
                                    Functions.FadeOutOnDist(RightTop, Dist)
                                    Functions.FadeOutOnDist(RightSide, Dist)
                                    Functions.FadeOutOnDist(BottomRightSide, Dist)
                                    Functions.FadeOutOnDist(BottomRightDown, Dist)
                                    Functions.FadeOutOnDist(Chams, Dist)
                                    Functions.FadeOutOnDist(Flag1, Dist)
                                    Functions.FadeOutOnDist(Flag2, Dist)
                                end
                                
                                -- Teamcheck
                                if HRP and Humanoid then
                                    do -- Chams
                                        Chams.Adornee = plr.Character
                                        Chams.Enabled = Config.ESP.Drawing.Chams.Enabled
                                        do -- Breathe
                                            if Config.ESP.Drawing.Chams.Thermal then
                                                local breathe_effect = math.atan(math.sin(tick() * 2)) * 2 / math.pi
                                                Chams.FillTransparency = Config.ESP.Drawing.Chams.Fill_Transparency * breathe_effect * 0.01
                                                Chams.OutlineTransparency = Config.ESP.Drawing.Chams.Outline_Transparency * breathe_effect * 0.01
                                            end
                                        end
                                    end;

                                    do -- Corner Boxes
                                        if not Config.ESP.Drawing.Boxes.Bounding.Enabled or (Config.ESP.Drawing.Boxes.Corner.Enabled and Config.ESP.Drawing.Boxes.Bounding.Enabled) then
                                            LeftTop.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            LeftTop.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y - h / 2)
                                            LeftTop.Size = UDim2.new(0, w / 5, 0, 1)

                                            LeftSide.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            LeftSide.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y - h / 2)
                                            LeftSide.Size = UDim2.new(0, 1, 0, h / 5)

                                            BottomSide.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            BottomSide.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y + h / 2)
                                            BottomSide.Size = UDim2.new(0, 1, 0, h / 5)

                                            BottomDown.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            BottomDown.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y + h / 2)
                                            BottomDown.Size = UDim2.new(0, w / 5, 0, 1)


                                            RightTop.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            RightTop.Position = UDim2.new(0, Pos.X + w / 2, 0, Pos.Y - h / 2)
                                            RightTop.Size = UDim2.new(0, w / 5, 0, 1)

                                            RightSide.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            RightSide.Position = UDim2.new(0, Pos.X + w / 2 - 1, 0, Pos.Y - h / 2)
                                            RightSide.Size = UDim2.new(0, 1, 0, h / 5)

                                            BottomRightSide.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            BottomRightSide.Position = UDim2.new(0, Pos.X + w / 2, 0, Pos.Y + h / 2)
                                            BottomRightSide.Size = UDim2.new(0, 1, 0, h / 5)

                                            BottomRightDown.Visible = Config.ESP.Drawing.Boxes.Corner.Enabled
                                            BottomRightDown.Position = UDim2.new(0, Pos.X + w / 2, 0, Pos.Y + h / 2)
                                            BottomRightDown.Size = UDim2.new(0, w / 5, 0, 1)
                                        end
                                    end

                                    do -- // Bounding Boxes
                                        if not Config.ESP.Drawing.Boxes.Corner.Enabled then
                                            LeftTop.Visible = Config.ESP.Drawing.Boxes.Bounding.Enabled
                                            LeftTop.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y - h / 2)
                                            LeftTop.Size = UDim2.new(0, w, 0, 1)


                                            LeftSide.Visible = Config.ESP.Drawing.Boxes.Bounding.Enabled
                                            LeftSide.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y - h / 2)
                                            LeftSide.Size = UDim2.new(0, 1, 0, h)


                                            BottomSide.Visible = Config.ESP.Drawing.Boxes.Bounding.Enabled
                                            BottomSide.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y + h / 2)
                                            BottomSide.Size = UDim2.new(0, w, 0, 1) 


                                            RightSide.Visible = Config.ESP.Drawing.Boxes.Bounding.Enabled 
                                            RightSide.Position = UDim2.new(0, Pos.X + w / 2 - 1, 0, Pos.Y - h / 2)
                                            RightSide.Size = UDim2.new(0, 1, 0, h) 

                                            BottomRightSide.Visible = false
                                            BottomRightDown.Visible = false
                                            BottomDown.Visible = false
                                            RightTop.Visible = false
                                        end
                                    end

                                    do -- Boxes
                                        Box.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y - h / 2)
                                        Box.Size = UDim2.new(0, w, 0, h)
                                        Box.Visible = Config.ESP.Drawing.Boxes.Full.Enabled

                                        -- Animation
                                        if Config.ESP.Drawing.Boxes.Animate then
                                            RotationAngle = RotationAngle + (tick() - Tick) * Config.ESP.Drawing.Boxes.RotationSpeed * math.cos(math.pi / 4 * tick() - math.pi / 2)
                                            Gradient1.Rotation = RotationAngle
                                            Gradient2.Rotation = RotationAngle
                                        end

                                        
                                        Tick = tick()
                                    end

                                    -- Healthbar
                                    do  
                                        

                                            local is_inf = false

                                            if Humanoid.Health ~= Humanoid.Health then
                                                health = 1;
                                                is_inf = true;
                                            end

                                            Healthbar.Position = UDim2.new(0, Pos.X - w / 2 - 6, 0, Pos.Y - h / 2 + h * (1 - health))
                                            Healthbar.Size = UDim2.new(0, Config.ESP.Drawing.Healthbar.Width, 0, h * health)

                                            Healthbar.BackgroundTransparency = Config.ESP.Drawing.Healthbar.Transparency

                                            BehindHealthbar.Position = UDim2.new(0, Pos.X - w / 2 - 6, 0, Pos.Y - h / 2) 
                                            BehindHealthbar.Size = UDim2.new(0, Config.ESP.Drawing.Healthbar.Width, 0, h) 
                                            BehindHealthbar.BackgroundTransparency = Config.ESP.Drawing.Healthbar.Transparency


                                            HealthbarGradient.Enabled = Config.ESP.Drawing.Healthbar.Gradient
                                            HealthbarGradient.Color = ColorSequence.new{
                                                ColorSequenceKeypoint.new(0, Config.ESP.Drawing.Healthbar.GradientRGB1),
                                                ColorSequenceKeypoint.new(1, Config.ESP.Drawing.Healthbar.GradientRGB2)
                                            }

                                            HealthbarGradient.Offset = Vector2.new(0, health - 1)

                                            local color = getHealthColor(health_clamped , Humanoid.MaxHealth)
                                            local healthtexttext = tostring(math.floor(health_clamped))

                                            if is_inf then
                                                healthtexttext = "inf"

                                                color = getHealthColor(Humanoid.MaxHealth, Humanoid.MaxHealth)
                                            end

                                            Healthbar.BackgroundColor3 = not Config.ESP.Drawing.Healthbar.Gradient and color or Color3.new(1,1,1)
                                            -- Health Text

                                            Healthbar.Visible = Config.ESP.Drawing.Healthbar.Enabled
                                            BehindHealthbar.Visible = Config.ESP.Drawing.Healthbar.Enabled

                                            do
                                                if Config.ESP.Drawing.Healthbar.HealthText then
                                                    local healthPercentage = math.floor(health_clamped / Humanoid.MaxHealth * 100)

                                                    if is_inf then
                                                        healthPercentage = 100
                                                    end

                                                    HealthText.Position = UDim2.new(0, Pos.X - w / 2 - 18 --[[6]], 0, Pos.Y - h / 2 + h * (1 - healthPercentage / 100) + 3)
                                                    HealthText.Text = healthtexttext
                                                    HealthText.TextSize = Config.ESP.FontSize
                                                    --HealthText.Font = Config.ESP.Font
                                                    HealthText.Visible = Config.ESP.Drawing.Healthbar.HealthText
                                                    HealthText.TextStrokeTransparency = Config.ESP.Drawing.Healthbar.HealthTextTransparency
                                                    if Config.ESP.Drawing.Healthbar.Lerp then
                                                        HealthText.TextColor3 = color
                                                    else
                                                        HealthText.TextColor3 = Config.ESP.Drawing.Healthbar.HealthTextRGB
                                                    end
                                                else
                                                    HealthText.Visible = false
                                                end
                                            end
                                    end

                                    do -- Names
                                            Name.Visible = Config.ESP.Drawing.Names.Enabled
                                            Name.Text = plr.Name
                                            if Config.ESP.Options.Friendcheck and lplayer:IsFriendsWith(plr.UserId) then
                                                Name.Text = string.format('(<font color="rgb(%d, %d, %d)">F</font>) %s', Config.ESP.Options.FriendcheckRGB.R * 255, Config.ESP.Options.FriendcheckRGB.G * 255, Config.ESP.Options.FriendcheckRGB.B * 255, plr.Name)
                                            end
                                            Name.Position = UDim2.new(0, Pos.X, 0, Pos.Y - h / 2 - 9)
                                    end
                                    
                                    do -- Distance
                                            if Config.ESP.Drawing.Distances.Enabled then
                                                Weapon.Position = UDim2.new(0, Pos.X, 0, Pos.Y + h / 2 + 7)

                                                --WeaponIcon.Position = UDim2.new(0, Pos.X - 21, 0, Pos.Y + h / 2 + 15);
                                                Distance.Position = UDim2.new(0, Pos.X, 0, Pos.Y + h / 2 + (Weapon.Visible and 18 or 7))
                                                Distance.Text = string.format("%d Studs", math.floor(Dist))

                                                Distance.Visible = true
                                                --Distance.Font = Config.ESP.Font
                                            else
                                                Weapon.Position = UDim2.new(0, Pos.X, 0, Pos.Y + h / 2 + 8)
                                                Distance.Visible = false;
                                            end
                                    end

                                    do -- Weapons
                                            Weapon.Visible = Config.ESP.Drawing.Weapons.Enabled
                                            --Weapon.Font = Config.ESP.Font
                                    end
                                else
                                    HideESP();
                                end
                            else
                                HideESP();
                            end
                        else
                            HideESP();
                        end
                    else
                        HideESP();
                    end
                end))
            end
            coroutine.wrap(Updater)();
            end))
        end
        do -- Update ESP
            for _, v in pairs(Players:GetPlayers()) do
                if v ~= lplayer then
                    coroutine.wrap(ESP)(v)
                end
            end
            --
            Players.PlayerAdded:Connect(function(v)
                coroutine.wrap(ESP)(v)
            end);

            Players.PlayerRemoving:Connect(function(v)
                if Players_ESP[v.Name] then
                    Players_ESP[v.Name].RefreshElements = nil
                    Players_ESP[v.Name].CharacterAdded:Disconnect()
                    Players_ESP[v.Name].CharacterAdded = nil
                    Players_ESP[v.Name].ToolConnection_Added:Disconnect()
                    Players_ESP[v.Name].ToolConnection_Removed:Disconnect()
                    Players_ESP[v.Name].ToolConnection_Removed = nil
                    Players_ESP[v.Name].ToolConnection_Added = nil
                    Players_ESP[v.Name] = nil
                end 
            end)
        end;
    end;
end

if not Mobile then
--LPH_JIT_MAX(function()
    local uis = Services.UserInputService
    local players = Services.Players
    local ws = Services.Workspace
    local rs = Services.ReplicatedStorage
    local http_service = Services.HttpService
    local gui_service = Services.GuiService
    local lighting = Services.Lighting
    local run = Services.RunService
    local stats = Services.Stats
    local coregui = Services.CoreGui
    local debris = Services.Debris
    local tween_service = Services.TweenService
    local sound_service = Services.SoundService
    local run_service = Services.RunService


    local vec2 = Vector2.new
    local vec3 = Vector3.new
    local dim2 = UDim2.new
    local dim = UDim.new 
    local rect = Rect.new
    local cfr = CFrame.new
    local empty_cfr = cfr()
    local point_object_space = empty_cfr.PointToObjectSpace
    local angle = CFrame.Angles
    local dim_offset = UDim2.fromOffset

    local color = Color3.new
    local rgb = Color3.fromRGB
    local hex = Color3.fromHex
    local hsv = Color3.fromHSV
    local rgbseq = ColorSequence.new
    local rgbkey = ColorSequenceKeypoint.new
    local numseq = NumberSequence.new
    local numkey = NumberSequenceKeypoint.new

    local camera = ws.CurrentCamera
    local lp = players.LocalPlayer 
    local mouse = lp:GetMouse() 
    local gui_offset = gui_service:GetGuiInset().Y

    local max = math.max 
    local floor = math.floor 
    local min = math.min 
    local abs = math.abs 
    local noise = math.noise
    local rad = math.rad 
    local random = math.random 
    local pow = math.pow 
    local sin = math.sin 
    local pi = math.pi 
    local tan = math.tan 
    local atan2 = math.atan2 
    local clamp = math.clamp 

    local insert = table.insert 
    local find = table.find 
    local remove = table.remove
    local concat = table.concat
-- 

-- Library init
    local themes = {
        preset = {
            accent = rgb(255, 0, 0),
        }, 

        utility = {
            accent = {
                BackgroundColor3 = {}, 	
                TextColor3 = {}, 
                ImageColor3 = {}, 
                ScrollBarImageColor3 = {} 
            },
        }
    }

    local keys = {
        [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",
        [Enum.KeyCode.End] = "END",
    }
        
    library.__index = library

    local flags = library.flags 
    local config_flags = library.config_flags
    local notifications = library.notifications 

    local fonts = {}; do
        function Register_Font(Name, Weight, Style, Asset)
            if not isfile(Asset.Id) then
                writefile(Asset.Id, Asset.Font)
            end

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

            local Data = {
                name = Name,
                faces = {
                    {
                        name = "Normal",
                        weight = Weight,
                        style = Style,
                        assetId = getcustomasset(Asset.Id),
                    },
                },
            }

            writefile(Name .. ".font", http_service:JSONEncode(Data))

            return getcustomasset(Name .. ".font");
        end
        
        local Medium = Register_Font("Medium", 200, "Normal", {
            Id = "Medium.ttf",
            Font = game:HttpGet("https://[Log in to view URL]"),
        })

        local SemiBold = Register_Font("SemiBold", 200, "Normal", {
            Id = "SemiBold.ttf",
            Font = game:HttpGet("https://[Log in to view URL]"),
        })

        fonts = {
            small = Font.new(Medium, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
            font = Font.new(SemiBold, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
        }
    end
--

-- Library functions 
    -- Misc functions
        function library:tween(obj, properties, easing_style, time) 
            local tween = tween_service:Create(obj, TweenInfo.new(time or 0.25, easing_style or Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, 0, false, 0), properties):Play()
                
            return tween
        end

        function library:resizify(frame) 
            local Frame = Instance.new("TextButton")
            Frame.Position = dim2(1, -10, 1, -10)
            Frame.BorderColor3 = rgb(0, 0, 0)
            Frame.Size = dim2(0, 10, 0, 10)
            Frame.BorderSizePixel = 0
            Frame.BackgroundColor3 = rgb(255, 255, 255)
            Frame.Parent = frame
            Frame.BackgroundTransparency = 1 
            Frame.Text = ""

            local resizing = false 
            local start_size 
            local start 
            local og_size = frame.Size  

            Frame.InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.MouseButton1 then
                    resizing = true
                    start = input.Position
                    start_size = frame.Size
                end
            end)

            Frame.InputEnded:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.MouseButton1 then
                    resizing = false
                end
            end)

            library:connection(uis.InputChanged, function(input, game_event) 
                if resizing and input.UserInputType == Enum.UserInputType.MouseMovement then
                    local viewport_x = camera.ViewportSize.X
                    local viewport_y = camera.ViewportSize.Y

                    local current_size = dim2(
                        start_size.X.Scale,
                        math.clamp(
                            start_size.X.Offset + (input.Position.X - start.X),
                            og_size.X.Offset,
                            viewport_x
                        ),
                        start_size.Y.Scale,
                        math.clamp(
                            start_size.Y.Offset + (input.Position.Y - start.Y),
                            og_size.Y.Offset,
                            viewport_y
                        )
                    )

                    library:tween(frame, {Size = current_size}, Enum.EasingStyle.Linear, 0.05)
                end
            end)
        end 

        function fag(tbl)
            local Size = 0
            
            for _ in tbl do
                Size = Size + 1
            end
        
            return Size
        end
        
        function library:next_flag()
            local index = fag(library.flags) + 1;
            local str = string.format("flagnumber%s", index)
            
            return str;
        end 

        function library:mouse_in_frame(uiobject)
            local y_cond = uiobject.AbsolutePosition.Y <= mouse.Y and mouse.Y <= uiobject.AbsolutePosition.Y + uiobject.AbsoluteSize.Y
            local x_cond = uiobject.AbsolutePosition.X <= mouse.X and mouse.X <= uiobject.AbsolutePosition.X + uiobject.AbsoluteSize.X

            return (y_cond and x_cond)
        end

        function library:draggify(frame)
            local dragging = false 
            local start_size = frame.Position
            local start 

            frame.InputBegan:Connect(LPH_NO_VIRTUALIZE(function(input)
                if input.UserInputType == Enum.UserInputType.MouseButton1 then
                    dragging = true
                    start = input.Position
                    start_size = frame.Position
                end
            end))

            frame.InputEnded:Connect(LPH_NO_VIRTUALIZE(function(input)
                if input.UserInputType == Enum.UserInputType.MouseButton1 then
                    dragging = false
                end
            end))

            library:connection(uis.InputChanged, LPH_NO_VIRTUALIZE(function(input, game_event) 
                if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
                    local viewport_x = camera.ViewportSize.X
                    local viewport_y = camera.ViewportSize.Y

                    local current_position = dim2(
                        0,
                        clamp(
                            start_size.X.Offset + (input.Position.X - start.X),
                            0,
                            viewport_x - frame.Size.X.Offset
                        ),
                        0,
                        math.clamp(
                            start_size.Y.Offset + (input.Position.Y - start.Y),
                            0,
                            viewport_y - frame.Size.Y.Offset
                        )
                    )

                    library:tween(frame, {Position = current_position}, Enum.EasingStyle.Linear, 0.05)
                    library:close_element()
                end
            end))
        end 

        function library:convert(str)
            local values = {}

            for value in string.gmatch(str, "[^,]+") do
                insert(values, tonumber(value))
            end
            
            if #values == 4 then              
                return unpack(values)
            else 
                return
            end
        end
        
        function library:convert_enum(enum)
            local enum_parts = {}
        
            for part in string.gmatch(enum, "[%w_]+") do
                insert(enum_parts, part)
            end
        
            local enum_table = Enum
            for i = 2, #enum_parts do
                local enum_item = enum_table[enum_parts[i]]
        
                enum_table = enum_item
            end
        
            return enum_table
        end

        local config_holder;
        function library:update_config_list() 
            if not config_holder then 
                return 
            end
            
            local list = {}
            
            for idx, file in listfiles(library.directory .. "/configs") do
                local name = file:gsub(library.directory .. "/configs\\", ""):gsub(".cfg", ""):gsub(library.directory .. "\\configs\\", "")
                list[#list + 1] = name
            end

            config_holder.refresh_options(list)
        end 

        function library:get_config()
            local Config = {}
            
            for _, v in next, flags do
                if type(v) == "table" and v.key then
                    Config[_] = {active = v.active, mode = v.mode, key = tostring(v.key)}
                elseif type(v) == "table" and v["Transparency"] and v["Color"] then
                    Config[_] = {Transparency = v["Transparency"], Color = v["Color"]:ToHex()}
                else
                    Config[_] = v
                end
            end 
            
            return http_service:JSONEncode(Config)
        end

        function library:load_config(config_json) 
            local config = http_service:JSONDecode(config_json)
            
            for _, v in config do 
                local function_set = library.config_flags[_]
                
                if _ == "config_name_list" then 
                    continue 
                end

                if function_set then 
                    if type(v) == "table" and v["Transparency"] and v["Color"] then
                        function_set(hex(v["Color"]), v["Transparency"])
                    elseif type(v) == "table" and v["active"] then 
                        function_set(v)
                    else
                        function_set(v)
                    end
                end 
            end 
        end 
        
        function library:round(number, float) 
            local multiplier = 1 / (float or 1)

            return floor(number * multiplier + 0.5) / multiplier
        end 

        function library:apply_theme(instance, theme, property) 
            insert(themes.utility[theme][property], instance)
        end

        function library:update_theme(theme, color)
            for _, property in themes.utility[theme] do 

                for m, object in property do 
                    if object[_] == themes.preset[theme] then 
                        object[_] = color 
                    end 
                end 
            end 

            themes.preset[theme] = color 
        end 

        function library:connection(signal, callback)
            local connection = signal:Connect(callback)
            
            insert(library.connections, connection)

            return connection 
        end

        function library:close_element(new_path) 
            local open_element = library.current_open

            if open_element and new_path ~= open_element then
                open_element.set_visible(false)
                open_element.open = false;
            end 

            if new_path ~= open_element then 
                library.current_open = new_path or nil;
            end
        end 

        function library:create(instance, options)
            local ins = Instance.new(instance) 
            
            for prop, value in options do 
                ins[prop] = value
            end
            
            return ins 
        end

        function library:unload_menu() 
            if library[ "items" ] then 
                library[ "items" ]:Destroy()
            end

            if library[ "other" ] then 
                library[ "other" ]:Destroy()
            end 
            
            for index, connection in library.connections do 
                connection:Disconnect() 
                connection = nil 
            end
            
            library = nil 
        end 
    --
        --[[local cursor_screengui = library:create("ScreenGui", {
            ResetOnSpawn = false,
            ZIndexBehavior = Enum.ZIndexBehavior.Global,
            Name = "error - stack",
            IgnoreGuiInset = true,
            DisplayOrder = 9999,
            Parent = gethui()
        })

        local cursor_image = library:create("ImageLabel", {
            Name = "Cursor",
            BackgroundTransparency = 1,
            Size = UDim2.new(0, 34, 0, 34),
            Image = GetImage('cursor.png'),
            ZIndex = 6969,
            Parent = cursor_screengui
        })

        run_service.PreRender:Connect(LPH_NO_VIRTUALIZE(function()
            local mouseloc = uis:GetMouseLocation()
            cursor_image.Position = UDim2.new(0, mouseloc.X , 0, mouseloc.Y)
        end))]]
    
    -- Library element functions
        function library:window(properties)
            local cfg = { 
                suffix = properties.suffix or properties.Suffix or "tech";
                name = properties.name or properties.Name or "nebula";
                game_name = properties.gameInfo or properties.game_info or properties.GameInfo or "Milenium for Counter-Strike: Global Offensive";
                size = properties.size or properties.Size or dim2(0, 700, 0, 565);
                selected_tab;
                items = {};

                tween;
            }
            
            library[ "items" ] = library:create( "ScreenGui" , {
                Parent = gethui();
                Name = "\0";
                Enabled = true;
                ZIndexBehavior = Enum.ZIndexBehavior.Global;
                IgnoreGuiInset = true;
            });
            
            library[ "other" ] = library:create( "ScreenGui" , {
                Parent = gethui();
                Name = "\0";
                Enabled = false;
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
                IgnoreGuiInset = true;
            }); 

            -- IF SHIT HAPPEN REMVOE ZINDEX

            local items = cfg.items; do
                items[ "main" ] = library:create( "Frame" , {
                    Parent = library[ "items" ];
                    Size = cfg.size;
                    Name = "\0";
                    Position = dim2(0.5, -cfg.size.X.Offset / 2, 0.5, -cfg.size.Y.Offset / 2);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(14, 14, 16),
                }); items[ "main" ].Position = dim2(0, items[ "main" ].AbsolutePosition.X, 0, items[ "main" ].AbsolutePosition.Y)
                
                library:create( "UICorner" , {
                    Parent = items[ "main" ];
                    CornerRadius = dim(0, 10)
                });
                
                library:create( "UIStroke" , {
                    Color = rgb(23, 23, 29);
                    Parent = items[ "main" ];
                    ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                });
                
                items[ "side_frame" ] = library:create( "Frame" , {
                    Parent = items[ "main" ];
                    BackgroundTransparency = 1;
                    Name = "\0";
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 196, 1, -25);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(14, 14, 16)
                });
                
                library:create( "Frame" , {
                    AnchorPoint = vec2(1, 0);
                    Parent = items[ "side_frame" ];
                    Position = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 1, 1, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(21, 21, 23)
                });
                
                items[ "button_holder" ] = library:create( "Frame" , {
                    Parent = items[ "side_frame" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 0, 0, 60);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 1, -60);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); cfg.button_holder = items[ "button_holder" ];
                
                library:create( "UIListLayout" , {
                    Parent = items[ "button_holder" ];
                    Padding = dim(0, 5);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    PaddingTop = dim(0, 16);
                    PaddingBottom = dim(0, 36);
                    Parent = items[ "button_holder" ];
                    PaddingRight = dim(0, 11);
                    PaddingLeft = dim(0, 10)
                });

                local accent = themes.preset.accent
                items[ "title" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    BorderColor3 = rgb(0, 0, 0);
                    Text = name;
                    Parent = items[ "side_frame" ];
                    Name = "\0";
                    Text = string.format('<u>%s</u><font color = "rgb(255, 255, 255)">%s</font>', cfg.name, cfg.suffix);
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 70);
                    TextColor3 = themes.preset.accent;
                    BorderSizePixel = 0;
                    RichText = true;
                    TextSize = 30;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "title" ], "accent", "TextColor3");
                
                items[ "multi_holder" ] = library:create( "Frame" , {
                    Parent = items[ "main" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 196, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -196, 0, 56);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); cfg.multi_holder = items[ "multi_holder" ];
                
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "multi_holder" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(21, 21, 23)
                });
                
                items[ "shadow" ] = library:create( "ImageLabel" , {
                    ImageColor3 = rgb(0, 0, 0);
                    ScaleType = Enum.ScaleType.Slice;
                    Parent = items[ "main" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Name = "\0";
                    BackgroundColor3 = rgb(255, 255, 255);
                    Size = dim2(1, 75, 1, 75);
                    AnchorPoint = vec2(0.5, 0.5);
                    Image = "rbxassetid://112971167999062";
                    BackgroundTransparency = 1;
                    Position = dim2(0.5, 0, 0.5, 0);
                    SliceScale = 0.75;
                    ZIndex = -100;
                    BorderSizePixel = 0;
                    SliceCenter = rect(vec2(112, 112), vec2(147, 147))
                });
                
                items[ "global_fade" ] = library:create( "Frame" , {
                    Parent = items[ "main" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 196, 0, 56);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -196, 1, -81);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(14, 14, 16);
                    ZIndex = 2;
                });                

                library:create( "UICorner" , {
                    Parent = items[ "shadow" ];
                    CornerRadius = dim(0, 5)
                });
                
                items[ "info" ] = library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "main" ];
                    Name = "\0";
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 25);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(23, 23, 25)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "info" ];
                    CornerRadius = dim(0, 10)
                });
                
                items[ "grey_fill" ] = library:create( "Frame" , {
                    Name = "\0";
                    Parent = items[ "info" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 6);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(23, 23, 25)
                });
                
                items[ "game" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    Parent = items[ "info" ];
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.game_name;
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    AnchorPoint = vec2(0, 0.5);
                    Position = dim2(0, 10, 0.5, -1);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); 
                              
                if not LRM_SecondsLeft then
                    LRM_SecondsLeft = math.huge
                end

                local time_left = tostring((LRM_SecondsLeft < math.huge and ""..tostring(math.floor(((LRM_SecondsLeft / 60) / 60) / 24)).." days" or LRM_SecondsLeft == math.huge and "lifetime"))

                items[ "other_info" ] = library:create( "TextLabel" , {
                    Parent = items[ "info" ];
                    RichText = true;
                    Name = "\0";
                    TextColor3 = themes.preset.accent;
                    BorderColor3 = rgb(0, 0, 0);
                    Text = '<font color="rgb(255, 0, 0)">'..time_left..', </font>' .. cfg.name:lower() .. cfg.suffix:lower();
                    Size = dim2(1, 0, 0, 0);
                    Position = dim2(0, -10, 0.5, -1);
                    AnchorPoint = vec2(0, 0.5);
                    BorderSizePixel = 0;
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Right;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    FontFace = fonts.font;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "other_info" ], "accent", "TextColor3");        
            end 

            do -- Other
                library:draggify(items[ "main" ])
                library:resizify(items[ "main" ])
            end 

            function cfg.toggle_menu(bool) 
                -- WIP 
                -- if cfg.tween then 
                --     cfg.tween:Cancel()
                -- end 

                -- items[ "main" ].Size = dim2(items[ "main" ].Size.Scale.X, items[ "main" ].Size.Offset.X - 20, items[ "main" ].Size.Scale.Y, items[ "main" ].Size.Offset.Y - 20)
                -- library:tween(items[ "tab_holder" ], {Size = dim2(1, -196, 1, -81)}, Enum.EasingStyle.Quad, 0.4)
                -- cfg.tween = 
                --cursor_image.Visible = bool
                --uis.MouseIconEnabled = not bool
                library[ "items" ].Enabled = bool
            end 

            RunService.RenderStepped:Connect(LPH_NO_VIRTUALIZE(function()
                if library[ "items" ].Enabled and not uis.MouseIconEnabled then
                    uis.MouseIconEnabled = true
                end
            end))
                
            return setmetatable(cfg, library)
        end 

        function library:tab(properties)
            local cfg = {
                name = properties.name or properties.Name or "visuals"; 
                icon = properties.icon or properties.Icon or "http://[Log in to view URL]";
                
                -- multi 
                tabs = properties.tabs or properties.Tabs or {"Main", "Misc.", "Settings"};
                pages = {}; -- data store for multi sections
                current_multi; 
                
                items = {};
            } 

            local items = cfg.items; do 
                items[ "tab_holder" ] = library:create( "Frame" , {
                    Parent = library.cache;
                    Name = "\0";
                    Visible = false;
                    BackgroundTransparency = 1;
                    Position = dim2(0, 196, 0, 56);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -216, 1, -101);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                -- Tab buttons 
                    items[ "button" ] = library:create( "TextButton" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 255, 255);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = self.items[ "button_holder" ];
                        AutoButtonColor = false;
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Size = dim2(1, 0, 0, 35);
                        BorderSizePixel = 0;
                        TextSize = 16;
                        BackgroundColor3 = rgb(29, 29, 29)
                    });
                    
                    items[ "icon" ] = library:create( "ImageLabel" , {
                        ImageColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = items[ "button" ];
                        AnchorPoint = vec2(0, 0.5);
                        Image = cfg.icon;
                        BackgroundTransparency = 1;
                        Position = dim2(0, 10, 0.5, 0);
                        Name = "\0";
                        Size = dim2(0, 22, 0, 22);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    }); library:apply_theme(items[ "icon" ], "accent", "ImageColor3");
                    
                    items[ "name" ] = library:create( "TextLabel" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = cfg.name;
                        Parent = items[ "button" ];
                        Name = "\0";
                        Size = dim2(0, 0, 1, 0);
                        Position = dim2(0, 40, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.X;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "name" ];
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "button" ];
                        CornerRadius = dim(0, 7)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(23, 23, 29);
                        Parent = items[ "button" ];
                        Enabled = false;
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                    });
                -- 

                -- Multi Sections
                    items[ "multi_section_button_holder" ] = library:create( "Frame" , {
                        Parent = library.cache;
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Visible = false;
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "multi_section_button_holder" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder;
                        FillDirection = Enum.FillDirection.Horizontal
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingTop = dim(0, 8);
                        PaddingBottom = dim(0, 7);
                        Parent = items[ "multi_section_button_holder" ];
                        PaddingRight = dim(0, 7);
                        PaddingLeft = dim(0, 7)
                    });                        

                    for _, section in cfg.tabs do
                        local data = {items = {}} 

                        local multi_items = data.items; do 
                            -- Button
                                multi_items[ "button" ] = library:create( "TextButton" , {
                                    FontFace = fonts.font;
                                    TextColor3 = rgb(255, 255, 255);
                                    BorderColor3 = rgb(0, 0, 0);
                                    AutoButtonColor = false;
                                    Text = "";
                                    Parent = items[ "multi_section_button_holder" ];
                                    Name = "\0";
                                    Size = dim2(0, 0, 0, 39);
                                    BackgroundTransparency = 1;
                                    ClipsDescendants = true;
                                    BorderSizePixel = 0;
                                    AutomaticSize = Enum.AutomaticSize.X;
                                    TextSize = 16;
                                    BackgroundColor3 = rgb(25, 25, 29)
                                });
                                
                                multi_items[ "name" ] = library:create( "TextLabel" , {
                                    FontFace = fonts.font;
                                    TextColor3 = rgb(62, 62, 63);
                                    BorderColor3 = rgb(0, 0, 0);
                                    Text = section;
                                    Parent = multi_items[ "button" ];
                                    Name = "\0";
                                    Size = dim2(0, 0, 1, 0);
                                    BackgroundTransparency = 1;
                                    TextXAlignment = Enum.TextXAlignment.Left;
                                    BorderSizePixel = 0;
                                    AutomaticSize = Enum.AutomaticSize.XY;
                                    TextSize = 16;
                                    BackgroundColor3 = rgb(255, 255, 255)
                                });
                                
                                library:create( "UIPadding" , {
                                    Parent = multi_items[ "name" ];
                                    PaddingRight = dim(0, 5);
                                    PaddingLeft = dim(0, 5)
                                });
                                
                                multi_items[ "accent" ] = library:create( "Frame" , {
                                    BorderColor3 = rgb(0, 0, 0);
                                    AnchorPoint = vec2(0, 1);
                                    Parent = multi_items[ "button" ];
                                    BackgroundTransparency = 1;
                                    Position = dim2(0, 10, 1, 4);
                                    Name = "\0";
                                    Size = dim2(1, -20, 0, 6);
                                    BorderSizePixel = 0;
                                    BackgroundColor3 = themes.preset.accent
                                }); library:apply_theme(multi_items[ "accent" ], "accent", "BackgroundColor3");
                                
                                library:create( "UICorner" , {
                                    Parent = multi_items[ "accent" ];
                                    CornerRadius = dim(0, 999)
                                });
                                
                                library:create( "UIPadding" , {
                                    Parent = multi_items[ "button" ];
                                    PaddingRight = dim(0, 10);
                                    PaddingLeft = dim(0, 10)
                                });
                                
                                library:create( "UICorner" , {
                                    Parent = multi_items[ "button" ];
                                    CornerRadius = dim(0, 7)
                                }); 
                            --

                            -- Tab 
                                multi_items[ "tab" ] = library:create( "Frame" , {
                                    Parent = library.cache;
                                    BackgroundTransparency = 1;
                                    Name = "\0";
                                    BorderColor3 = rgb(0, 0, 0);
                                    Size = dim2(1, -20, 1, -20);
                                    BorderSizePixel = 0;
                                    Visible = false;
                                    BackgroundColor3 = rgb(255, 255, 255)
                                });
                                
                                library:create( "UIListLayout" , {
                                    FillDirection = Enum.FillDirection.Vertical;
                                    HorizontalFlex = Enum.UIFlexAlignment.Fill;
                                    Parent = multi_items[ "tab" ];
                                    Padding = dim(0, 7);
                                    SortOrder = Enum.SortOrder.LayoutOrder;
                                    VerticalFlex = Enum.UIFlexAlignment.Fill
                                });
                                
                                library:create( "UIPadding" , {
                                    PaddingTop = dim(0, 7);
                                    PaddingBottom = dim(0, 7);
                                    Parent = multi_items[ "tab" ];
                                    PaddingRight = dim(0, 7);
                                    PaddingLeft = dim(0, 7)
                                });
                            --
                        end

                        data.text = multi_items[ "name" ]
                        data.accent = multi_items[ "accent" ]
                        data.button = multi_items[ "button" ]
                        data.page = multi_items[ "tab" ]
                        data.parent = setmetatable(data, library):sub_tab({}).items[ "tab_parent" ]
                        
                        -- Old column code
                        -- data.left = multi_items[ "left" ]
                        -- data.right = multi_items[ "right" ]

						function data.open_page()
							local page = cfg.current_multi; 
                            
                            if page and page.text ~= data.text then 
                                self.items[ "global_fade" ].BackgroundTransparency = 0
                                library:tween(self.items[ "global_fade" ], {BackgroundTransparency = 1}, Enum.EasingStyle.Quad, 0.4)
                                
                                local old_size = page.page.Size
                                page.page.Size = dim2(1, -20, 1, -20)
                            end

                            if page then
                                library:tween(page.text, {TextColor3 = rgb(62, 62, 63)})
                                library:tween(page.accent, {BackgroundTransparency = 1})
                                library:tween(page.button, {BackgroundTransparency = 1})

                                page.page.Visible = false
                                page.page.Parent = library[ "cache" ] 
                            end 
                            
                            library:tween(data.text, {TextColor3 = rgb(255, 255, 255)})
                            library:tween(data.accent, {BackgroundTransparency = 0})
                            library:tween(data.button, {BackgroundTransparency = 0})
                            library:tween(data.page, {Size = dim2(1, 0, 1, 0)}, Enum.EasingStyle.Quad, 0.4)

                            data.page.Visible = true
                            data.page.Parent = items["tab_holder"]

                            cfg.current_multi = data

                            library:close_element()
						end

						multi_items[ "button" ].MouseButton1Down:Connect(function()
							data.open_page() 
						end)

						cfg.pages[#cfg.pages + 1] = setmetatable(data, library)
                    end 

                    cfg.pages[1].open_page()
                --
            end 

            function cfg.open_tab() 
                local selected_tab = self.selected_tab
                
                if selected_tab then 
                    if selected_tab[ 4 ] ~= items[ "tab_holder" ] then 
                        self.items[ "global_fade" ].BackgroundTransparency = 0
                        
                        library:tween(self.items[ "global_fade" ], {BackgroundTransparency = 1}, Enum.EasingStyle.Quad, 0.4)
                        selected_tab[ 4 ].Size = dim2(1, -216, 1, -101)
                    end

                    library:tween(selected_tab[ 1 ], {BackgroundTransparency = 1})
                    library:tween(selected_tab[ 2 ], {ImageColor3 = rgb(255, 0, 0)})
                    library:tween(selected_tab[ 3 ], {TextColor3 = rgb(255, 0, 0)})

                    selected_tab[ 4 ].Visible = false
                    selected_tab[ 4 ].Parent = library[ "cache" ]
                    selected_tab[ 5 ].Visible = false
                    selected_tab[ 5 ].Parent = library[ "cache" ]
                end

                library:tween(items[ "button" ], {BackgroundTransparency = 0})
                library:tween(items[ "icon" ], {ImageColor3 = themes.preset.accent})
                library:tween(items[ "name" ], {TextColor3 = rgb(255, 255, 255)})
                library:tween(items[ "tab_holder" ], {Size = dim2(1, -196, 1, -81)}, Enum.EasingStyle.Quad, 0.4)
                
                items[ "tab_holder" ].Visible = true 
                items[ "tab_holder" ].Parent = self.items[ "main" ]
                items[ "multi_section_button_holder" ].Visible = true 
                items[ "multi_section_button_holder" ].Parent = self.items[ "multi_holder" ]

                self.selected_tab = {
                    items[ "button" ];
                    items[ "icon" ];
                    items[ "name" ];
                    items[ "tab_holder" ];
                    items[ "multi_section_button_holder" ];
                }

                library:close_element()
            end

            items[ "button" ].MouseButton1Down:Connect(function()
                cfg.open_tab()
            end)
            
            if not self.selected_tab then 
                cfg.open_tab(true) 
            end

            return unpack(cfg.pages)
        end

        function library:seperator(properties)
            local cfg = {items = {}, name = properties.Name or properties.name or "General"}

            local items = cfg.items do 
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = self.items[ "button_holder" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    Position = dim2(0, 40, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0; 
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });                
            end;    

            return setmetatable(cfg, library)
        end 

        -- Miscellaneous 
            function library:column(properties) 
                local cfg = {items = {}, size = properties.size or 1}

                local items = cfg.items; do     
                    items[ "column" ] = library:create( "Frame" , {
                        Parent = self[ "parent" ] or self.items["tab_parent"];
                        BackgroundTransparency = 1;
                        Name = "\0";
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 0, cfg.size, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingBottom = dim(0, 10);
                        Parent = items[ "column" ]
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "column" ];
                        HorizontalFlex = Enum.UIFlexAlignment.Fill;
                        Padding = dim(0, 10);
                        FillDirection = Enum.FillDirection.Vertical;
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                end 

                return setmetatable(cfg, library)
            end 

            function library:sub_tab(properties) 
                local cfg = {items = {}, order = properties.order or 0; size = properties.size or 1}

                local items = cfg.items; do 
                    items[ "tab_parent" ] = library:create( "Frame" , {
                        Parent = self.items[ "tab" ];
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Size = dim2(0,0,cfg.size,0);
                        BorderColor3 = rgb(0, 0, 0);
                        BorderSizePixel = 0;
                        Visible = true;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        FillDirection = Enum.FillDirection.Horizontal;
                        HorizontalFlex = Enum.UIFlexAlignment.Fill;
                        VerticalFlex = Enum.UIFlexAlignment.Fill;
                        Parent = items[ "tab_parent" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder;
                    });
                end

                return setmetatable(cfg, library)
            end 
        --

        function library:section(properties)
            local cfg = {
                name = properties.name or properties.Name or "section"; 
                side = properties.side or properties.Side or "left";
                default = properties.default or properties.Default or false;
                size = properties.size or properties.Size or self.size or 0.5; 
                icon = properties.icon or properties.Icon or "http://[Log in to view URL]";
                fading_toggle = properties.fading or properties.Fading or false;
                items = {};
            };
            
            local items = cfg.items; do 
                items[ "outline" ] = library:create( "Frame" , {
                    Name = "\0";
                    Parent = self.items[ "column" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, cfg.size, -3);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(25, 25, 29)
                });

                library:create( "UICorner" , {
                    Parent = items[ "outline" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "inline" ] = library:create( "Frame" , {
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Position = dim2(0, 1, 0, 1);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -2, 1, -2);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(22, 22, 24)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "inline" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "scrolling" ] = library:create( "ScrollingFrame" , {
                    ScrollBarImageColor3 = rgb(44, 44, 46);
                    Active = true;
                    AutomaticCanvasSize = Enum.AutomaticSize.Y;
                    ScrollBarThickness = 2;
                    Parent = items[ "inline" ];
                    Name = "\0";
                    Size = dim2(1, 0, 1, -40);
                    BackgroundTransparency = 1;
                    Position = dim2(0, 0, 0, 35);
                    BackgroundColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    CanvasSize = dim2(0, 0, 0, 0)
                });
                
                items[ "elements" ] = library:create( "Frame" , {
                    BorderColor3 = rgb(0, 0, 0);
                    Parent = items[ "scrolling" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 10, 0, 10);
                    Size = dim2(1, -20, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "elements" ];
                    Padding = dim(0, 10);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    PaddingBottom = dim(0, 15);
                    Parent = items[ "elements" ]
                });
                
                items[ "button" ] = library:create( "TextButton" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    AutoButtonColor = false;
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Position = dim2(0, 1, 0, 1);
                    Size = dim2(1, -2, 0, 35);
                    BorderSizePixel = 0;
                    TextSize = 16;
                    BackgroundColor3 = rgb(19, 19, 21)
                });
                
                library:create( "UIStroke" , {
                    Color = rgb(23, 23, 29);
                    Parent = items[ "button" ];
                    Enabled = false;
                    ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "button" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "Icon" ] = library:create( "ImageLabel" , {
                    ImageColor3 = themes.preset.accent;
                    BorderColor3 = rgb(0, 0, 0);
                    Parent = items[ "button" ];
                    AnchorPoint = vec2(0, 0.5);
                    Image = cfg.icon;
                    BackgroundTransparency = 1;
                    Position = dim2(0, 10, 0.5, 0);
                    Name = "\0";
                    Size = dim2(0, 22, 0, 22);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "Icon" ], "accent", "ImageColor3");
                
                items[ "section_title" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "button" ];
                    Name = "\0";
                    Size = dim2(0, 0, 1, 0);
                    Position = dim2(0, 40, 0, -1);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.X;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "button" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
                
                if cfg.fading_toggle then 
                    items[ "toggle" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(1, 0.5);
                        Parent = items[ "button" ];
                        Name = "\0";
                        Position = dim2(1, -9, 0.5, 0);
                        Size = dim2(0, 36, 0, 18);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(58, 58, 62)
                    });  library:apply_theme(items[ "toggle" ], "accent", "BackgroundColor3");
                    
                    library:create( "UICorner" , {
                        Parent = items[ "toggle" ];
                        CornerRadius = dim(0, 999)
                    });
                    
                    items[ "toggle_outline" ] = library:create( "Frame" , {
                        Parent = items[ "toggle" ];
                        Size = dim2(1, -2, 1, -2);
                        Name = "\0";
                        BorderMode = Enum.BorderMode.Inset;
                        BorderColor3 = rgb(0, 0, 0);
                        Position = dim2(0, 1, 0, 1);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(50, 50, 50)
                    });  library:apply_theme(items[ "toggle_outline" ], "accent", "BackgroundColor3");
                    
                    library:create( "UICorner" , {
                        Parent = items[ "toggle_outline" ];
                        CornerRadius = dim(0, 999)
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))};
                        Parent = items[ "toggle_outline" ]
                    });
                    
                    items[ "toggle_circle" ] = library:create( "Frame" , {
                        Parent = items[ "toggle_outline" ];
                        Name = "\0";
                        Position = dim2(0, 2, 0, 2);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 12, 0, 12);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(86, 86, 88)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "toggle_circle" ];
                        CornerRadius = dim(0, 999)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "outline" ];
                        CornerRadius = dim(0, 7)
                    });
                
                    items[ "fade" ] = library:create( "Frame" , {
                        Parent = items[ "outline" ];
                        BackgroundTransparency = 0.800000011920929;
                        Name = "\0";
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(0, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "fade" ];
                        CornerRadius = dim(0, 7)
                    });
                end 
            end;

            if cfg.fading_toggle then
                items[ "button" ].MouseButton1Click:Connect(function()
                    cfg.default = not cfg.default 
                    cfg.toggle_section(cfg.default) 
                end)

                function cfg.toggle_section(bool)
                    library:tween(items[ "toggle" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(58, 58, 62)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "toggle_outline" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(50, 50, 50)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "toggle_circle" ], {BackgroundColor3 = bool and rgb(255, 255, 255) or rgb(86, 86, 88), Position = bool and dim2(1, -14, 0, 2) or dim2(0, 2, 0, 2)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "fade" ], {BackgroundTransparency = bool and 1 or 0.8}, Enum.EasingStyle.Quad)
                end 
            end 

            return setmetatable(cfg, library)
        end  

        function library:toggle(options) 
            local rand = math.random(1, 2) 
            local cfg = {
                enabled = options.default or false,
                name = options.name or "Toggle",
                info = options.info or nil,
                flag = options.flag or library:next_flag(),
                
                type = options.type and string.lower(options.type) or rand == 1 and "toggle" or "checkbox"; -- "toggle", "checkbox"

                default = options.default or false,
                folding = options.folding or false, 
                callback = options.callback or function() end,

                items = {};
                seperator = options.seperator or options.Seperator or false;
            }

            flags[cfg.flag] = cfg.default

            local items = cfg.items; do
                items[ "toggle" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "toggle" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });

                if cfg.info then 
                    items[ "info" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(130, 130, 130);
                        BorderColor3 = rgb(0, 0, 0);
                        TextWrapped = true;
                        Text = cfg.info;
                        Parent = items[ "toggle" ];
                        Name = "\0";
                        Position = dim2(0, 5, 0, 17);
                        Size = dim2(1, -10, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                end 
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "toggle" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 1, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    FillDirection = Enum.FillDirection.Horizontal;
                    HorizontalAlignment = Enum.HorizontalAlignment.Right;
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 9);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                -- Toggle
                    if cfg.type == "checkbox" then 
                        items[ "toggle_button" ] = library:create( "TextButton" , {
                            FontFace = fonts.small;
                            TextColor3 = rgb(0, 0, 0);
                            BorderColor3 = rgb(0, 0, 0);
                            Text = "";
                            LayoutOrder = 2;
                            AutoButtonColor = false;
                            AnchorPoint = vec2(1, 0);
                            Parent = items[ "right_components" ];
                            Name = "\0";
                            Position = dim2(1, 0, 0, 0);
                            Size = dim2(0, 16, 0, 16);
                            BorderSizePixel = 0;
                            TextSize = 14;
                            BackgroundColor3 = rgb(67, 67, 68)
                        }); library:apply_theme(items[ "toggle_button" ], "accent", "BackgroundColor3");
                        
                        library:create( "UICorner" , {
                            Parent = items[ "toggle_button" ];
                            CornerRadius = dim(0, 4)
                        });
                        
                        items[ "outline" ] = library:create( "Frame" , {
                            Parent = items[ "toggle_button" ];
                            Size = dim2(1, -2, 1, -2);
                            Name = "\0";
                            BorderMode = Enum.BorderMode.Inset;
                            BorderColor3 = rgb(0, 0, 0);
                            Position = dim2(0, 1, 0, 1);
                            BorderSizePixel = 0;
                            BackgroundColor3 = rgb(22, 22, 24)
                        }); library:apply_theme(items[ "outline" ], "accent", "BackgroundColor3");
                        
                        items[ "tick" ] = library:create( "ImageLabel" , {
                            ImageTransparency = 1;
                            BorderColor3 = rgb(0, 0, 0);
                            Image = "rbxassetid://111862698467575";
                            BackgroundTransparency = 1;
                            Position = dim2(0, -1, 0, 0);
                            Parent = items[ "outline" ];
                            Size = dim2(1, 2, 1, 2);
                            BorderSizePixel = 0;
                            BackgroundColor3 = rgb(255, 255, 255);
                            ZIndex = 1;
                        });

                        library:create( "UICorner" , {
                            Parent = items[ "outline" ];
                            CornerRadius = dim(0, 4)
                        });
                        
                        library:create( "UIGradient" , {
                            Enabled = false;
                            Parent = items[ "outline" ];
                            Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))}
                        });  
                    else 
                        items[ "toggle_button" ] = library:create( "TextButton" , {
                            FontFace = fonts.font;
                            TextColor3 = rgb(0, 0, 0);
                            BorderColor3 = rgb(0, 0, 0);
                            Text = "";
                            LayoutOrder = 2;
                            AnchorPoint = vec2(1, 0.5);
                            Parent = items[ "right_components" ];
                            Name = "\0";
                            Position = dim2(1, -9, 0.5, 0);
                            Size = dim2(0, 36, 0, 18);
                            BorderSizePixel = 0;
                            TextSize = 14;
                            BackgroundColor3 = themes.preset.accent
                        }); library:apply_theme(items[ "toggle_button" ], "accent", "BackgroundColor3");
                        
                        library:create( "UICorner" , {
                            Parent = items[ "toggle_button" ];
                            CornerRadius = dim(0, 999)
                        });
                        
                        items[ "inline" ] = library:create( "Frame" , {
                            Parent = items[ "toggle_button" ];
                            Size = dim2(1, -2, 1, -2);
                            Name = "\0";
                            BorderMode = Enum.BorderMode.Inset;
                            BorderColor3 = rgb(0, 0, 0);
                            Position = dim2(0, 1, 0, 1);
                            BorderSizePixel = 0;
                            BackgroundColor3 = themes.preset.accent
                        }); library:apply_theme(items[ "inline" ], "accent", "BackgroundColor3");
                        
                        library:create( "UICorner" , {
                            Parent = items[ "inline" ];
                            CornerRadius = dim(0, 999)
                        });
                        
                        library:create( "UIGradient" , {
                            Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))};
                            Parent = items[ "inline" ]
                        });
                        
                        items[ "circle" ] = library:create( "Frame" , {
                            Parent = items[ "inline" ];
                            Name = "\0";
                            Position = dim2(1, -14, 0, 2);
                            BorderColor3 = rgb(0, 0, 0);
                            Size = dim2(0, 12, 0, 12);
                            BorderSizePixel = 0;
                            BackgroundColor3 = rgb(255, 255, 255)
                        });
                        
                        library:create( "UICorner" , {
                            Parent = items[ "circle" ];
                            CornerRadius = dim(0, 999)
                        });                        
                    end 
                --                
            end;
            
            function cfg.set(bool)
                if cfg.type == "checkbox" then 
                    library:tween(items[ "tick" ], {Rotation = bool and 0 or 45, ImageTransparency = bool and 0 or 1})
                    library:tween(items[ "toggle_button" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(67, 67, 68)})
                    library:tween(items[ "outline" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(22, 22, 24)})
                else
                    library:tween(items[ "toggle_button" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(58, 58, 62)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "inline" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(50, 50, 50)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "circle" ], {BackgroundColor3 = bool and rgb(255, 255, 255) or rgb(86, 86, 88), Position = bool and dim2(1, -14, 0, 2) or dim2(0, 2, 0, 2)}, Enum.EasingStyle.Quad)
                end

                cfg.enabled = bool
                cfg.callback(bool)

                if cfg.folding then 
                    elements.Visible = bool
                end

                flags[cfg.flag] = bool
            end 
            
            items[ "toggle" ].MouseButton1Click:Connect(function()
                cfg.enabled = not cfg.enabled 
                cfg.set(cfg.enabled)
            end)

            items[ "toggle_button" ].MouseButton1Click:Connect(function()
                cfg.enabled = not cfg.enabled 
                cfg.set(cfg.enabled)
            end)
            
            if cfg.seperator then -- ok bro my lua either sucks or this was a pain in the ass to make (simple if statement aswell 💔)
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end

            cfg.set(cfg.default)

            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end 
        
        function library:slider(options) 
            local cfg = {
                name = options.name or nil,
                suffix = options.suffix or "",
                flag = options.flag or library:next_flag(),
                callback = options.callback or function() end, 
                info = options.info or nil; 

                -- value settings
                min = options.min or options.minimum or 0,
                max = options.max or options.maximum or 100,
                intervals = options.interval or options.decimal or 1,
                default = options.default or 10,
                value = options.default or 10, 
                seperator = options.seperator or options.Seperator or false;

                dragging = false,
                items = {}
            } 

            flags[cfg.flag] = cfg.default

            local items = cfg.items; do
                items[ "slider_object" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "slider_object" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                if cfg.info then 
                    items[ "info" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(130, 130, 130);
                        BorderColor3 = rgb(0, 0, 0);
                        TextWrapped = true;
                        Text = cfg.info;
                        Parent = items[ "slider_object" ];
                        Name = "\0";
                        Position = dim2(0, 5, 0, 37);
                        Size = dim2(1, -10, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                end 

                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "slider_object" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 4, 0, 23);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 12);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 7);
                    SortOrder = Enum.SortOrder.LayoutOrder;
                    FillDirection = Enum.FillDirection.Horizontal
                });
                
                items[ "slider" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    AutoButtonColor = false;
                    AnchorPoint = vec2(1, 0);
                    Parent = items[ "right_components" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0, 0);
                    Size = dim2(1, -4, 0, 4);
                    BorderSizePixel = 0;
                    TextSize = 14;
                    BackgroundColor3 = rgb(33, 33, 35)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "slider" ];
                    CornerRadius = dim(0, 999)
                });
                
                items[ "fill" ] = library:create( "Frame" , {
                    Name = "\0";
                    Parent = items[ "slider" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0.5, 0, 0, 4);
                    BorderSizePixel = 0;
                    BackgroundColor3 = themes.preset.accent
                });  library:apply_theme(items[ "fill" ], "accent", "BackgroundColor3");
                
                library:create( "UICorner" , {
                    Parent = items[ "fill" ];
                    CornerRadius = dim(0, 999)
                });
                
                items[ "circle" ] = library:create( "Frame" , {
                    AnchorPoint = vec2(0.5, 0.5);
                    Parent = items[ "fill" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0.5, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 12, 0, 12);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(244, 244, 244)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "circle" ];
                    CornerRadius = dim(0, 999)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "right_components" ];
                    PaddingTop = dim(0, 4)
                });
                
                items[ "value" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "50%";
                    Parent = items[ "slider_object" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    Position = dim2(0, 6, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Right;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "value" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });                
            end 

            function cfg.changetext(text)
                items['name'].Text = text
            end 

            function cfg.set(value)
                cfg.value = clamp(library:round(value, cfg.intervals), cfg.min, cfg.max)

                library:tween(items[ "fill" ], {Size = dim2((cfg.value - cfg.min) / (cfg.max - cfg.min), cfg.value == cfg.min and 0 or -4, 0, 2)}, Enum.EasingStyle.Linear, 0.05)
                items[ "value" ].Text = tostring(cfg.value) .. cfg.suffix

                flags[cfg.flag] = cfg.value
                cfg.callback(flags[cfg.flag])
            end

            items[ "slider" ].MouseButton1Down:Connect(function()
                cfg.dragging = true 
                library:tween(items[ "value" ], {TextColor3 = rgb(255, 255, 255)}, Enum.EasingStyle.Quad, 0.2)
            end)

            library:connection(uis.InputChanged, function(input)
                if cfg.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then 
                    local size_x = (input.Position.X - items[ "slider" ].AbsolutePosition.X) / items[ "slider" ].AbsoluteSize.X
                    local value = ((cfg.max - cfg.min) * size_x) + cfg.min
                    cfg.set(value)
                end
            end)

            library:connection(uis.InputEnded, function(input)
                if input.UserInputType == Enum.UserInputType.MouseButton1 then
                    cfg.dragging = false
                    library:tween(items[ "value" ], {TextColor3 = rgb(255, 0, 0)}, Enum.EasingStyle.Quad, 0.2) 
                end 
            end)

            if cfg.seperator then 
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end 

            cfg.set(cfg.default)
            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end 

        function library:dropdown(options) 
            local cfg = {
                name = options.name or nil;
                info = options.info or nil;
                flag = options.flag or library:next_flag();
                options = options.items or {""};
                callback = options.callback or function() end;
                multi = options.multi or false;
                scrolling = options.scrolling or false;

                width = options.width or 130;

                -- Ignore these 
                open = false;
                option_instances = {};
                multi_items = {};
                ignore = options.ignore or false;
                items = {};
                y_size;
                seperator = options.seperator or options.Seperator or false;
            }   

            cfg.default = options.default or (cfg.multi and {cfg.items[1]}) or cfg.items[1] or "None"
            flags[cfg.flag] = cfg.default

            local items = cfg.items; do 
                -- Element
                    items[ "dropdown_object" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = self.items[ "elements" ];
                        Name = "\0";
                        BackgroundTransparency = 1;
                        Size = dim2(1, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.Y;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    items[ "name" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = cfg.name;
                        Parent = items[ "dropdown_object" ];
                        Name = "\0";
                        Size = dim2(1, 0, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    if cfg.info then 
                        items[ "info" ] = library:create( "TextLabel" , {
                            FontFace = fonts.small;
                            TextColor3 = rgb(130, 130, 130);
                            BorderColor3 = rgb(0, 0, 0);
                            TextWrapped = true;
                            Text = cfg.info;
                            Parent = items[ "dropdown_object" ];
                            Name = "\0";
                            Position = dim2(0, 5, 0, 17);
                            Size = dim2(1, -10, 0, 0);
                            BackgroundTransparency = 1;
                            TextXAlignment = Enum.TextXAlignment.Left;
                            BorderSizePixel = 0;
                            AutomaticSize = Enum.AutomaticSize.XY;
                            TextSize = 16;
                            BackgroundColor3 = rgb(255, 255, 255)
                        });
                    end 

                    library:create( "UIPadding" , {
                        Parent = items[ "name" ];
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    items[ "right_components" ] = library:create( "Frame" , {
                        Parent = items[ "dropdown_object" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        FillDirection = Enum.FillDirection.Horizontal;
                        HorizontalAlignment = Enum.HorizontalAlignment.Right;
                        Parent = items[ "right_components" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    items[ "dropdown" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Parent = items[ "right_components" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        Size = dim2(0, cfg.width, 0, 16);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(33, 33, 35)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "dropdown" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "sub_text" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(86, 86, 87);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "awdawdawdawdawdawdawdaw";
                        Parent = items[ "dropdown" ];
                        Name = "\0";
                        Size = dim2(1, -12, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        TextTruncate = Enum.TextTruncate.AtEnd;
                        AutomaticSize = Enum.AutomaticSize.Y;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "sub_text" ];
                        PaddingTop = dim(0, 1);
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    items[ "indicator" ] = library:create( "ImageLabel" , {
                        ImageColor3 = rgb(86, 86, 87);
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = items[ "dropdown" ];
                        AnchorPoint = vec2(1, 0.5);
                        Image = "rbxassetid://101025591575185";
                        BackgroundTransparency = 1;
                        Position = dim2(1, -5, 0.5, 0);
                        Name = "\0";
                        Size = dim2(0, 12, 0, 12);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                -- 

                -- Element Holder
                    items[ "dropdown_holder" ] = library:create( "Frame" , {
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = library[ "items" ];
                        Name = "\0";
                        Visible = true;
                        BackgroundTransparency = 1;
                        Size = dim2(0, 0, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(0, 0, 0);
                        ZIndex = 10;
                    });
                    
                    items[ "outline" ] = library:create( "Frame" , {
                        Parent = items[ "dropdown_holder" ];
                        Size = dim2(1, 0, 1, 0);
                        ClipsDescendants = true;
                        BorderColor3 = rgb(0, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(33, 33, 35);
                        ZIndex = 10;
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingBottom = dim(0, 6);
                        PaddingTop = dim(0, 3);
                        PaddingLeft = dim(0, 3);
                        Parent = items[ "outline" ]
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "outline" ];
                        Padding = dim(0, 5);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "outline" ];
                        CornerRadius = dim(0, 4)
                    });
                -- 
            end 

            function cfg.render_option(text)
                local button = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = text;
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Size = dim2(1, -12, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255);
                    ZIndex = 10;
                }); library:apply_theme(button, "accent", "TextColor3");
                
                library:create( "UIPadding" , {
                    Parent = button;
                    PaddingTop = dim(0, 1);
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                return button
            end
            
            function cfg.set_visible(bool)
                local a = bool and cfg.y_size or 0
                library:tween(items[ "dropdown_holder" ], {Size = dim_offset(items[ "dropdown" ].AbsoluteSize.X, a)})

                items[ "dropdown_holder" ].Position = dim2(0, items[ "dropdown" ].AbsolutePosition.X, 0, items[ "dropdown" ].AbsolutePosition.Y + 80)
                if not (self.sanity and library.current_open == self) then 
                    library:close_element(cfg)
                end
            end
            
            function cfg.set(value)
                local selected = {}
                local isTable = type(value) == "table"

                for _, option in cfg.option_instances do 
                    if option.Text == value or (isTable and find(value, option.Text)) then 
                        insert(selected, option.Text)
                        cfg.multi_items = selected
                        option.TextColor3 = themes.preset.accent
                    else
                        option.TextColor3 = rgb(255, 0, 0)
                    end
                end

                items[ "sub_text" ].Text = isTable and concat(selected, ", ") or selected[1] or ""
                flags[cfg.flag] = isTable and selected or selected[1]
                
                cfg.callback(flags[cfg.flag]) 
            end

            function cfg.changetext(text)
                items[ "name" ].Text = text
            end
            
            function cfg.refresh_options(list) 
                cfg.y_size = 0

                for _, option in cfg.option_instances do 
                    option:Destroy() 
                end
                
                cfg.option_instances = {} 

                for _, option in list do 
                    local button = cfg.render_option(option)
                    cfg.y_size += button.AbsoluteSize.Y + 6 -- super annoying manual sizing but oh well
                    insert(cfg.option_instances, button)
                    
                    button.MouseButton1Down:Connect(function()
                        if cfg.multi then 
                            local selected_index = find(cfg.multi_items, button.Text)
                            
                            if selected_index then 
                                remove(cfg.multi_items, selected_index)
                            else
                                insert(cfg.multi_items, button.Text)
                            end
                            
                            cfg.set(cfg.multi_items) 				
                        else 
                            cfg.set_visible(false)
                            cfg.open = false 
                            
                            cfg.set(button.Text)
                        end
                    end)
                end
            end

            items[ "dropdown" ].MouseButton1Click:Connect(function()
                cfg.open = not cfg.open 
                
                cfg.set_visible(cfg.open)
            end)

            if cfg.seperator then 
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end 

            flags[cfg.flag] = {} 
            config_flags[cfg.flag] = cfg.set
            
            cfg.refresh_options(cfg.options)
            cfg.set(cfg.default)
                
            return setmetatable(cfg, library)
        end

        function library:label(options)
            local cfg = {
                enabled = options.enabled or nil,
                name = options.name or "Toggle",
                wrapped = options.wrapped or false,
                seperator = options.seperator or options.Seperator or false;
                info = options.info or nil; 

                items = {};
            }

            local items = cfg.items; do 
                items[ "label" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    TextWrapped = cfg.wrapped,
                    Parent = items[ "label" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    RichText = true,
                    BackgroundColor3 = rgb(255, 255, 255)
                });

                if cfg.info then 
                    items[ "info" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(130, 130, 130);
                        BorderColor3 = rgb(0, 0, 0);
                        TextWrapped = true;
                        Text = cfg.info;
                        Parent = items[ "label" ];
                        Name = "\0";
                        Position = dim2(0, 5, 0, 17);
                        Size = dim2(1, -10, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                end 
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "label" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 1, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    FillDirection = Enum.FillDirection.Horizontal;
                    HorizontalAlignment = Enum.HorizontalAlignment.Right;
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 9);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });                
            end 

            if cfg.seperator then 
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end 

            function cfg.set(text)
                items[ "name" ].Text = text
            end

            return setmetatable(cfg, library)
        end 
        
        function library:colorpicker(options) 
            local cfg = {
                name = options.name or "Color", 
                flag = options.flag or library:next_flag(),

                color = options.color or color(1, 1, 1), -- Default to white color if not provided
                alpha = options.alpha and 1 - options.alpha or 0,
                
                open = false, 
                callback = options.callback or function() end,
                items = {};

                seperator = options.seperator or options.Seperator or false;
            }

            local dragging_sat = false 
            local dragging_hue = false 
            local dragging_alpha = false 

            local h, s, v = cfg.color:ToHSV() 
            local a = cfg.alpha 

            flags[cfg.flag] = {Color = cfg.color, Transparency = cfg.alpha}

            local label; 
            if not self.items.right_components then 
                label = self:label({name = cfg.name, seperator = cfg.seperator})
            end

            local items = cfg.items; do 
                -- Component
                    items[ "colorpicker" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Parent = label and label.items.right_components or self.items[ "right_components" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        Size = dim2(0, 16, 0, 16);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(54, 31, 184)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "colorpicker" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "colorpicker_inline" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker" ];
                        Size = dim2(1, -2, 1, -2);
                        Name = "\0";
                        BorderMode = Enum.BorderMode.Inset;
                        BorderColor3 = rgb(0, 0, 0);
                        Position = dim2(0, 1, 0, 1);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(54, 31, 184)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "colorpicker_inline" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))};
                        Parent = items[ "colorpicker_inline" ]
                    });         
                --
                
                -- Colorpicker
                    items[ "colorpicker_holder" ] = library:create( "Frame" , {
                        Parent = library[ "other" ];
                        Name = "\0";
                        Position = dim2(0.20000000298023224, 20, 0.296999990940094, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 166, 0, 197);
                        BorderSizePixel = 0;
                        Visible = true;
                        BackgroundColor3 = rgb(25, 25, 29)
                    });

                    items[ "colorpicker_fade" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker_holder" ];
                        Name = "\0";
                        BackgroundTransparency = 0;
                        Position = dim2(0, 0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        ZIndex = 100;
                        BackgroundColor3 = rgb(25, 25, 29)
                    });
                    
                    items[ "colorpicker_components" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker_holder" ];
                        Name = "\0";
                        Position = dim2(0, 1, 0, 1);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -2, 1, -2);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(22, 22, 24)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "colorpicker_components" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    items[ "saturation_holder" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        Position = dim2(0, 7, 0, 7);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -14, 1, -80);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 39, 39)
                    });
                    
                    items[ "sat" ] = library:create( "TextButton" , {
                        Parent = items[ "saturation_holder" ];
                        Name = "\0";
                        Size = dim2(1, 0, 1, 0);
                        Text = "";
                        AutoButtonColor = false;
                        BorderColor3 = rgb(0, 0, 0);
                        ZIndex = 2;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "sat" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    library:create( "UIGradient" , {
                        Rotation = 270;
                        Transparency = numseq{numkey(0, 0), numkey(1, 1)};
                        Parent = items[ "sat" ];
                        Color = rgbseq{rgbkey(0, rgb(0, 0, 0)), rgbkey(1, rgb(0, 0, 0))}
                    });
                    
                    items[ "val" ] = library:create( "Frame" , {
                        Name = "\0";
                        Parent = items[ "saturation_holder" ];
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIGradient" , {
                        Parent = items[ "val" ];
                        Transparency = numseq{numkey(0, 0), numkey(1, 1)}
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "val" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "saturation_holder" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "satvalpicker" ] = library:create( "TextButton" , {
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(0, 1);
                        Parent = items[ "saturation_holder" ];
                        Name = "\0";
                        Position = dim2(0, 0, 4, 0);
                        Size = dim2(0, 8, 0, 8);
                        ZIndex = 5;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "satvalpicker" ];
                        CornerRadius = dim(0, 9999)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(255, 255, 255);
                        Parent = items[ "satvalpicker" ];
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border;
                    });
                    
                    items[ "hue_gradient" ] = library:create( "TextButton" , {
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        Position = dim2(0, 10, 1, -64);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -20, 0, 8);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255);
                        AutoButtonColor = false;
                        Text = "";
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(255, 0, 0)), rgbkey(0.17, rgb(255, 255, 0)), rgbkey(0.33, rgb(0, 255, 0)), rgbkey(0.5, rgb(0, 255, 255)), rgbkey(0.67, rgb(0, 0, 255)), rgbkey(0.83, rgb(255, 0, 255)), rgbkey(1, rgb(255, 0, 0))};
                        Parent = items[ "hue_gradient" ]
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "hue_gradient" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    items[ "hue_picker" ] = library:create( "TextButton" , {
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(0, 0.5);
                        Parent = items[ "hue_gradient" ];
                        Name = "\0";
                        Position = dim2(0, 0, 0.5, 0);
                        Size = dim2(0, 8, 0, 8);
                        ZIndex = 5;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "hue_picker" ];
                        CornerRadius = dim(0, 9999)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(255, 255, 255);
                        Parent = items[ "hue_picker" ];
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border;
                    });
                    
                    items[ "alpha_gradient" ] = library:create( "TextButton" , {
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        Position = dim2(0, 10, 1, -46);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -20, 0, 8);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(25, 25, 29);
                        AutoButtonColor = false;
                        Text = "";
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "alpha_gradient" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    items[ "alpha_picker" ] = library:create( "TextButton" , {
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(0, 0.5);
                        Parent = items[ "alpha_gradient" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0.5, 0);
                        Size = dim2(0, 8, 0, 8);
                        ZIndex = 5;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "alpha_picker" ];
                        CornerRadius = dim(0, 9999)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(255, 255, 255);
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border;
                        Parent = items[ "alpha_picker" ]
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(0, 0, 0)), rgbkey(1, rgb(255, 255, 255))};
                        Parent = items[ "alpha_gradient" ]
                    });
                    
                    items[ "alpha_indicator" ] = library:create( "ImageLabel" , {
                        ScaleType = Enum.ScaleType.Tile;
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = items[ "alpha_gradient" ];
                        Image = "rbxassetid://18274452449";
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Size = dim2(1, 0, 1, 0);
                        TileSize = dim2(0, 6, 0, 6);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(0, 0, 0)
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(112, 112, 112)), rgbkey(1, rgb(255, 0, 0))};
                        Transparency = numseq{numkey(0, 0.8062499761581421), numkey(1, 0)};
                        Parent = items[ "alpha_indicator" ]
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "alpha_indicator" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    library:create( "UIGradient" , {
                        Rotation = 90;
                        Parent = items[ "colorpicker_components" ];
                        Color = rgbseq{rgbkey(0, rgb(255, 255, 255)), rgbkey(1, rgb(66, 66, 66))}
                    });

                    items[ "input" ] = library:create( "TextBox" , {
                        FontFace = fonts.font;
                        AnchorPoint = vec2(1, 1);
                        Text = "";
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        TextTruncate = Enum.TextTruncate.AtEnd;
                        BorderSizePixel = 0;
                        PlaceholderColor3 = rgb(255, 255, 255);
                        CursorPosition = -1;
                        ClearTextOnFocus = false;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255);
                        TextColor3 = rgb(72, 72, 72);
                        BorderColor3 = rgb(0, 0, 0);
                        Position = dim2(1, -8, 1, -11);
                        Size = dim2(1, -16, 0, 18);
                        BackgroundColor3 = rgb(33, 33, 35)
                    }); 
                    
                    library:create( "UICorner" , {
                        Parent = items[ "input" ];
                        CornerRadius = dim(0, 3)
                    });
                    
                    items[ "UICorenr" ] = library:create( "UICorner" , { -- fire misstypo (im not fixing this RAWR)
                        Parent = items[ "colorpicker_holder" ];
                        Name = "\0";
                        CornerRadius = dim(0, 4)
                    });
                --                  
            end;

            function cfg.set_visible(bool)
                items[ "colorpicker_fade" ].BackgroundTransparency = 0
                items[ "colorpicker_holder" ].Parent = bool and library[ "items" ] or library[ "other" ]
                items[ "colorpicker_holder" ].Position = dim_offset(items[ "colorpicker" ].AbsolutePosition.X, items[ "colorpicker" ].AbsolutePosition.Y + items[ "colorpicker" ].AbsoluteSize.Y + 45)

                library:tween(items[ "colorpicker_fade" ], {BackgroundTransparency = 1}, Enum.EasingStyle.Quad, 0.4)
                library:tween(items[ "colorpicker_holder" ], {Position = items[ "colorpicker_holder" ].Position + dim_offset(0, 20)}) -- p100 check
                
                if not (self.sanity and library.current_open == self and self.open) then 
                    library:close_element(cfg)
                end
            end

            function cfg.set(color, alpha)
                if type(color) == "boolean" then 
                    return
                end 

                if color then 
                    h, s, v = color:ToHSV()
                end
                
                if alpha then 
                    a = alpha
                end 
                
                local Color = hsv(h, s, v)

                -- Ok so quick story, should I cache any of this? no...?? anyways I know this code is very bad but its your fault for buying a ui with animations (on a serious note im too lazy to make this look nice)
                -- Also further note, yeah I kind of did this scale_factor * size-valuesize.plane because then I would have to do tomfoolery to make it clip properly.
                library:tween(items[ "hue_picker" ], {Position = dim2(0, (items[ "hue_gradient" ].AbsoluteSize.X - items[ "hue_picker" ].AbsoluteSize.X) * h, 0.5, 0)}, Enum.EasingStyle.Linear, 0.05)
                library:tween(items[ "alpha_picker" ], {Position = dim2(0, (items[ "alpha_gradient" ].AbsoluteSize.X - items[ "alpha_picker" ].AbsoluteSize.X) * (1 - a), 0.5, 0)}, Enum.EasingStyle.Linear, 0.05)
                library:tween(items[ "satvalpicker" ], {Position = dim2(0, s * (items[ "saturation_holder" ].AbsoluteSize.X - items[ "satvalpicker" ].AbsoluteSize.X), 1, 1 - v * (items[ "saturation_holder" ].AbsoluteSize.Y - items[ "satvalpicker" ].AbsoluteSize.Y))}, Enum.EasingStyle.Linear, 0.05)

                items[ "alpha_indicator" ]:FindFirstChildOfClass("UIGradient").Color = rgbseq{rgbkey(0, rgb(112, 112, 112)), rgbkey(1, hsv(h, 1, 1))}; -- shit code
                
                items[ "colorpicker" ].BackgroundColor3 = Color
                items[ "colorpicker_inline" ].BackgroundColor3 = Color
                items[ "saturation_holder" ].BackgroundColor3 = hsv(h, 1, 1)

                items[ "hue_picker" ].BackgroundColor3 = hsv(h, 1, 1)
                items[ "alpha_picker" ].BackgroundColor3 = hsv(h, 1, 1 - a)
                items[ "satvalpicker" ].BackgroundColor3 = hsv(h, s, v)

                flags[cfg.flag] = {
                    Color = Color;
                    Transparency = a 
                }
                
                local color = items[ "colorpicker" ].BackgroundColor3
                items[ "input" ].Text = string.format("%s, %s, %s, ", library:round(color.R * 255), library:round(color.G * 255), library:round(color.B * 255))
                items[ "input" ].Text ..= library:round(1 - a, 0.01)
                
                cfg.callback(Color, a)
            end
            
            function cfg.update_color() 
                local mouse = uis:GetMouseLocation() 
                local offset = vec2(mouse.X, mouse.Y - gui_offset) 

                if dragging_sat then	
                    s = math.clamp((offset - items["sat"].AbsolutePosition).X / items["sat"].AbsoluteSize.X, 0, 1)
                    v = 1 - math.clamp((offset - items["sat"].AbsolutePosition).Y / items["sat"].AbsoluteSize.Y, 0, 1)
                elseif dragging_hue then
                    h = math.clamp((offset - items[ "hue_gradient" ].AbsolutePosition).X / items[ "hue_gradient" ].AbsoluteSize.X, 0, 1)
                elseif dragging_alpha then
                    a = 1 - math.clamp((offset - items[ "alpha_gradient" ].AbsolutePosition).X / items[ "alpha_gradient" ].AbsoluteSize.X, 0, 1)
                end

                cfg.set()
            end

            items[ "colorpicker" ].MouseButton1Click:Connect(function()
                cfg.open = not cfg.open 

                cfg.set_visible(cfg.open)            
            end)

            uis.InputChanged:Connect(function(input)
                if (dragging_sat or dragging_hue or dragging_alpha) and input.UserInputType == Enum.UserInputType.MouseMovement then
                    cfg.update_color() 
                end
            end)

            library:connection(uis.InputEnded, function(input)
                if input.UserInputType == Enum.UserInputType.MouseButton1 then
                    dragging_sat = false
                    dragging_hue = false
                    dragging_alpha = false
                end
            end)    

            items[ "alpha_gradient" ].MouseButton1Down:Connect(function()
                dragging_alpha = true 
            end)
            
            items[ "hue_gradient" ].MouseButton1Down:Connect(function()
                dragging_hue = true 
            end)
            
            items[ "sat" ].MouseButton1Down:Connect(function()
                dragging_sat = true  
            end)

            items[ "input" ].FocusLost:Connect(function()
                local text = items[ "input" ].Text
                local r, g, b, a = library:convert(text)
                
                if r and g and b and a then 
                    cfg.set(rgb(r, g, b), 1 - a)
                end 
            end)

            items[ "input" ].Focused:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(255, 0, 0)})
            end)

            items[ "input" ].FocusLost:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(72, 72, 72)})
            end)
            
            cfg.set(cfg.color, cfg.alpha)
            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end 

        function library:textbox(options) 
            local cfg = {
                name = options.name or "TextBox",
                placeholder = options.placeholder or options.placeholdertext or options.holder or options.holdertext or "type here...",
                default = options.default or "",
                flag = options.flag or library:next_flag(),
                callback = options.callback or function() end,
                visible = options.visible or true,
                items = {};
            }

            flags[cfg.flag] = cfg.default

            local items = cfg.items; do 
                items[ "textbox" ] = library:create( "TextButton" , {
                    LayoutOrder = -1;
                    FontFace = fonts.font;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "textbox" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "textbox" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 4, 0, 19);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 12);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 7);
                    SortOrder = Enum.SortOrder.LayoutOrder;
                    FillDirection = Enum.FillDirection.Horizontal
                });
                
                items[ "input" ] = library:create( "TextBox" , {
                    FontFace = fonts.font;
                    Text = "";
                    Parent = items[ "right_components" ];
                    Name = "\0";
                    TextTruncate = Enum.TextTruncate.AtEnd;
                    BorderSizePixel = 0;
                    PlaceholderColor3 = rgb(255, 255, 255);
                    CursorPosition = -1;
                    ClearTextOnFocus = false;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255);
                    TextColor3 = rgb(72, 72, 72);
                    BorderColor3 = rgb(0, 0, 0);
                    Position = dim2(1, 0, 0, 0);
                    Size = dim2(1, -4, 0, 30);
                    BackgroundColor3 = rgb(33, 33, 35)
                }); 

                library:create( "UICorner" , {
                    Parent = items[ "input" ];
                    CornerRadius = dim(0, 3)
                });                
                
                library:create( "UIPadding" , {
                    Parent = items[ "right_components" ];
                    PaddingTop = dim(0, 4);
                    PaddingRight = dim(0, 4)
                });
            end 
            
            function cfg.set(text) 
                flags[cfg.flag] = text

                items[ "input" ].Text = text

                cfg.callback(text)
            end 
            
            items[ "input" ]:GetPropertyChangedSignal("Text"):Connect(function()
                cfg.set(items[ "input" ].Text) 
            end)

            items[ "input" ].Focused:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(255, 0, 0)})
            end)

            items[ "input" ].FocusLost:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(72, 72, 72)})
            end)
                
            if cfg.default then 
                cfg.set(cfg.default) 
            end

            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end

        function library:keybind(options) 
            local cfg = {
                flag = options.flag or library:next_flag(),
                callback = options.callback or function() end,
                name = options.name or nil, 
                ignore_key = options.ignore or false, 
                seperator = options.seperator or false,

                key = options.key or nil, 
                mode = options.mode or "Toggle",
                active = options.default or false, 

                open = false,
                binding = nil, 

                hold_instances = {},
                items = {};
            }

            flags[cfg.flag] = {
                mode = cfg.mode,
                key = cfg.key, 
                active = cfg.active
            }

            local items = cfg.items; do 
                -- Component
                    items[ "keybind_element" ] = library:create( "TextButton" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = self.items[ "elements" ];
                        Name = "\0";
                        BackgroundTransparency = 1;
                        Size = dim2(1, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.Y;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    items[ "name" ] = library:create( "TextLabel" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = cfg.name;
                        Parent = items[ "keybind_element" ];
                        Name = "\0";
                        Size = dim2(1, 0, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "name" ];
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    items[ "right_components" ] = library:create( "Frame" , {
                        Parent = items[ "keybind_element" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        FillDirection = Enum.FillDirection.Horizontal;
                        HorizontalAlignment = Enum.HorizontalAlignment.Right;
                        Parent = items[ "right_components" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    items[ "keybind_holder" ] = library:create( "TextButton" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = items[ "right_components" ];
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Size = dim2(0, 0, 0, 16);
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.X;
                        TextSize = 14;
                        BackgroundColor3 = rgb(33, 33, 35)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "keybind_holder" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "key" ] = library:create( "TextLabel" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(86, 86, 87);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "LSHIFT";
                        Parent = items[ "keybind_holder" ];
                        Name = "\0";
                        Size = dim2(1, -12, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "key" ];
                        PaddingTop = dim(0, 1);
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });                                  
                -- 
                
                -- Mode Holder
                    items[ "dropdown" ] = library:create( "Frame" , {
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = library.items;
                        Name = "\0";
                        BackgroundTransparency = 1;
                        Position = dim2(0, 0, 0, 0);
                        Size = dim2(0, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.X;
                        BackgroundColor3 = rgb(0, 0, 0)
                    });
                    
                    items[ "inline" ] = library:create( "Frame" , {
                        Parent = items[ "dropdown" ];
                        Size = dim2(1, 0, 1, 0);
                        Name = "\0";
                        ClipsDescendants = true;
                        BorderColor3 = rgb(0, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(22, 22, 24)
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingBottom = dim(0, 6);
                        PaddingTop = dim(0, 3);
                        PaddingLeft = dim(0, 3);
                        Parent = items[ "inline" ]
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "inline" ];
                        Padding = dim(0, 5);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "inline" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    local options = {"Hold", "Toggle", "Always"}
                    
                    cfg.y_size = 20
                    for _, option in options do                        
                        local name = library:create( "TextButton" , {
                            FontFace = fonts.font;
                            TextColor3 = rgb(255, 0, 0);
                            BorderColor3 = rgb(0, 0, 0);
                            Text = option;
                            Parent = items[ "inline" ];
                            Name = "\0";
                            Size = dim2(0, 0, 0, 0);
                            BackgroundTransparency = 1;
                            TextXAlignment = Enum.TextXAlignment.Left;
                            BorderSizePixel = 0;
                            AutomaticSize = Enum.AutomaticSize.XY;
                            TextSize = 14;
                            BackgroundColor3 = rgb(255, 255, 255)
                        }); cfg.hold_instances[option] = name
                        library:apply_theme(name, "accent", "TextColor3")
                        
                        cfg.y_size += name.AbsoluteSize.Y

                        library:create( "UIPadding" , {
                            Parent = name;
                            PaddingTop = dim(0, 1);
                            PaddingRight = dim(0, 5);
                            PaddingLeft = dim(0, 5)
                        });

                        name.MouseButton1Click:Connect(function()
                            cfg.set(option)

                            cfg.set_visible(false)

                            cfg.open = false
                        end)
                    end
                -- 
            end 

            if cfg.seperator then -- ok bro my lua either sucks or this was a pain in the ass to make (simple if statement aswell 💔)
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end
            
            function cfg.modify_mode_color(path) -- ts so frikin tuff 💀
                for _, v in cfg.hold_instances do 
                    v.TextColor3 = rgb(72, 72, 72)
                end 

                cfg.hold_instances[path].TextColor3 = themes.preset.accent
            end

            function cfg.set_mode(mode) 
                cfg.mode = mode 

                if mode == "Always" then
                    cfg.set(true)
                elseif mode == "Hold" then
                    cfg.set(false)
                end

                flags[cfg.flag]["mode"] = mode
                cfg.modify_mode_color(mode)
            end 

            function cfg.set(input)
                if type(input) == "boolean" then 
                    cfg.active = input

                    if cfg.mode == "Always" then 
                        cfg.active = true
                    end
                elseif tostring(input):find("Enum") then 
                    input = input.Name == "Escape" and "NONE" or input
                    
                    cfg.key = input or "NONE"	
                elseif find({"Toggle", "Hold", "Always"}, input) then 
                    if input == "Always" then 
                        cfg.active = true 
                    end 

                    cfg.mode = input
                    cfg.set_mode(cfg.mode) 
                elseif type(input) == "table" then 
                    input.key = type(input.key) == "string" and input.key ~= "NONE" and library:convert_enum(input.key) or input.key
                    input.key = input.key == Enum.KeyCode.Escape and "NONE" or input.key

                    cfg.key = input.key or "NONE"
                    cfg.mode = input.mode or "Toggle"

                    if input.active then
                        cfg.active = input.active
                    end

                    cfg.set_mode(cfg.mode) 
                end 

                cfg.callback(cfg.active)

                local text = tostring(cfg.key) ~= "Enums" and (keys[cfg.key] or tostring(cfg.key):gsub("Enum.", "")) or nil
                local __text = text and (tostring(text):gsub("KeyCode.", ""):gsub("UserInputType.", ""))
                
                items[ "key" ].Text = __text

                flags[cfg.flag] = {
                    mode = cfg.mode,
                    key = cfg.key, 
                    active = cfg.active
                }
            end

            function cfg.set_visible(bool)
                local size = bool and cfg.y_size or 0
                library:tween(items[ "dropdown" ], {Size = dim_offset(items[ "keybind_holder" ].AbsoluteSize.X, size)})

                items[ "dropdown" ].Position = dim_offset(items[ "keybind_holder" ].AbsolutePosition.X, items[ "keybind_holder" ].AbsolutePosition.Y + items[ "keybind_holder" ].AbsoluteSize.Y + 60)
            end
        
            items[ "keybind_holder" ].MouseButton1Down:Connect(function()
                task.wait()
                items[ "key" ].Text = "..."	

                cfg.binding = library:connection(uis.InputBegan, function(keycode, game_event)  
                    cfg.set(keycode.KeyCode ~= Enum.KeyCode.Unknown and keycode.KeyCode or keycode.UserInputType)
                    
                    cfg.binding:Disconnect() 
                    cfg.binding = nil
                end)
            end)

            items[ "keybind_holder" ].MouseButton2Down:Connect(function()
                cfg.open = not cfg.open 

                cfg.set_visible(cfg.open)
            end)

            library:connection(uis.InputBegan, function(input, game_event) 
                if not game_event then
                    local selected_key = input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode or input.UserInputType

                    if selected_key == cfg.key then 
                        if cfg.mode == "Toggle" then 
                            cfg.active = not cfg.active
                            cfg.set(cfg.active)
                        elseif cfg.mode == "Hold" then 
                            cfg.set(true)
                        end
                    end
                end
            end)    

            library:connection(uis.InputEnded, function(input, game_event) 
                if game_event then 
                    return 
                end 

                local selected_key = input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode or input.UserInputType
    
                if selected_key == cfg.key then
                    if cfg.mode == "Hold" then 
                        cfg.set(false)
                    end
                end
            end)
            
            cfg.set({mode = cfg.mode, active = cfg.active, key = cfg.key})           
            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end

        function library:button(options) 
            local cfg = {
                name = options.name or "TextBox",
                callback = options.callback or function() end,
                items = {};
            }
            
            local items = cfg.items; do 
                items[ "button_element" ] = library:create( "Frame" , {
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "button" ] = library:create( "TextButton" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    AutoButtonColor = false;
                    AnchorPoint = vec2(1, 0);
                    Parent = items[ "button_element" ];
                    Name = "\0";
                    Position = dim2(1, -4, 0, 0);
                    Size = dim2(1, -8, 0, 30);
                    BorderSizePixel = 0;
                    TextSize = 14;
                    BackgroundColor3 = rgb(33, 33, 35)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "button" ];
                    CornerRadius = dim(0, 3)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "button" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 1, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "name" ], "accent", "BackgroundColor3");                            
            end 

            items[ "button" ].MouseButton1Click:Connect(function()
                cfg.callback()

                items[ "name" ].TextColor3 = themes.preset.accent 
                library:tween(items[ "name" ], {TextColor3 = rgb(255, 0, 0)})
            end)
            
            return setmetatable(cfg, library)
        end 

        function library:settings(options)  
            local cfg = {
                open = false; 
                items = {}; 
                sanity = true; -- made this for my own sanity.
            }

            local items = cfg.items; do 
                items[ "outline" ] = library:create( "Frame" , {
                    Name = "\0";
                    Visible = true;
                    Parent = library[ "items" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 0, 0);
                    ClipsDescendants = true;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(25, 25, 29)
                });
                
                items[ "inline" ] = library:create( "Frame" , {
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Position = dim2(0, 1, 0, 1);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -2, 1, -2);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(22, 22, 24)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "inline" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "elements" ] = library:create( "Frame" , {
                    BorderColor3 = rgb(0, 0, 0);
                    Parent = items[ "inline" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 10, 0, 10);
                    Size = dim2(1, -20, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "elements" ];
                    Padding = dim(0, 10);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    PaddingBottom = dim(0, 15);
                    Parent = items[ "elements" ]
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "outline" ];
                    CornerRadius = dim(0, 7)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "fade" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "tick" ] = library:create( "ImageButton" , {
                    Image = "rbxassetid://128797200442698";
                    Name = "\0";
                    AutoButtonColor = false;
                    Parent = self.items[ "right_components" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 16, 0, 16);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });                
            end 

            function cfg.set_visible(bool)                 
                library:tween(items[ "outline" ], {Size = dim_offset(bool and 240 or 0, 0)})
                items[ "outline" ].Position = dim_offset(items[ "tick" ].AbsolutePosition.X, items[ "tick" ].AbsolutePosition.Y + 90)
                library:close_element(cfg)
            end
            
            items[ "tick" ].MouseButton1Click:Connect(function()
                cfg.open = not cfg.open

                cfg.set_visible(cfg.open)
            end)

            return setmetatable(cfg, library)
        end 

        function library:list(properties) 
            local cfg = {
                items = {};
                options = properties.options or {"1", "2", "3"};
                flag = properties.flag or library:next_flag();    
                callback = properties.callback or function() end;
                data_store = {};        
                current_element;
            }

            local items = cfg.items; do
                items[ "list" ] = library:create( "Frame" , {
                    Parent = self.items[ "elements" ];
                    BackgroundTransparency = 1;
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "list" ];
                    Padding = dim(0, 10);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "list" ];
                    PaddingRight = dim(0, 4);
                    PaddingLeft = dim(0, 4)
                });
            end 

            function cfg.refresh_options(options_to_refresh)
                local old_selected_value = flags[cfg.flag] -- store current selected option string
                cfg.current_element = nil -- reset current UI element
                for _, option in cfg.data_store do 
                    option:Destroy()
                end
                cfg.data_store = {}

                for _, option_data in options_to_refresh do
                    local button = library:create("TextButton", {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Parent = items["list"];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        Size = dim2(1, 0, 0, 30);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(33, 33, 35)
                    }); cfg.data_store[#cfg.data_store + 1] = button;

                    local name = library:create("TextLabel", {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = option_data;
                        Parent = button;
                        Name = "\0";
                        BackgroundTransparency = 1;
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });

                    library:create("UICorner", {
                        Parent = button;
                        CornerRadius = dim(0, 3)
                    });

                    -- Apply selection highlight if this is the old selected option
                    if option_data == old_selected_value then
                        library:tween(name, {TextColor3 = rgb(255, 0, 0)})
                        cfg.current_element = name
                    end

                    button.MouseButton1Click:Connect(function()
                        local current = cfg.current_element 
                        if current and current ~= name then 
                            library:tween(current, {TextColor3 = rgb(72, 72, 72)})
                        end

                        flags[cfg.flag] = option_data
                        cfg.callback(option_data)
                        library:tween(name, {TextColor3 = rgb(255, 0, 0)})
                        cfg.current_element = name
                    end)

                    name.MouseEnter:Connect(function()
                        if cfg.current_element == name then return end
                        library:tween(name, {TextColor3 = rgb(140, 140, 140)})
                    end)

                    name.MouseLeave:Connect(function()
                        if cfg.current_element == name then return end
                        library:tween(name, {TextColor3 = rgb(72, 72, 72)})
                    end)
                end
            end


            cfg.refresh_options(cfg.options)

            return setmetatable(cfg, library)
        end 

        function library:init_config(window) 
            window:seperator({name = "Settings"})
            local main, playerlist = window:tab({name = "Configs", tabs = {"Main", "Playerlist"}})
            
            local column = main:column({})
            local section = column:section({name = "Configs", size = 1, default = false, icon = "rbxassetid://139628202576511"})
            config_holder = section:list({options = {"Report", "This", "Error", "To", "Finobe"}, callback = function(option) end, flag = "config_name_list"}); library:update_config_list()
            
            local column = main:column({})
            local section = column:section({name = "Settings", side = "right", size = 1, default = false, icon = GetImage("Settings.png")})
            section:textbox({name = "Config name:", flag = "config_name_text"})
            section:button({
                name = "Save",
                callback = function()
                    pcall(function()
                        local config_name = (flags["config_name_text"])
                        writefile(library.directory .. "/configs/" .. config_name .. ".cfg", library:get_config())
                        library:update_config_list()
                        notifications:create_notification({
                            name = "Configs",
                            info = "Saved config to:\n" .. config_name
                        })
                    end)
                end
            })

            section:button({
                name = "Overwrite",
                callback = function()
                    pcall(function()
                        local config_name = (flags["config_name_list"])
                        writefile(library.directory .. "/configs/" .. config_name .. ".cfg", library:get_config())
                        library:update_config_list()
                        notifications:create_notification({
                            name = "Configs",
                            info = "Overwrote config :\n" .. config_name
                        })
                    end)
                end
            })

            section:button({
                name = "Load",
                callback = function()
                    pcall(function()
                        local config_name = flags["config_name_list"]
                        library:load_config(readfile(library.directory .. "/configs/" .. config_name .. ".cfg"))
                        library:update_config_list()
                        notifications:create_notification({
                            name = "Configs",
                            info = "Loaded config:\n" .. config_name
                        })
                    end)
                end
            })

            section:button({
                name = "Delete",
                callback = function()
                pcall(function()
                        local config_name = flags["config_name_list"]
                        delfile(library.directory .. "/configs/" .. config_name .. ".cfg")
                        library:update_config_list()
                        notifications:create_notification({
                            name = "Configs",
                            info = "Deleted config:\n" .. config_name
                        })
                    end)
                end
            })

            section:colorpicker({name = "Menu Accent", callback = function(color, alpha) library:update_theme("accent", color) end, color = themes.preset.accent})
            section:keybind({name = "Menu Bind", key = Enum.KeyCode.Insert, callback = function(bool) window.toggle_menu(bool) end, seperator = true, default = true})

            local _request = (http_request and http_request) or (request and request) or (http and http.request)

            section:button({name = "Join Lowest Server", callback = function()
                local Servers = string.format("https://[Log in to view URL]", tostring(game.PlaceId))
        
                local ListServers = function(cursor)
                    local Raw = game:HttpGet(Servers .. ((cursor and "&cursor="..cursor) or ""))
                    return Services.HttpService:JSONDecode(Raw)
                end
        
                local Server, Next; repeat
                    local Servers = ListServers(Next)
                    Server = Servers.data[1]
                    Next = Servers.nextPageCursor
                until Server
        
                if Server.id == game.JobId then
                    library.notifications:create_notification({
                        name = "Scorpio.Hub",
                        info = `You are currently in the smallest server!`,
                        lifetime = 10
                    })
                    return  
                end 
                
                Services.TeleportService:TeleportToPlaceInstance(game.PlaceId, Server.id)
            end})

            section:button({name = "Server Hop", callback = function()
                local Servers = {}
                local Request = _request({Url = string.format("https://[Log in to view URL]", tostring(game.PlaceId))})
                local Body = Services.HttpService:JSONDecode(Request.Body)
        
                if Body and Body.data then
                    for _, Value in next, Body.data do
                        if type(Value) == "table" and tonumber(Value.playing) and tonumber(Value.maxPlayers) and Value.playing < Value.maxPlayers and Value.id ~= game.JobId then
                            table.insert(Servers, 1, Value.id)
                        end
                    end
                end
        
                Services.TeleportService:TeleportToPlaceInstance(game.PlaceId, Servers[math.random(1, #Servers)])
            end})

            section:button({name = "Rejoin", callback = function()
                Services.TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId)
            end})
            
            local _column = playerlist:column({})
            local _section = _column:section({name = "Players", size = 1, default = false})

            local plr_list = _section:list({options = {}, flag = "player_list"});

            _column = playerlist:column({})

            _section = _column:section({name = "Player Options", size = 1, default = false, side = 'right'})

            local _playerlabel = _section:label({name = "Selected Player : None"})

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait(0.01) do
                    _playerlabel.set(string.format("Selected Player : %s", library.flags["player_list"] or "None"))
                end
            end))

            local _statuslabel = _section:label({name = "Status : None"})

            task.spawn(LPH_NO_VIRTUALIZE(function()
                while task.wait(0.01) do
                    local playervalue = library.flags["player_list"]
                    local status

                    if playervalue ~= nil then
                        if table.find(library.priority, playervalue) then
                            status = "<font color='rgb(255,0,0)'>Priority</font>"
                        elseif table.find(library.whitelist, playervalue) then
                            status = "<font color='rgb(0,255,0)'>Whitelisted</font>"
                        else
                            status = "None"
                        end
                    else
                        status = "None"
                    end

                    _statuslabel.set(string.format("Status : %s", status))
                end
            end))

            _section:button({name = "Prioritise", callback = function()
                if not library.flags["player_list"] then return end
                if table.find(library.whitelist, library.flags["player_list"]) then
                    table.remove(library.whitelist, table.find(library.whitelist, library.flags["player_list"]))
                end

                if table.find(library.priority, library.flags["player_list"]) then
                    table.remove(library.priority, table.find(library.priority, library.flags["player_list"]))

                    return
                end

                if not table.find(library.priority, library.flags["player_list"]) then
                    table.insert(library.priority, library.flags["player_list"])
                end
            end})

            _section:button({name = "Whitelist", callback = function()
                if not library.flags["player_list"] then return end
                if table.find(library.priority, library.flags["player_list"]) then
                    table.remove(library.priority, table.find(library.priority, library.flags["player_list"]))
                end

                if table.find(library.whitelist, library.flags["player_list"]) then
                    table.remove(library.whitelist, table.find(library.whitelist, library.flags["player_list"]))

                    return
                end

                if not table.find(library.whitelist, library.flags["player_list"]) then
                    table.insert(library.whitelist, library.flags["player_list"])
                end
            end})

            local refreshplrs = LPH_NO_VIRTUALIZE(function()
                local cache = {}

                for i,v in players:GetPlayers() do
                    if v==lp then continue end

                    table.insert(cache, v.Name)
                end

                table.sort(cache)

                plr_list.refresh_options(cache)
            end)

            task.spawn(refreshplrs)

            players.PlayerAdded:Connect(refreshplrs)

            players.PlayerRemoving:Connect(refreshplrs)
        end
    --

    -- Notification Library
        function notifications:refresh_notifs() 
            local offset = 50

            for i, v in notifications.notifs do
                local Position = vec2(20, offset)
                library:tween(v, {Position = dim_offset(Position.X, Position.Y)}, Enum.EasingStyle.Quad, 0.4)
                offset += (v.AbsoluteSize.Y + 10)
            end

            return offset
        end
        
        function notifications:fade(path, is_fading)
            local fading = is_fading and 1 or 0 
            
            library:tween(path, {BackgroundTransparency = fading}, Enum.EasingStyle.Quad, 1)

            for _, instance in path:GetDescendants() do 
                if not instance:IsA("GuiObject") then 
                    if instance:IsA("UIStroke") then
                        library:tween(instance, {Transparency = fading}, Enum.EasingStyle.Quad, 1)
                    end
        
                    continue
                end 
        
                if instance:IsA("TextLabel") then
                    library:tween(instance, {TextTransparency = fading})
                elseif instance:IsA("Frame") then
                    library:tween(instance, {BackgroundTransparency = instance.Transparency and 0.6 and is_fading and 1 or 0.6}, Enum.EasingStyle.Quad, 1)
                end
            end
        end 
        
        function notifications:create_notification(options)
            local cfg = {
                name = options.name or "This is a title!";
                info = options.info or "This is extra info!";
                lifetime = options.lifetime or 3;
                items = {};
                outline;
            }

            local items = cfg.items; do 
                items[ "notification" ] = library:create( "Frame" , {
                    Parent = library[ "items" ];
                    Size = dim2(0, 210, 0, 53);
                    Name = "\0";
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    BackgroundTransparency = 1;
                    AnchorPoint = vec2(1, 0);
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(14, 14, 16)
                });
                
                library:create( "UIStroke" , {
                    Color = rgb(23, 23, 29);
                    Parent = items[ "notification" ];
                    Transparency = 1;
                    ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                });
                
                items[ "title" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "notification" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 7, 0, 6);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "notification" ];
                    CornerRadius = dim(0, 3)
                });
                
                items[ "info" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(145, 145, 145);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.info;
                    Parent = items[ "notification" ];
                    Name = "\0";
                    Position = dim2(0, 9, 0, 22);
                    BorderSizePixel = 0;
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    TextWrapped = true;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    PaddingBottom = dim(0, 17);
                    PaddingRight = dim(0, 8);
                    Parent = items[ "info" ]
                });
                
                items[ "bar" ] = library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "notification" ];
                    Name = "\0";
                    Position = dim2(0, 8, 1, -6);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 0, 5);
                    BackgroundTransparency = 1;
                    BorderSizePixel = 0;
                    BackgroundColor3 = themes.preset.accent
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "bar" ];
                    CornerRadius = dim(0, 999)
                });
                
                library:create( "UIPadding" , {
                    PaddingRight = dim(0, 8);
                    Parent = items[ "notification" ]
                });
            end
            
            local index = #notifications.notifs + 1
            notifications.notifs[index] = items[ "notification" ]

            notifications:fade(items[ "notification" ], false)
            
            local offset = notifications:refresh_notifs()

            items[ "notification" ].Position = dim_offset(20, offset)

            library:tween(items[ "notification" ], {AnchorPoint = vec2(0, 0)}, Enum.EasingStyle.Quad, 1)
            library:tween(items[ "bar" ], {Size = dim2(1, -8, 0, 5)}, Enum.EasingStyle.Quad, cfg.lifetime)

            task.spawn(function()
                task.wait(cfg.lifetime)
                
                notifications.notifs[index] = nil
                
                notifications:fade(items[ "notification" ], true)
                
                library:tween(items[ "notification" ], {AnchorPoint = vec2(1, 0)}, Enum.EasingStyle.Quad, 1)

                task.wait(1)
        
                items[ "notification" ]:Destroy() 
            end)
        end
    --end)()
    else
            --LPH_JIT_MAX(function()

-- Variables
    local scale = 0.5
    local uis = Services.UserInputService
    local players = Services.Players
    local ws = Services.Workspace
    local rs = Services.ReplicatedStorage
    local http_service = Services.HttpService
    local gui_service = Services.GuiService
    local lighting = Services.Lighting
    local run = Services.RunService
    local stats = Services.Stats
    local coregui = Services.CoreGui
    local debris = Services.Debris
    local tween_service = Services.TweenService
    local sound_service = Services.SoundService
    local run_service = Services.RunService

    local vec2 = Vector2.new
    local vec3 = Vector3.new
    local dim2 = UDim2.new
    local dim = UDim.new 
    local rect = Rect.new
    local cfr = CFrame.new
    local empty_cfr = cfr()
    local point_object_space = empty_cfr.PointToObjectSpace
    local angle = CFrame.Angles
    local dim_offset = UDim2.fromOffset

    local color = Color3.new
    local rgb = Color3.fromRGB
    local hex = Color3.fromHex
    local hsv = Color3.fromHSV
    local rgbseq = ColorSequence.new
    local rgbkey = ColorSequenceKeypoint.new
    local numseq = NumberSequence.new
    local numkey = NumberSequenceKeypoint.new

    local camera = ws.CurrentCamera
    local lp = players.LocalPlayer 
    local mouse = lp:GetMouse() 
    local gui_offset = gui_service:GetGuiInset().Y

    local max = math.max 
    local floor = math.floor 
    local min = math.min 
    local abs = math.abs 
    local noise = math.noise
    local rad = math.rad 
    local random = math.random 
    local pow = math.pow 
    local sin = math.sin 
    local pi = math.pi 
    local tan = math.tan 
    local atan2 = math.atan2 
    local clamp = math.clamp 

    local insert = table.insert 
    local find = table.find 
    local remove = table.remove
    local concat = table.concat
-- 

-- Library ini

    local themes = {
        preset = {
            accent = rgb(255, 0, 0),
        }, 

        utility = {
            accent = {
                BackgroundColor3 = {}, 	
                TextColor3 = {}, 
                ImageColor3 = {}, 
                ScrollBarImageColor3 = {} 
            },
        }
    }

    local keys = {
        [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",
    }
        
    library.__index = library

    for _, path in next, library.folders do 
        makefolder(library.directory .. path)
    end

    local flags = library.flags 
    local config_flags = library.config_flags
    local notifications = library.notifications 

    local fonts = {}; do
        function Register_Font(Name, Weight, Style, Asset)
            if not isfile(Asset.Id) then
                writefile(Asset.Id, Asset.Font)
            end

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

            local Data = {
                name = Name,
                faces = {
                    {
                        name = "Normal",
                        weight = Weight,
                        style = Style,
                        assetId = getcustomasset(Asset.Id),
                    },
                },
            }

            writefile(Name .. ".font", http_service:JSONEncode(Data))

            return getcustomasset(Name .. ".font");
        end
        
        local Medium = Register_Font("Meawdawdawddium", 200, "Normal", {
            Id = "Mediumawdwad.ttf",
            Font = game:HttpGet("https://[Log in to view URL]"),
        })

        local SemiBold = Register_Font("SeawdawdawdawdmiBold", 200, "Normal", {
            Id = "SemiBoldawdawdwad.ttf",
            Font = game:HttpGet("https://[Log in to view URL]"),
        })

        fonts = {
            small = Font.new(Medium, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
            font = Font.new(SemiBold, Enum.FontWeight.Regular, Enum.FontStyle.Normal);
        }
    end
--

-- Library functions 
    -- Misc functions
        function library:tween(obj, properties, easing_style, time) 
            local tween = tween_service:Create(obj, TweenInfo.new(time or 0.25, easing_style or Enum.EasingStyle.Quint, Enum.EasingDirection.InOut, 0, false, 0), properties):Play()
                
            return tween
        end

        function library:resizify(frame) 
            local Frame = Instance.new("TextButton")
            Frame.Position = dim2(1, -10, 1, -10)
            Frame.BorderColor3 = rgb(0, 0, 0)
            Frame.Size = dim2(0, 10, 0, 10)
            Frame.BorderSizePixel = 0
            Frame.BackgroundColor3 = rgb(255, 255, 255)
            Frame.Parent = frame
            Frame.BackgroundTransparency = 1 
            Frame.Text = ""

            local resizing = false 
            local start_size 
            local start 
            local og_size = frame.Size  

            Frame.InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch then
                    resizing = true
                    start = input.Position
                    start_size = frame.Size
                end
            end)

            Frame.InputEnded:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch then
                    resizing = false
                end
            end)

            library:connection(uis.InputChanged, function(input, game_event) 
                if resizing and input.UserInputType == Enum.UserInputType.Touch then
                    local viewport_x = camera.ViewportSize.X
                    local viewport_y = camera.ViewportSize.Y

                    local current_size = dim2(
                        start_size.X.Scale,
                        math.clamp(
                            start_size.X.Offset + (input.Position.X - start.X),
                            og_size.X.Offset,
                            viewport_x
                        ),
                        start_size.Y.Scale,
                        math.clamp(
                            start_size.Y.Offset + (input.Position.Y - start.Y),
                            og_size.Y.Offset,
                            viewport_y
                        )
                    )

                    library:tween(frame, {Size = current_size}, Enum.EasingStyle.Linear, 0.05)
                end
            end)
        end 

        function fag(tbl)
            local Size = 0
            
            for _ in tbl do
                Size = Size + 1
            end
        
            return Size
        end
        
        function library:next_flag()
            local index = fag(library.flags) + 1;
            local str = string.format("flagnumber%s", index)
            
            return str;
        end 

        function library:mouse_in_frame(uiobject)
            local y_cond = uiobject.AbsolutePosition.Y <= mouse.Y and mouse.Y <= uiobject.AbsolutePosition.Y + uiobject.AbsoluteSize.Y
            local x_cond = uiobject.AbsolutePosition.X <= mouse.X and mouse.X <= uiobject.AbsolutePosition.X + uiobject.AbsoluteSize.X

            return (y_cond and x_cond)
        end

        function library:draggify(frame)
            local dragging = false 
            local start_size = frame.Position
            local start 

            frame.InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch then
                    dragging = true
                    start = input.Position
                    start_size = frame.Position
                end
            end)

            frame.InputEnded:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch then
                    dragging = false
                end
            end)

            library:connection(uis.InputChanged, function(input, game_event) 
                if dragging and input.UserInputType == Enum.UserInputType.Touch then
                    local viewport_x = camera.ViewportSize.X
                    local viewport_y = camera.ViewportSize.Y

                    local current_position = dim2(
                        0,
                        start_size.X.Offset + (input.Position.X - start.X),
                        0,
                        start_size.Y.Offset + (input.Position.Y - start.Y)
                    )

                    library:tween(frame, {Position = current_position}, Enum.EasingStyle.Linear, 0.05)
                    library:close_element()
                end
            end)
        end 

        function library:convert(str)
            local values = {}

            for value in string.gmatch(str, "[^,]+") do
                insert(values, tonumber(value))
            end
            
            if #values == 4 then              
                return unpack(values)
            else 
                return
            end
        end
        
        function library:convert_enum(enum)
            local enum_parts = {}
        
            for part in string.gmatch(enum, "[%w_]+") do
                insert(enum_parts, part)
            end
        
            local enum_table = Enum
            for i = 2, #enum_parts do
                local enum_item = enum_table[enum_parts[i]]
        
                enum_table = enum_item
            end
        
            return enum_table
        end

        local config_holder;
        function library:update_config_list() 
            if not config_holder then 
                return 
            end
            
            local list = {}
            
            for idx, file in listfiles(library.directory .. "/configs") do
                local name = file:gsub(library.directory .. "/configs\\", ""):gsub(".cfg", ""):gsub(library.directory .. "\\configs\\", "")
                list[#list + 1] = name
            end

            config_holder.refresh_options(list)
        end 

        function library:get_config()
            local Config = {}
            
            for _, v in next, flags do
                if type(v) == "table" and v.key then
                    Config[_] = {active = v.active, mode = v.mode, key = tostring(v.key)}
                elseif type(v) == "table" and v["Transparency"] and v["Color"] then
                    Config[_] = {Transparency = v["Transparency"], Color = v["Color"]:ToHex()}
                else
                    Config[_] = v
                end
            end 
            
            return http_service:JSONEncode(Config)
        end

        function library:load_config(config_json) 
            local config = http_service:JSONDecode(config_json)
            
            for _, v in config do 
                local function_set = library.config_flags[_]
                
                if _ == "config_name_list" then 
                    continue 
                end

                if function_set then 
                    if type(v) == "table" and v["Transparency"] and v["Color"] then
                        function_set(hex(v["Color"]), v["Transparency"])
                    elseif type(v) == "table" and v["active"] then 
                        function_set(v)
                    else
                        function_set(v)
                    end
                end 
            end 
        end 
        
        function library:round(number, float) 
            local multiplier = 1 / (float or 1)

            return floor(number * multiplier + 0.5) / multiplier
        end 

        function library:apply_theme(instance, theme, property) 
            insert(themes.utility[theme][property], instance)
        end

        function library:update_theme(theme, color)
            for _, property in themes.utility[theme] do 

                for m, object in property do 
                    if object[_] == themes.preset[theme] then 
                        object[_] = color 
                    end 
                end 
            end 

            themes.preset[theme] = color 
        end 

        function library:connection(signal, callback)
            local connection = signal:Connect(callback)
            
            insert(library.connections, connection)

            return connection 
        end

        function library:close_element(new_path) 
            local open_element = library.current_open

            if open_element and new_path ~= open_element then
                open_element.set_visible(false)
                open_element.open = false;
            end 

            if new_path ~= open_element then 
                library.current_open = new_path or nil;
            end
        end 

        function library:create(instance, options)
            local ins = Instance.new(instance) 
            
            for prop, value in options do 
                ins[prop] = value
            end
            
            return ins 
        end

        function library:unload_menu() 
            if library[ "items" ] then 
                library[ "items" ]:Destroy()
            end

            if library[ "other" ] then 
                library[ "other" ]:Destroy()
            end 
            
            for index, connection in library.connections do 
                connection:Disconnect() 
                connection = nil 
            end
            
            library = nil 
        end 
    --
    
    -- Library element functions
        function library:window(properties)
            local cfg = { 
                suffix = properties.suffix or properties.Suffix or "tech";
                name = properties.name or properties.Name or "nebula";
                game_name = properties.gameInfo or properties.game_info or properties.GameInfo or "Milenium for Counter-Strike: Global Offensive";
                size = properties.size or properties.Size or dim2(0, 700, 0, 565);
                selected_tab;
                items = {};

                tween;
            }
            
            library[ "items" ] = library:create( "ScreenGui" , {
                Parent = coregui;
                Name = "\0";
                Enabled = true;
                ZIndexBehavior = Enum.ZIndexBehavior.Global;
                IgnoreGuiInset = true;
            });

            library[ "other" ] = library:create( "ScreenGui" , {
                Parent = coregui;
                Name = "\0";
                Enabled = false;
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
                IgnoreGuiInset = true;
            }); 

            local items = cfg.items; do
                items[ "main" ] = library:create( "Frame" , {
                    Parent = library[ "items" ];
                    Size = cfg.size;
                    Name = "\0";
                    Position = dim2(0.5, -cfg.size.X.Offset / 2, 0.5, -cfg.size.Y.Offset / 2);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(14, 14, 16)
                }); items[ "main" ].Position = dim2(0, items[ "main" ].AbsolutePosition.X, 0, items[ "main" ].AbsolutePosition.Y)

                library:create( "UIScale" , {
                    Parent = items[ "main" ];
                    Scale = scale;
                });

                library:create( "UICorner" , {
                    Parent = items[ "main" ];
                    CornerRadius = dim(0, 10)
                });
                
                library:create( "UIStroke" , {
                    Color = rgb(23, 23, 29);
                    Parent = items[ "main" ];
                    ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                });
                
                items[ "side_frame" ] = library:create( "Frame" , {
                    Parent = items[ "main" ];
                    BackgroundTransparency = 1;
                    Name = "\0";
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 196, 1, -25);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(14, 14, 16)
                });
                
                library:create( "Frame" , {
                    AnchorPoint = vec2(1, 0);
                    Parent = items[ "side_frame" ];
                    Position = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 1, 1, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(21, 21, 23)
                });
                
                items[ "button_holder" ] = library:create( "Frame" , {
                    Parent = items[ "side_frame" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 0, 0, 60);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 1, -60);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); cfg.button_holder = items[ "button_holder" ];
                
                library:create( "UIListLayout" , {
                    Parent = items[ "button_holder" ];
                    Padding = dim(0, 5);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    PaddingTop = dim(0, 16);
                    PaddingBottom = dim(0, 36);
                    Parent = items[ "button_holder" ];
                    PaddingRight = dim(0, 11);
                    PaddingLeft = dim(0, 10)
                });

                local accent = themes.preset.accent
                items[ "title" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    BorderColor3 = rgb(0, 0, 0);
                    Text = name;
                    Parent = items[ "side_frame" ];
                    Name = "\0";
                    Text = string.format('<u>%s</u><font color = "rgb(255, 255, 255)">%s</font>', cfg.name, cfg.suffix);
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 70);
                    TextColor3 = themes.preset.accent;
                    BorderSizePixel = 0;
                    RichText = true;
                    TextSize = 30;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "title" ], "accent", "TextColor3");
                
                items[ "multi_holder" ] = library:create( "Frame" , {
                    Parent = items[ "main" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 196, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -196, 0, 56);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); cfg.multi_holder = items[ "multi_holder" ];
                
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "multi_holder" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(21, 21, 23)
                });
                
                items[ "shadow" ] = library:create( "ImageLabel" , {
                    ImageColor3 = rgb(0, 0, 0);
                    ScaleType = Enum.ScaleType.Slice;
                    Parent = items[ "main" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Name = "\0";
                    BackgroundColor3 = rgb(255, 255, 255);
                    Size = dim2(1, 75, 1, 75);
                    AnchorPoint = vec2(0.5, 0.5);
                    Image = "rbxassetid://112971167999062";
                    BackgroundTransparency = 1;
                    Position = dim2(0.5, 0, 0.5, 0);
                    SliceScale = 0.75;
                    ZIndex = -100;
                    BorderSizePixel = 0;
                    SliceCenter = rect(vec2(112, 112), vec2(147, 147))
                });
                
                items[ "global_fade" ] = library:create( "Frame" , {
                    Parent = items[ "main" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 196, 0, 56);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -196, 1, -81);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(14, 14, 16);
                    ZIndex = 2;
                });                

                library:create( "UICorner" , {
                    Parent = items[ "shadow" ];
                    CornerRadius = dim(0, 5)
                });
                
                items[ "info" ] = library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "main" ];
                    Name = "\0";
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 25);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(23, 23, 25)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "info" ];
                    CornerRadius = dim(0, 10)
                });
                
                items[ "grey_fill" ] = library:create( "Frame" , {
                    Name = "\0";
                    Parent = items[ "info" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 6);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(23, 23, 25)
                });
                
                items[ "game" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    Parent = items[ "info" ];
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.game_name;
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    AnchorPoint = vec2(0, 0.5);
                    Position = dim2(0, 10, 0.5, -1);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); 
                
                if not LRM_SecondsLeft then
                    LRM_SecondsLeft = math.huge
                end

                local time_left = tostring((LRM_SecondsLeft < math.huge and ""..tostring(math.floor(((LRM_SecondsLeft / 60) / 60) / 24)).." days" or LRM_SecondsLeft == math.huge and "lifetime"))

                items[ "other_info" ] = library:create( "TextLabel" , {
                    Parent = items[ "info" ];
                    RichText = true;
                    Name = "\0";
                    TextColor3 = themes.preset.accent;
                    BorderColor3 = rgb(0, 0, 0);
                    Text = '<font color="rgb(255, 0, 0)">'..time_left..', </font>' .. cfg.name:lower() .. cfg.suffix:lower();
                    Size = dim2(1, 0, 0, 0);
                    Position = dim2(0, -10, 0.5, -1);
                    AnchorPoint = vec2(0, 0.5);
                    BorderSizePixel = 0;
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Right;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    FontFace = fonts.font;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "other_info" ], "accent", "TextColor3");        
            end 

            do -- Other
                library:draggify(items[ "main" ])
                library:resizify(items[ "main" ])
            end 

            function cfg.toggle_menu(bool) 
                -- WIP 
                -- if cfg.tween then 
                --     cfg.tween:Cancel()
                -- end 

                -- items[ "main" ].Size = dim2(items[ "main" ].Size.Scale.X, items[ "main" ].Size.Offset.X - 20, items[ "main" ].Size.Scale.Y, items[ "main" ].Size.Offset.Y - 20)
                -- library:tween(items[ "tab_holder" ], {Size = dim2(1, -196, 1, -81)}, Enum.EasingStyle.Quad, 0.4)
                -- cfg.tween = 
                
                items[ "main" ].Visible = bool
            end 

            items[ "close button" ] = library:create( "TextButton" , {
                Parent = library[ "items" ];
                Name = "\0";
                Position = dim2(0, 20, 1, -20);
                AnchorPoint = vec2(0, 1);
                BorderColor3 = rgb(0, 0, 0);
                Size = dim2(0, 75, 0, 50);
                BorderSizePixel = 0;
                Text = "";
                AutoButtonColor = false;
                Visible = true;
                BackgroundColor3 = rgb(25, 25, 29)
            });
            
            items[ "other_info" ] = library:create( "TextLabel" , {
                Parent = items[ "close button" ];
                RichText = true;
                Name = "\0";
                TextColor3 = rgb(255, 0, 0);
                BorderColor3 = rgb(0, 0, 0);
                Text = "Open/Close";
                Size = dim2(1, 0, 1, 0);
                BorderSizePixel = 0;
                BackgroundTransparency = 1;
                TextXAlignment = Enum.TextXAlignment.Center;
                FontFace = fonts.font;
                ZIndex = 2;
                TextSize = 14;
                BackgroundColor3 = rgb(255, 255, 255)
            });

            library:create( "UICorner" , {
                Parent = items[ "close button" ];
                CornerRadius = dim(0, 10)
            });
            
            library:create( "UIStroke" , {
                Color = rgb(23, 23, 29);
                Parent = items[ "close button" ];
                ApplyStrokeMode = Enum.ApplyStrokeMode.Border
            });

            local open = true 
            items[ "close button" ].InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                    open = not open 

                    cfg.toggle_menu(open)
                end 
            end)
                
            return setmetatable(cfg, library)
        end 

        function library:tab(properties)
            local cfg = {
                name = properties.name or properties.Name or "visuals"; 
                icon = properties.icon or properties.Icon or "http://[Log in to view URL]";
                
                -- multi 
                tabs = properties.tabs or properties.Tabs or {"Main", "Misc.", "Settings"};
                pages = {}; -- data store for multi sections
                current_multi; 
                
                items = {};
            } 

            local items = cfg.items; do 
                items[ "tab_holder" ] = library:create( "Frame" , {
                    Parent = library.cache;
                    Name = "\0";
                    Visible = false;
                    BackgroundTransparency = 1;
                    Position = dim2(0, 196, 0, 56);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -216, 1, -101);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                -- Tab buttons 
                    items[ "button" ] = library:create( "TextButton" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 255, 255);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = self.items[ "button_holder" ];
                        AutoButtonColor = false;
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Size = dim2(1, 0, 0, 35);
                        BorderSizePixel = 0;
                        TextSize = 16;
                        BackgroundColor3 = rgb(29, 29, 29)
                    });
                    
                    items[ "icon" ] = library:create( "ImageLabel" , {
                        ImageColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = items[ "button" ];
                        AnchorPoint = vec2(0, 0.5);
                        Image = cfg.icon;
                        BackgroundTransparency = 1;
                        Position = dim2(0, 10, 0.5, 0);
                        Name = "\0";
                        Size = dim2(0, 22, 0, 22);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    }); library:apply_theme(items[ "icon" ], "accent", "ImageColor3");
                    
                    items[ "name" ] = library:create( "TextLabel" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = cfg.name;
                        Parent = items[ "button" ];
                        Name = "\0";
                        Size = dim2(0, 0, 1, 0);
                        Position = dim2(0, 40, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.X;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "name" ];
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "button" ];
                        CornerRadius = dim(0, 7)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(23, 23, 29);
                        Parent = items[ "button" ];
                        Enabled = false;
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                    });
                -- 

                -- Multi Sections
                    items[ "multi_section_button_holder" ] = library:create( "Frame" , {
                        Parent = library.cache;
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Visible = false;
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "multi_section_button_holder" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder;
                        FillDirection = Enum.FillDirection.Horizontal
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingTop = dim(0, 8);
                        PaddingBottom = dim(0, 7);
                        Parent = items[ "multi_section_button_holder" ];
                        PaddingRight = dim(0, 7);
                        PaddingLeft = dim(0, 7)
                    });                        

                    for _, section in cfg.tabs do
                        local data = {items = {}} 

                        local multi_items = data.items; do 
                            -- Button
                                multi_items[ "button" ] = library:create( "TextButton" , {
                                    FontFace = fonts.font;
                                    TextColor3 = rgb(255, 255, 255);
                                    BorderColor3 = rgb(0, 0, 0);
                                    AutoButtonColor = false;
                                    Text = "";
                                    Parent = items[ "multi_section_button_holder" ];
                                    Name = "\0";
                                    Size = dim2(0, 0, 0, 39);
                                    BackgroundTransparency = 1;
                                    ClipsDescendants = true;
                                    BorderSizePixel = 0;
                                    AutomaticSize = Enum.AutomaticSize.X;
                                    TextSize = 16;
                                    BackgroundColor3 = rgb(25, 25, 29)
                                });
                                
                                multi_items[ "name" ] = library:create( "TextLabel" , {
                                    FontFace = fonts.font;
                                    TextColor3 = rgb(62, 62, 63);
                                    BorderColor3 = rgb(0, 0, 0);
                                    Text = section;
                                    Parent = multi_items[ "button" ];
                                    Name = "\0";
                                    Size = dim2(0, 0, 1, 0);
                                    BackgroundTransparency = 1;
                                    TextXAlignment = Enum.TextXAlignment.Left;
                                    BorderSizePixel = 0;
                                    AutomaticSize = Enum.AutomaticSize.XY;
                                    TextSize = 16;
                                    BackgroundColor3 = rgb(255, 255, 255)
                                });
                                
                                library:create( "UIPadding" , {
                                    Parent = multi_items[ "name" ];
                                    PaddingRight = dim(0, 5);
                                    PaddingLeft = dim(0, 5)
                                });
                                
                                multi_items[ "accent" ] = library:create( "Frame" , {
                                    BorderColor3 = rgb(0, 0, 0);
                                    AnchorPoint = vec2(0, 1);
                                    Parent = multi_items[ "button" ];
                                    BackgroundTransparency = 1;
                                    Position = dim2(0, 10, 1, 4);
                                    Name = "\0";
                                    Size = dim2(1, -20, 0, 6);
                                    BorderSizePixel = 0;
                                    BackgroundColor3 = themes.preset.accent
                                }); library:apply_theme(multi_items[ "accent" ], "accent", "BackgroundColor3");
                                
                                library:create( "UICorner" , {
                                    Parent = multi_items[ "accent" ];
                                    CornerRadius = dim(0, 999)
                                });
                                
                                library:create( "UIPadding" , {
                                    Parent = multi_items[ "button" ];
                                    PaddingRight = dim(0, 10);
                                    PaddingLeft = dim(0, 10)
                                });
                                
                                library:create( "UICorner" , {
                                    Parent = multi_items[ "button" ];
                                    CornerRadius = dim(0, 7)
                                }); 
                            --

                            -- Tab 
                                multi_items[ "tab" ] = library:create( "Frame" , {
                                    Parent = library.cache;
                                    BackgroundTransparency = 1;
                                    Name = "\0";
                                    BorderColor3 = rgb(0, 0, 0);
                                    Size = dim2(1, -20, 1, -20);
                                    BorderSizePixel = 0;
                                    Visible = false;
                                    BackgroundColor3 = rgb(255, 255, 255)
                                });
                                
                                library:create( "UIListLayout" , {
                                    FillDirection = Enum.FillDirection.Vertical;
                                    HorizontalFlex = Enum.UIFlexAlignment.Fill;
                                    Parent = multi_items[ "tab" ];
                                    Padding = dim(0, 7);
                                    SortOrder = Enum.SortOrder.LayoutOrder;
                                    VerticalFlex = Enum.UIFlexAlignment.Fill
                                });
                                
                                library:create( "UIPadding" , {
                                    PaddingTop = dim(0, 7);
                                    PaddingBottom = dim(0, 7);
                                    Parent = multi_items[ "tab" ];
                                    PaddingRight = dim(0, 7);
                                    PaddingLeft = dim(0, 7)
                                });
                            --
                        end
                        
                        data.text = multi_items[ "name" ]
                        data.accent = multi_items[ "accent" ]
                        data.button = multi_items[ "button" ]
                        data.page = multi_items[ "tab" ]
                        data.parent = setmetatable(data, library):sub_tab({}).items[ "tab_parent" ]
                        
                        -- Old column code
                        -- data.left = multi_items[ "left" ]
                        -- data.right = multi_items[ "right" ]

						function data.open_page()
							local page = cfg.current_multi; 
                            
                            if page and page.text ~= data.text then 
                                self.items[ "global_fade" ].BackgroundTransparency = 0
                                library:tween(self.items[ "global_fade" ], {BackgroundTransparency = 1}, Enum.EasingStyle.Quad, 0.4)
                                
                                local old_size = page.page.Size
                                page.page.Size = dim2(1, -20, 1, -20)
                            end

                            if page then
                                library:tween(page.text, {TextColor3 = rgb(62, 62, 63)})
                                library:tween(page.accent, {BackgroundTransparency = 1})
                                library:tween(page.button, {BackgroundTransparency = 1})

                                page.page.Visible = false
                                page.page.Parent = library[ "cache" ] 
                            end 
                            
                            library:tween(data.text, {TextColor3 = rgb(255, 255, 255)})
                            library:tween(data.accent, {BackgroundTransparency = 0})
                            library:tween(data.button, {BackgroundTransparency = 0})
                            library:tween(data.page, {Size = dim2(1, 0, 1, 0)}, Enum.EasingStyle.Quad, 0.4)

                            data.page.Visible = true
                            data.page.Parent = items["tab_holder"]

                            cfg.current_multi = data

                            library:close_element()
						end

						multi_items[ "button" ].InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
							data.open_page() 
						end)

						cfg.pages[#cfg.pages + 1] = setmetatable(data, library)
                    end 

                    cfg.pages[1].open_page()
                --
            end 

            function cfg.open_tab() 
                local selected_tab = self.selected_tab
                
                if selected_tab then 
                    if selected_tab[ 4 ] ~= items[ "tab_holder" ] then 
                        self.items[ "global_fade" ].BackgroundTransparency = 0
                        
                        library:tween(self.items[ "global_fade" ], {BackgroundTransparency = 1}, Enum.EasingStyle.Quad, 0.4)
                        selected_tab[ 4 ].Size = dim2(1, -216, 1, -101)
                    end

                    library:tween(selected_tab[ 1 ], {BackgroundTransparency = 1})
                    library:tween(selected_tab[ 2 ], {ImageColor3 = rgb(255, 0, 0)})
                    library:tween(selected_tab[ 3 ], {TextColor3 = rgb(255, 0, 0)})

                    selected_tab[ 4 ].Visible = false
                    selected_tab[ 4 ].Parent = library[ "cache" ]
                    selected_tab[ 5 ].Visible = false
                    selected_tab[ 5 ].Parent = library[ "cache" ]
                end

                library:tween(items[ "button" ], {BackgroundTransparency = 0})
                library:tween(items[ "icon" ], {ImageColor3 = themes.preset.accent})
                library:tween(items[ "name" ], {TextColor3 = rgb(255, 255, 255)})
                library:tween(items[ "tab_holder" ], {Size = dim2(1, -196, 1, -81)}, Enum.EasingStyle.Quad, 0.4)
                
                items[ "tab_holder" ].Visible = true 
                items[ "tab_holder" ].Parent = self.items[ "main" ]
                items[ "multi_section_button_holder" ].Visible = true 
                items[ "multi_section_button_holder" ].Parent = self.items[ "multi_holder" ]

                self.selected_tab = {
                    items[ "button" ];
                    items[ "icon" ];
                    items[ "name" ];
                    items[ "tab_holder" ];
                    items[ "multi_section_button_holder" ];
                }

                library:close_element()
            end

            items[ "button" ].InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                cfg.open_tab()
            end)
            
            if not self.selected_tab then 
                cfg.open_tab(true) 
            end

            return unpack(cfg.pages)
        end

        function library:seperator(properties)
            local cfg = {items = {}, name = properties.Name or properties.name or "General"}

            local items = cfg.items do 
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = self.items[ "button_holder" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    Position = dim2(0, 40, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0; 
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });                
            end;    

            return setmetatable(cfg, library)
        end 

        -- Miscellaneous 
            function library:column(properties) 
                local cfg = {items = {}, size = properties.size or 1}

                local items = cfg.items; do     
                    items[ "column" ] = library:create( "Frame" , {
                        Parent = self[ "parent" ] or self.items["tab_parent"];
                        BackgroundTransparency = 1;
                        Name = "\0";
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 0, cfg.size, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingBottom = dim(0, 10);
                        Parent = items[ "column" ]
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "column" ];
                        HorizontalFlex = Enum.UIFlexAlignment.Fill;
                        Padding = dim(0, 10);
                        FillDirection = Enum.FillDirection.Vertical;
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                end 

                return setmetatable(cfg, library)
            end 

            function library:sub_tab(properties) 
                local cfg = {items = {}, order = properties.order or 0; size = properties.size or 1}

                local items = cfg.items; do 
                    items[ "tab_parent" ] = library:create( "Frame" , {
                        Parent = self.items[ "tab" ];
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Size = dim2(0,0,cfg.size,0);
                        BorderColor3 = rgb(0, 0, 0);
                        BorderSizePixel = 0;
                        Visible = true;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        FillDirection = Enum.FillDirection.Horizontal;
                        HorizontalFlex = Enum.UIFlexAlignment.Fill;
                        VerticalFlex = Enum.UIFlexAlignment.Fill;
                        Parent = items[ "tab_parent" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder;
                    });
                end

                return setmetatable(cfg, library)
            end 
        --

        function library:section(properties)
            local cfg = {
                name = properties.name or properties.Name or "section"; 
                side = properties.side or properties.Side or "left";
                default = properties.default or properties.Default or false;
                size = properties.size or properties.Size or self.size or 0.5; 
                icon = properties.icon or properties.Icon or "http://[Log in to view URL]";
                fading_toggle = properties.fading or properties.Fading or false;
                items = {};
            };
            
            local items = cfg.items; do 
                items[ "outline" ] = library:create( "Frame" , {
                    Name = "\0";
                    Parent = self.items[ "column" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, cfg.size, -3);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(25, 25, 29)
                });

                library:create( "UICorner" , {
                    Parent = items[ "outline" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "inline" ] = library:create( "Frame" , {
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Position = dim2(0, 1, 0, 1);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -2, 1, -2);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(22, 22, 24)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "inline" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "scrolling" ] = library:create( "ScrollingFrame" , {
                    ScrollBarImageColor3 = rgb(44, 44, 46);
                    Active = true;
                    AutomaticCanvasSize = Enum.AutomaticSize.Y;
                    ScrollBarThickness = 2;
                    Parent = items[ "inline" ];
                    Name = "\0";
                    Size = dim2(1, 0, 1, -40);
                    BackgroundTransparency = 1;
                    Position = dim2(0, 0, 0, 35);
                    BackgroundColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    CanvasSize = dim2(0, 0, 0, 0)
                });
                
                items[ "elements" ] = library:create( "Frame" , {
                    BorderColor3 = rgb(0, 0, 0);
                    Parent = items[ "scrolling" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 10, 0, 10);
                    Size = dim2(1, -20, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "elements" ];
                    Padding = dim(0, 10);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    PaddingBottom = dim(0, 15);
                    Parent = items[ "elements" ]
                });
                
                items[ "button" ] = library:create( "TextButton" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    AutoButtonColor = false;
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Position = dim2(0, 1, 0, 1);
                    Size = dim2(1, -2, 0, 35);
                    BorderSizePixel = 0;
                    TextSize = 16;
                    BackgroundColor3 = rgb(19, 19, 21)
                });
                
                library:create( "UIStroke" , {
                    Color = rgb(23, 23, 29);
                    Parent = items[ "button" ];
                    Enabled = false;
                    ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "button" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "Icon" ] = library:create( "ImageLabel" , {
                    ImageColor3 = themes.preset.accent;
                    BorderColor3 = rgb(0, 0, 0);
                    Parent = items[ "button" ];
                    AnchorPoint = vec2(0, 0.5);
                    Image = cfg.icon;
                    BackgroundTransparency = 1;
                    Position = dim2(0, 10, 0.5, 0);
                    Name = "\0";
                    Size = dim2(0, 22, 0, 22);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "Icon" ], "accent", "ImageColor3");
                
                items[ "section_title" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "button" ];
                    Name = "\0";
                    Size = dim2(0, 0, 1, 0);
                    Position = dim2(0, 40, 0, -1);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.X;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "button" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
                
                if cfg.fading_toggle then 
                    items[ "toggle" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(1, 0.5);
                        Parent = items[ "button" ];
                        Name = "\0";
                        Position = dim2(1, -9, 0.5, 0);
                        Size = dim2(0, 36, 0, 18);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(58, 58, 62)
                    });  library:apply_theme(items[ "toggle" ], "accent", "BackgroundColor3");
                    
                    library:create( "UICorner" , {
                        Parent = items[ "toggle" ];
                        CornerRadius = dim(0, 999)
                    });
                    
                    items[ "toggle_outline" ] = library:create( "Frame" , {
                        Parent = items[ "toggle" ];
                        Size = dim2(1, -2, 1, -2);
                        Name = "\0";
                        BorderMode = Enum.BorderMode.Inset;
                        BorderColor3 = rgb(0, 0, 0);
                        Position = dim2(0, 1, 0, 1);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(50, 50, 50)
                    });  library:apply_theme(items[ "toggle_outline" ], "accent", "BackgroundColor3");
                    
                    library:create( "UICorner" , {
                        Parent = items[ "toggle_outline" ];
                        CornerRadius = dim(0, 999)
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))};
                        Parent = items[ "toggle_outline" ]
                    });
                    
                    items[ "toggle_circle" ] = library:create( "Frame" , {
                        Parent = items[ "toggle_outline" ];
                        Name = "\0";
                        Position = dim2(0, 2, 0, 2);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 12, 0, 12);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(86, 86, 88)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "toggle_circle" ];
                        CornerRadius = dim(0, 999)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "outline" ];
                        CornerRadius = dim(0, 7)
                    });
                
                    items[ "fade" ] = library:create( "Frame" , {
                        Parent = items[ "outline" ];
                        BackgroundTransparency = 0.800000011920929;
                        Name = "\0";
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(0, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "fade" ];
                        CornerRadius = dim(0, 7)
                    });
                end 
            end;

            if cfg.fading_toggle then
                items[ "button" ].InputBegan:Connect(function(input)
                    if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                        cfg.default = not cfg.default 
                        cfg.toggle_section(cfg.default) 
                    end 
                end)

                function cfg.toggle_section(bool)
                    library:tween(items[ "toggle" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(58, 58, 62)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "toggle_outline" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(50, 50, 50)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "toggle_circle" ], {BackgroundColor3 = bool and rgb(255, 255, 255) or rgb(86, 86, 88), Position = bool and dim2(1, -14, 0, 2) or dim2(0, 2, 0, 2)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "fade" ], {BackgroundTransparency = bool and 1 or 0.8}, Enum.EasingStyle.Quad)
                end 
            end 

            return setmetatable(cfg, library)
        end  

        function library:toggle(options) 
            local rand = math.random(1, 2) 
            local cfg = {
                enabled = options.default or false,
                name = options.name or "Toggle",
                info = options.info or nil,
                flag = options.flag or library:next_flag(),
                
                type = options.type and string.lower(options.type) or rand == 1 and "toggle" or "checkbox"; -- "toggle", "checkbox"

                default = options.default or false,
                folding = options.folding or false, 
                callback = options.callback or function() end,

                items = {};
                seperator = options.seperator or options.Seperator or false;
            }

            flags[cfg.flag] = cfg.default

            local items = cfg.items; do
                items[ "toggle" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "toggle" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });

                if cfg.info then 
                    items[ "info" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(130, 130, 130);
                        BorderColor3 = rgb(0, 0, 0);
                        TextWrapped = true;
                        Text = cfg.info;
                        Parent = items[ "toggle" ];
                        Name = "\0";
                        Position = dim2(0, 5, 0, 17);
                        Size = dim2(1, -10, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                end 
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "toggle" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 1, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    FillDirection = Enum.FillDirection.Horizontal;
                    HorizontalAlignment = Enum.HorizontalAlignment.Right;
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 9);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                -- Toggle
                    if cfg.type == "checkbox" then 
                        items[ "toggle_button" ] = library:create( "TextButton" , {
                            FontFace = fonts.small;
                            TextColor3 = rgb(0, 0, 0);
                            BorderColor3 = rgb(0, 0, 0);
                            Text = "";
                            LayoutOrder = 2;
                            AutoButtonColor = false;
                            AnchorPoint = vec2(1, 0);
                            Parent = items[ "right_components" ];
                            Name = "\0";
                            Position = dim2(1, 0, 0, 0);
                            Size = dim2(0, 16, 0, 16);
                            BorderSizePixel = 0;
                            TextSize = 14;
                            BackgroundColor3 = rgb(67, 67, 68)
                        }); library:apply_theme(items[ "toggle_button" ], "accent", "BackgroundColor3");
                        
                        library:create( "UICorner" , {
                            Parent = items[ "toggle_button" ];
                            CornerRadius = dim(0, 4)
                        });
                        
                        items[ "outline" ] = library:create( "Frame" , {
                            Parent = items[ "toggle_button" ];
                            Size = dim2(1, -2, 1, -2);
                            Name = "\0";
                            BorderMode = Enum.BorderMode.Inset;
                            BorderColor3 = rgb(0, 0, 0);
                            Position = dim2(0, 1, 0, 1);
                            BorderSizePixel = 0;
                            BackgroundColor3 = rgb(22, 22, 24)
                        }); library:apply_theme(items[ "outline" ], "accent", "BackgroundColor3");
                        
                        items[ "tick" ] = library:create( "ImageLabel" , {
                            ImageTransparency = 1;
                            BorderColor3 = rgb(0, 0, 0);
                            Image = "rbxassetid://111862698467575";
                            BackgroundTransparency = 1;
                            Position = dim2(0, -1, 0, 0);
                            Parent = items[ "outline" ];
                            Size = dim2(1, 2, 1, 2);
                            BorderSizePixel = 0;
                            BackgroundColor3 = rgb(255, 255, 255);
                            ZIndex = 1;
                        });

                        library:create( "UICorner" , {
                            Parent = items[ "outline" ];
                            CornerRadius = dim(0, 4)
                        });
                        
                        library:create( "UIGradient" , {
                            Enabled = false;
                            Parent = items[ "outline" ];
                            Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))}
                        });  
                    else 
                        items[ "toggle_button" ] = library:create( "TextButton" , {
                            FontFace = fonts.font;
                            TextColor3 = rgb(0, 0, 0);
                            BorderColor3 = rgb(0, 0, 0);
                            Text = "";
                            LayoutOrder = 2;
                            AnchorPoint = vec2(1, 0.5);
                            Parent = items[ "right_components" ];
                            Name = "\0";
                            Position = dim2(1, -9, 0.5, 0);
                            Size = dim2(0, 36, 0, 18);
                            BorderSizePixel = 0;
                            TextSize = 14;
                            BackgroundColor3 = themes.preset.accent
                        }); library:apply_theme(items[ "toggle_button" ], "accent", "BackgroundColor3");
                        
                        library:create( "UICorner" , {
                            Parent = items[ "toggle_button" ];
                            CornerRadius = dim(0, 999)
                        });
                        
                        items[ "inline" ] = library:create( "Frame" , {
                            Parent = items[ "toggle_button" ];
                            Size = dim2(1, -2, 1, -2);
                            Name = "\0";
                            BorderMode = Enum.BorderMode.Inset;
                            BorderColor3 = rgb(0, 0, 0);
                            Position = dim2(0, 1, 0, 1);
                            BorderSizePixel = 0;
                            BackgroundColor3 = themes.preset.accent
                        }); library:apply_theme(items[ "inline" ], "accent", "BackgroundColor3");
                        
                        library:create( "UICorner" , {
                            Parent = items[ "inline" ];
                            CornerRadius = dim(0, 999)
                        });
                        
                        library:create( "UIGradient" , {
                            Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))};
                            Parent = items[ "inline" ]
                        });
                        
                        items[ "circle" ] = library:create( "Frame" , {
                            Parent = items[ "inline" ];
                            Name = "\0";
                            Position = dim2(1, -14, 0, 2);
                            BorderColor3 = rgb(0, 0, 0);
                            Size = dim2(0, 12, 0, 12);
                            BorderSizePixel = 0;
                            BackgroundColor3 = rgb(255, 255, 255)
                        });
                        
                        library:create( "UICorner" , {
                            Parent = items[ "circle" ];
                            CornerRadius = dim(0, 999)
                        });                        
                    end 
                --                
            end;
            
            function cfg.set(bool)
                if cfg.type == "checkbox" then 
                    library:tween(items[ "tick" ], {Rotation = bool and 0 or 45, ImageTransparency = bool and 0 or 1})
                    library:tween(items[ "toggle_button" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(67, 67, 68)})
                    library:tween(items[ "outline" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(22, 22, 24)})
                else
                    library:tween(items[ "toggle_button" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(58, 58, 62)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "inline" ], {BackgroundColor3 = bool and themes.preset.accent or rgb(50, 50, 50)}, Enum.EasingStyle.Quad)
                    library:tween(items[ "circle" ], {BackgroundColor3 = bool and rgb(255, 255, 255) or rgb(86, 86, 88), Position = bool and dim2(1, -14, 0, 2) or dim2(0, 2, 0, 2)}, Enum.EasingStyle.Quad)
                end

                cfg.enabled = bool
                cfg.callback(bool)

                if cfg.folding then 
                    elements.Visible = bool
                end

                flags[cfg.flag] = bool
            end 
            
            items[ "toggle" ].InputBegan:Connect(function(Input)
                if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                cfg.enabled = not cfg.enabled 
                cfg.set(cfg.enabled)
            end)

            items[ "toggle_button" ].InputBegan:Connect(function(Input)
                if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                cfg.enabled = not cfg.enabled 
                cfg.set(cfg.enabled)
            end)
            
            if cfg.seperator then -- ok bro my lua either sucks or this was a pain in the ass to make (simple if statement aswell 💔)
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end

            cfg.set(cfg.default)

            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end 
        
        function library:slider(options) 
            local cfg = {
                name = options.name or nil,
                suffix = options.suffix or "",
                flag = options.flag or library:next_flag(),
                callback = options.callback or function() end, 
                info = options.info or nil; 

                -- value settings
                min = options.min or options.minimum or 0,
                max = options.max or options.maximum or 100,
                intervals = options.interval or options.decimal or 1,
                default = options.default or 10,
                value = options.default or 10, 
                seperator = options.seperator or options.Seperator or false;

                dragging = false,
                items = {}
            } 

            flags[cfg.flag] = cfg.default

            local items = cfg.items; do
                items[ "slider_object" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "slider_object" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                if cfg.info then 
                    items[ "info" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(130, 130, 130);
                        BorderColor3 = rgb(0, 0, 0);
                        TextWrapped = true;
                        Text = cfg.info;
                        Parent = items[ "slider_object" ];
                        Name = "\0";
                        Position = dim2(0, 5, 0, 37);
                        Size = dim2(1, -10, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                end 

                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "slider_object" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 4, 0, 23);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 12);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 7);
                    SortOrder = Enum.SortOrder.LayoutOrder;
                    FillDirection = Enum.FillDirection.Horizontal
                });
                
                items[ "slider" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    AutoButtonColor = false;
                    AnchorPoint = vec2(1, 0);
                    Parent = items[ "right_components" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0, 0);
                    Size = dim2(1, -4, 0, 4);
                    BorderSizePixel = 0;
                    TextSize = 14;
                    BackgroundColor3 = rgb(33, 33, 35)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "slider" ];
                    CornerRadius = dim(0, 999)
                });
                
                items[ "fill" ] = library:create( "Frame" , {
                    Name = "\0";
                    Parent = items[ "slider" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0.5, 0, 0, 4);
                    BorderSizePixel = 0;
                    BackgroundColor3 = themes.preset.accent
                });  library:apply_theme(items[ "fill" ], "accent", "BackgroundColor3");
                
                library:create( "UICorner" , {
                    Parent = items[ "fill" ];
                    CornerRadius = dim(0, 999)
                });
                
                items[ "circle" ] = library:create( "Frame" , {
                    AnchorPoint = vec2(0.5, 0.5);
                    Parent = items[ "fill" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0.5, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 12, 0, 12);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(244, 244, 244)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "circle" ];
                    CornerRadius = dim(0, 999)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "right_components" ];
                    PaddingTop = dim(0, 4)
                });
                
                items[ "value" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "50%";
                    Parent = items[ "slider_object" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    Position = dim2(0, 6, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Right;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "value" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });                
            end 

            function cfg.changetext(text)
                items['name'].Text = text
            end 

            function cfg.set(value)
                cfg.value = clamp(library:round(value, cfg.intervals), cfg.min, cfg.max)

                library:tween(items[ "fill" ], {Size = dim2((cfg.value - cfg.min) / (cfg.max - cfg.min), cfg.value == cfg.min and 0 or -4, 0, 2)}, Enum.EasingStyle.Linear, 0.05)
                items[ "value" ].Text = tostring(cfg.value) .. cfg.suffix

                flags[cfg.flag] = cfg.value
                cfg.callback(flags[cfg.flag])
            end

            items[ "slider" ].InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                cfg.dragging = true 
                library:tween(items[ "value" ], {TextColor3 = rgb(255, 255, 255)}, Enum.EasingStyle.Quad, 0.2)
            end)

            library:connection(uis.InputChanged, function(input)
                if cfg.dragging and input.UserInputType == Enum.UserInputType.Touch then 
                    local size_x = (input.Position.X - items[ "slider" ].AbsolutePosition.X) / items[ "slider" ].AbsoluteSize.X
                    local value = ((cfg.max - cfg.min) * size_x) + cfg.min
                    cfg.set(value)
                end
            end)

            library:connection(uis.InputEnded, function(input)
                if input.UserInputType == Enum.UserInputType.Touch then
                    cfg.dragging = false
                    library:tween(items[ "value" ], {TextColor3 = rgb(255, 0, 0)}, Enum.EasingStyle.Quad, 0.2) 
                end 
            end)

            if cfg.seperator then 
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end 

            cfg.set(cfg.default)
            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end 

        function library:dropdown(options) 
            local cfg = {
                name = options.name or nil;
                info = options.info or nil;
                flag = options.flag or library:next_flag();
                options = options.items or {""};
                callback = options.callback or function() end;
                multi = options.multi or false;
                scrolling = options.scrolling or false;

                width = options.width or 130;

                -- Ignore these 
                open = false;
                option_instances = {};
                multi_items = {};
                ignore = options.ignore or false;
                items = {};
                y_size;
                seperator = options.seperator or options.Seperator or true;
            }   

            cfg.default = options.default or (cfg.multi and {cfg.items[1]}) or cfg.items[1] or "None"
            flags[cfg.flag] = cfg.default

            local items = cfg.items; do 
                -- Element
                    items[ "dropdown_object" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = self.items[ "elements" ];
                        Name = "\0";
                        BackgroundTransparency = 1;
                        Size = dim2(1, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.Y;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    items[ "name" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "Dropdown";
                        Parent = items[ "dropdown_object" ];
                        Name = "\0";
                        Size = dim2(1, 0, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    if cfg.info then 
                        items[ "info" ] = library:create( "TextLabel" , {
                            FontFace = fonts.small;
                            TextColor3 = rgb(130, 130, 130);
                            BorderColor3 = rgb(0, 0, 0);
                            TextWrapped = true;
                            Text = cfg.info;
                            Parent = items[ "dropdown_object" ];
                            Name = "\0";
                            Position = dim2(0, 5, 0, 17);
                            Size = dim2(1, -10, 0, 0);
                            BackgroundTransparency = 1;
                            TextXAlignment = Enum.TextXAlignment.Left;
                            BorderSizePixel = 0;
                            AutomaticSize = Enum.AutomaticSize.XY;
                            TextSize = 16;
                            BackgroundColor3 = rgb(255, 255, 255)
                        });
                    end 

                    library:create( "UIPadding" , {
                        Parent = items[ "name" ];
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    items[ "right_components" ] = library:create( "Frame" , {
                        Parent = items[ "dropdown_object" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        FillDirection = Enum.FillDirection.Horizontal;
                        HorizontalAlignment = Enum.HorizontalAlignment.Right;
                        Parent = items[ "right_components" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    items[ "dropdown" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Parent = items[ "right_components" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        Size = dim2(0, cfg.width, 0, 16);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(33, 33, 35)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "dropdown" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "sub_text" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(86, 86, 87);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "awdawdawdawdawdawdawdaw";
                        Parent = items[ "dropdown" ];
                        Name = "\0";
                        Size = dim2(1, -12, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        TextTruncate = Enum.TextTruncate.AtEnd;
                        AutomaticSize = Enum.AutomaticSize.Y;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "sub_text" ];
                        PaddingTop = dim(0, 1);
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    items[ "indicator" ] = library:create( "ImageLabel" , {
                        ImageColor3 = rgb(86, 86, 87);
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = items[ "dropdown" ];
                        AnchorPoint = vec2(1, 0.5);
                        Image = "rbxassetid://101025591575185";
                        BackgroundTransparency = 1;
                        Position = dim2(1, -5, 0.5, 0);
                        Name = "\0";
                        Size = dim2(0, 12, 0, 12);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                -- 

                -- Element Holder
                    items[ "dropdown_holder" ] = library:create( "Frame" , {
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = library[ "items" ];
                        Name = "\0";
                        Visible = true;
                        BackgroundTransparency = 1;
                        Size = dim2(0, 0, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(0, 0, 0);
                        ZIndex = 10;
                    });
                    
                    items[ "outline" ] = library:create( "Frame" , {
                        Parent = items[ "dropdown_holder" ];
                        Size = dim2(1, 0, 1, 0);
                        ClipsDescendants = true;
                        BorderColor3 = rgb(0, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(33, 33, 35);
                        ZIndex = 10;
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingBottom = dim(0, 6);
                        PaddingTop = dim(0, 3);
                        PaddingLeft = dim(0, 3);
                        Parent = items[ "outline" ]
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "outline" ];
                        Padding = dim(0, 5);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "outline" ];
                        CornerRadius = dim(0, 4)
                    });
                -- 
            end 

            function cfg.render_option(text)
                local button = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = text;
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Size = dim2(1, -12, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255);
                    ZIndex = 10;
                }); library:apply_theme(button, "accent", "TextColor3");
                
                library:create( "UIPadding" , {
                    Parent = button;
                    PaddingTop = dim(0, 1);
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                return button
            end
            
            function cfg.set_visible(bool)
                local a = bool and cfg.y_size or 0
                library:tween(items[ "dropdown_holder" ], {Size = dim_offset(items[ "dropdown" ].AbsoluteSize.X, a)})

                items[ "dropdown_holder" ].Position = dim2(0, items[ "dropdown" ].AbsolutePosition.X, 0, items[ "dropdown" ].AbsolutePosition.Y + 80)
                if not (self.sanity and library.current_open == self) then 
                    library:close_element(cfg)
                end
            end
            
            function cfg.set(value)
                local selected = {}
                local isTable = type(value) == "table"

                for _, option in cfg.option_instances do 
                    if option.Text == value or (isTable and find(value, option.Text)) then 
                        insert(selected, option.Text)
                        cfg.multi_items = selected
                        option.TextColor3 = themes.preset.accent
                    else
                        option.TextColor3 = rgb(255, 0, 0)
                    end
                end

                items[ "sub_text" ].Text = isTable and concat(selected, ", ") or selected[1] or ""
                flags[cfg.flag] = isTable and selected or selected[1]
                
                cfg.callback(flags[cfg.flag]) 
            end
            
            function cfg.refresh_options(list) 
                cfg.y_size = 0

                for _, option in cfg.option_instances do 
                    option:Destroy() 
                end
                
                cfg.option_instances = {} 

                for _, option in list do 
                    local button = cfg.render_option(option)
                    cfg.y_size += button.AbsoluteSize.Y + 6 -- super annoying manual sizing but oh well
                    insert(cfg.option_instances, button)
                    
                    button.InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                        if cfg.multi then 
                            local selected_index = find(cfg.multi_items, button.Text)
                            
                            if selected_index then 
                                remove(cfg.multi_items, selected_index)
                            else
                                insert(cfg.multi_items, button.Text)
                            end
                            
                            cfg.set(cfg.multi_items) 				
                        else 
                            cfg.set_visible(false)
                            cfg.open = false 
                            
                            cfg.set(button.Text)
                        end
                    end)
                end
            end

            items[ "dropdown" ].InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                    cfg.open = not cfg.open  
                    cfg.set_visible(cfg.open)
                end 
            end)

            if cfg.seperator then 
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end 

            flags[cfg.flag] = {} 
            config_flags[cfg.flag] = cfg.set
            
            cfg.refresh_options(cfg.options)
            cfg.set(cfg.default)
                
            return setmetatable(cfg, library)
        end

        function library:label(options)
            local cfg = {
                enabled = options.enabled or nil,
                name = options.name or "Toggle",
                seperator = options.seperator or options.Seperator or false;
                info = options.info or nil; 

                items = {};
            }

            local items = cfg.items; do 
                items[ "label" ] = library:create( "TextButton" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "label" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });

                if cfg.info then 
                    items[ "info" ] = library:create( "TextLabel" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(130, 130, 130);
                        BorderColor3 = rgb(0, 0, 0);
                        TextWrapped = true;
                        Text = cfg.info;
                        Parent = items[ "label" ];
                        Name = "\0";
                        Position = dim2(0, 5, 0, 17);
                        Size = dim2(1, -10, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                end 
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "label" ];
                    Name = "\0";
                    Position = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 1, 0);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    FillDirection = Enum.FillDirection.Horizontal;
                    HorizontalAlignment = Enum.HorizontalAlignment.Right;
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 9);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });                
            end 

            if cfg.seperator then 
                library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = self.items[ "elements" ];
                    Position = dim2(0, 0, 1, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 1, 0, 1);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(36, 36, 37)
                });
            end 

            return setmetatable(cfg, library)
        end 
        
        function library:colorpicker(options) 
            local cfg = {
                name = options.name or "Color", 
                flag = options.flag or library:next_flag(),

                color = options.color or color(1, 1, 1), -- Default to white color if not provided
                alpha = options.alpha and 1 - options.alpha or 0,
                
                open = false, 
                callback = options.callback or function() end,
                items = {};

                seperator = options.seperator or options.Seperator or false;
            }

            local dragging_sat = false 
            local dragging_hue = false 
            local dragging_alpha = false 

            local h, s, v = cfg.color:ToHSV() 
            local a = cfg.alpha 

            flags[cfg.flag] = {Color = cfg.color, Transparency = cfg.alpha}

            local label; 
            if not self.items.right_components then 
                label = self:label({name = cfg.name, seperator = cfg.seperator})
            end

            local items = cfg.items; do 
                -- Component
                    items[ "colorpicker" ] = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Parent = label and label.items.right_components or self.items[ "right_components" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        Size = dim2(0, 16, 0, 16);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(54, 31, 184)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "colorpicker" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "colorpicker_inline" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker" ];
                        Size = dim2(1, -2, 1, -2);
                        Name = "\0";
                        BorderMode = Enum.BorderMode.Inset;
                        BorderColor3 = rgb(0, 0, 0);
                        Position = dim2(0, 1, 0, 1);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(54, 31, 184)
                    });

                                    library:create( "UIScale" , {
                    Parent = items[ "colorpicker_inline" ];
                    Scale = scale;
                });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "colorpicker_inline" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(211, 211, 211)), rgbkey(1, rgb(211, 211, 211))};
                        Parent = items[ "colorpicker_inline" ]
                    });         
                --
                
                -- Colorpicker
                    items[ "colorpicker_holder" ] = library:create( "Frame" , {
                        Parent = library[ "other" ];
                        Name = "\0";
                        Position = dim2(0.20000000298023224, 20, 0.296999990940094, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 166, 0, 197);
                        BorderSizePixel = 0;
                        Visible = true;
                        BackgroundColor3 = rgb(25, 25, 29)
                    });

                    items[ "colorpicker_fade" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker_holder" ];
                        Name = "\0";
                        BackgroundTransparency = 0;
                        Position = dim2(0, 0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        ZIndex = 100;
                        BackgroundColor3 = rgb(25, 25, 29)
                    });
                    
                    items[ "colorpicker_components" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker_holder" ];
                        Name = "\0";
                        Position = dim2(0, 1, 0, 1);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -2, 1, -2);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(22, 22, 24)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "colorpicker_components" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    items[ "saturation_holder" ] = library:create( "Frame" , {
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        Position = dim2(0, 7, 0, 7);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -14, 1, -80);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 39, 39)
                    });
                    
                    items[ "sat" ] = library:create( "TextButton" , {
                        Parent = items[ "saturation_holder" ];
                        Name = "\0";
                        Size = dim2(1, 0, 1, 0);
                        Text = "";
                        AutoButtonColor = false;
                        BorderColor3 = rgb(0, 0, 0);
                        ZIndex = 2;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "sat" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    library:create( "UIGradient" , {
                        Rotation = 270;
                        Transparency = numseq{numkey(0, 0), numkey(1, 1)};
                        Parent = items[ "sat" ];
                        Color = rgbseq{rgbkey(0, rgb(0, 0, 0)), rgbkey(1, rgb(0, 0, 0))}
                    });
                    
                    items[ "val" ] = library:create( "Frame" , {
                        Name = "\0";
                        Parent = items[ "saturation_holder" ];
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIGradient" , {
                        Parent = items[ "val" ];
                        Transparency = numseq{numkey(0, 0), numkey(1, 1)}
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "val" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "saturation_holder" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "satvalpicker" ] = library:create( "TextButton" , {
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(0, 1);
                        Parent = items[ "saturation_holder" ];
                        Name = "\0";
                        Position = dim2(0, 0, 4, 0);
                        Size = dim2(0, 8, 0, 8);
                        ZIndex = 5;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "satvalpicker" ];
                        CornerRadius = dim(0, 9999)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(255, 255, 255);
                        Parent = items[ "satvalpicker" ];
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border;
                    });
                    
                    items[ "hue_gradient" ] = library:create( "TextButton" , {
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        Position = dim2(0, 10, 1, -64);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -20, 0, 8);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255);
                        AutoButtonColor = false;
                        Text = "";
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(255, 0, 0)), rgbkey(0.17, rgb(255, 255, 0)), rgbkey(0.33, rgb(0, 255, 0)), rgbkey(0.5, rgb(0, 255, 255)), rgbkey(0.67, rgb(0, 0, 255)), rgbkey(0.83, rgb(255, 0, 255)), rgbkey(1, rgb(255, 0, 0))};
                        Parent = items[ "hue_gradient" ]
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "hue_gradient" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    items[ "hue_picker" ] = library:create( "TextButton" , {
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(0, 0.5);
                        Parent = items[ "hue_gradient" ];
                        Name = "\0";
                        Position = dim2(0, 0, 0.5, 0);
                        Size = dim2(0, 8, 0, 8);
                        ZIndex = 5;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "hue_picker" ];
                        CornerRadius = dim(0, 9999)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(255, 255, 255);
                        Parent = items[ "hue_picker" ];
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border;
                    });
                    
                    items[ "alpha_gradient" ] = library:create( "TextButton" , {
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        Position = dim2(0, 10, 1, -46);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(1, -20, 0, 8);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(25, 25, 29);
                        AutoButtonColor = false;
                        Text = "";
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "alpha_gradient" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    items[ "alpha_picker" ] = library:create( "TextButton" , {
                        BorderColor3 = rgb(0, 0, 0);
                        AutoButtonColor = false;
                        Text = "";
                        AnchorPoint = vec2(0, 0.5);
                        Parent = items[ "alpha_gradient" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0.5, 0);
                        Size = dim2(0, 8, 0, 8);
                        ZIndex = 5;
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 0, 0)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "alpha_picker" ];
                        CornerRadius = dim(0, 9999)
                    });
                    
                    library:create( "UIStroke" , {
                        Color = rgb(255, 255, 255);
                        ApplyStrokeMode = Enum.ApplyStrokeMode.Border;
                        Parent = items[ "alpha_picker" ]
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(0, 0, 0)), rgbkey(1, rgb(255, 255, 255))};
                        Parent = items[ "alpha_gradient" ]
                    });
                    
                    items[ "alpha_indicator" ] = library:create( "ImageLabel" , {
                        ScaleType = Enum.ScaleType.Tile;
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = items[ "alpha_gradient" ];
                        Image = "rbxassetid://18274452449";
                        BackgroundTransparency = 1;
                        Name = "\0";
                        Size = dim2(1, 0, 1, 0);
                        TileSize = dim2(0, 6, 0, 6);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(0, 0, 0)
                    });
                    
                    library:create( "UIGradient" , {
                        Color = rgbseq{rgbkey(0, rgb(112, 112, 112)), rgbkey(1, rgb(255, 0, 0))};
                        Transparency = numseq{numkey(0, 0.8062499761581421), numkey(1, 0)};
                        Parent = items[ "alpha_indicator" ]
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "alpha_indicator" ];
                        CornerRadius = dim(0, 6)
                    });
                    
                    library:create( "UIGradient" , {
                        Rotation = 90;
                        Parent = items[ "colorpicker_components" ];
                        Color = rgbseq{rgbkey(0, rgb(255, 255, 255)), rgbkey(1, rgb(66, 66, 66))}
                    });

                    items[ "input" ] = library:create( "TextBox" , {
                        FontFace = fonts.font;
                        AnchorPoint = vec2(1, 1);
                        Text = "";
                        Parent = items[ "colorpicker_components" ];
                        Name = "\0";
                        TextTruncate = Enum.TextTruncate.AtEnd;
                        BorderSizePixel = 0;
                        PlaceholderColor3 = rgb(255, 255, 255);
                        CursorPosition = -1;
                        ClearTextOnFocus = false;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255);
                        TextColor3 = rgb(72, 72, 72);
                        BorderColor3 = rgb(0, 0, 0);
                        Position = dim2(1, -8, 1, -11);
                        Size = dim2(1, -16, 0, 18);
                        BackgroundColor3 = rgb(33, 33, 35)
                    }); 
                    
                    library:create( "UICorner" , {
                        Parent = items[ "input" ];
                        CornerRadius = dim(0, 3)
                    });
                    
                    items[ "UICorenr" ] = library:create( "UICorner" , { -- fire misstypo (im not fixing this RAWR)
                        Parent = items[ "colorpicker_holder" ];
                        Name = "\0";
                        CornerRadius = dim(0, 4)
                    });
                --                  
            end;

            function cfg.set_visible(bool)
                items[ "colorpicker_fade" ].BackgroundTransparency = 0
                items[ "colorpicker_holder" ].Parent = bool and library[ "items" ] or library[ "other" ]
                items[ "colorpicker_holder" ].Position = dim_offset(items[ "colorpicker" ].AbsolutePosition.X, items[ "colorpicker" ].AbsolutePosition.Y + items[ "colorpicker" ].AbsoluteSize.Y + 45)

                library:tween(items[ "colorpicker_fade" ], {BackgroundTransparency = 1}, Enum.EasingStyle.Quad, 0.4)
                library:tween(items[ "colorpicker_holder" ], {Position = items[ "colorpicker_holder" ].Position + dim_offset(0, 20)}) -- p100 check
                
                if not (self.sanity and library.current_open == self and self.open) then 
                    library:close_element(cfg)
                end
            end

            function cfg.set(color, alpha)
                if type(color) == "boolean" then 
                    return
                end 

                if color then 
                    h, s, v = color:ToHSV()
                end
                
                if alpha then 
                    a = alpha
                end 
                
                local Color = hsv(h, s, v)

                -- Ok so quick story, should I cache any of this? no...?? anyways I know this code is very bad but its your fault for buying a ui with animations (on a serious note im too lazy to make this look nice)
                -- Also further note, yeah I kind of did this scale_factor * size-valuesize.plane because then I would have to do tomfoolery to make it clip properly.
                library:tween(items[ "hue_picker" ], {Position = dim2(0, (items[ "hue_gradient" ].AbsoluteSize.X - items[ "hue_picker" ].AbsoluteSize.X) * h, 0.5, 0)}, Enum.EasingStyle.Linear, 0.05)
                library:tween(items[ "alpha_picker" ], {Position = dim2(0, (items[ "alpha_gradient" ].AbsoluteSize.X - items[ "alpha_picker" ].AbsoluteSize.X) * (1 - a), 0.5, 0)}, Enum.EasingStyle.Linear, 0.05)
                library:tween(items[ "satvalpicker" ], {Position = dim2(0, s * (items[ "saturation_holder" ].AbsoluteSize.X - items[ "satvalpicker" ].AbsoluteSize.X), 1, 1 - v * (items[ "saturation_holder" ].AbsoluteSize.Y - items[ "satvalpicker" ].AbsoluteSize.Y))}, Enum.EasingStyle.Linear, 0.05)

                items[ "alpha_indicator" ]:FindFirstChildOfClass("UIGradient").Color = rgbseq{rgbkey(0, rgb(112, 112, 112)), rgbkey(1, hsv(h, 1, 1))}; -- shit code
                
                items[ "colorpicker" ].BackgroundColor3 = Color
                items[ "colorpicker_inline" ].BackgroundColor3 = Color
                items[ "saturation_holder" ].BackgroundColor3 = hsv(h, 1, 1)

                items[ "hue_picker" ].BackgroundColor3 = hsv(h, 1, 1)
                items[ "alpha_picker" ].BackgroundColor3 = hsv(h, 1, 1 - a)
                items[ "satvalpicker" ].BackgroundColor3 = hsv(h, s, v)

                flags[cfg.flag] = {
                    Color = Color;
                    Transparency = a 
                }
                
                local color = items[ "colorpicker" ].BackgroundColor3
                items[ "input" ].Text = string.format("%s, %s, %s, ", library:round(color.R * 255), library:round(color.G * 255), library:round(color.B * 255))
                items[ "input" ].Text ..= library:round(1 - a, 0.01)
                
                cfg.callback(Color, a)
            end
            
            function cfg.update_color() 
                local mouse = uis:GetMouseLocation() 
                local offset = vec2(mouse.X, mouse.Y - gui_offset) 

                if dragging_sat then	
                    s = math.clamp((offset - items["sat"].AbsolutePosition).X / items["sat"].AbsoluteSize.X, 0, 1)
                    v = 1 - math.clamp((offset - items["sat"].AbsolutePosition).Y / items["sat"].AbsoluteSize.Y, 0, 1)
                elseif dragging_hue then
                    h = math.clamp((offset - items[ "hue_gradient" ].AbsolutePosition).X / items[ "hue_gradient" ].AbsoluteSize.X, 0, 1)
                elseif dragging_alpha then
                    a = 1 - math.clamp((offset - items[ "alpha_gradient" ].AbsolutePosition).X / items[ "alpha_gradient" ].AbsoluteSize.X, 0, 1)
                end

                cfg.set()
            end

            items[ "colorpicker" ].InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                    cfg.open = not cfg.open 

                    cfg.set_visible(cfg.open)   
                end          
            end)

            uis.InputChanged:Connect(function(input)
                if (dragging_sat or dragging_hue or dragging_alpha) and input.UserInputType == Enum.UserInputType.Touch then
                    cfg.update_color() 
                end
            end)

            library:connection(uis.InputEnded, function(input)
                if input.UserInputType == Enum.UserInputType.Touch then
                    dragging_sat = false
                    dragging_hue = false
                    dragging_alpha = false
                end
            end)    

            items[ "alpha_gradient" ].InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                dragging_alpha = true 
            end)
            
            items[ "hue_gradient" ].InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                dragging_hue = true 
            end)
            
            items[ "sat" ].InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                dragging_sat = true  
            end)

            items[ "input" ].FocusLost:Connect(function()
                local text = items[ "input" ].Text
                local r, g, b, a = library:convert(text)
                
                if r and g and b and a then 
                    cfg.set(rgb(r, g, b), 1 - a)
                end 
            end)

            items[ "input" ].Focused:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(255, 0, 0)})
            end)

            items[ "input" ].FocusLost:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(72, 72, 72)})
            end)
            
            cfg.set(cfg.color, cfg.alpha)
            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end 

        function library:textbox(options) 
            local cfg = {
                name = options.name or "TextBox",
                placeholder = options.placeholder or options.placeholdertext or options.holder or options.holdertext or "type here...",
                default = options.default or "",
                flag = options.flag or library:next_flag(),
                callback = options.callback or function() end,
                visible = options.visible or true,
                items = {};
            }

            flags[cfg.flag] = cfg.default

            local items = cfg.items; do 
                items[ "textbox" ] = library:create( "TextButton" , {
                    LayoutOrder = -1;
                    FontFace = fonts.font;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "textbox" ];
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 16;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "name" ];
                    PaddingRight = dim(0, 5);
                    PaddingLeft = dim(0, 5)
                });
                
                items[ "right_components" ] = library:create( "Frame" , {
                    Parent = items[ "textbox" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 4, 0, 19);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, 0, 0, 12);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "right_components" ];
                    Padding = dim(0, 7);
                    SortOrder = Enum.SortOrder.LayoutOrder;
                    FillDirection = Enum.FillDirection.Horizontal
                });
                
                items[ "input" ] = library:create( "TextBox" , {
                    FontFace = fonts.font;
                    Text = "";
                    Parent = items[ "right_components" ];
                    Name = "\0";
                    TextTruncate = Enum.TextTruncate.AtEnd;
                    BorderSizePixel = 0;
                    PlaceholderColor3 = rgb(255, 255, 255);
                    CursorPosition = -1;
                    ClearTextOnFocus = false;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255);
                    TextColor3 = rgb(72, 72, 72);
                    BorderColor3 = rgb(0, 0, 0);
                    Position = dim2(1, 0, 0, 0);
                    Size = dim2(1, -4, 0, 30);
                    BackgroundColor3 = rgb(33, 33, 35)
                }); 

                library:create( "UICorner" , {
                    Parent = items[ "input" ];
                    CornerRadius = dim(0, 3)
                });                
                
                library:create( "UIPadding" , {
                    Parent = items[ "right_components" ];
                    PaddingTop = dim(0, 4);
                    PaddingRight = dim(0, 4)
                });
            end 
            
            function cfg.set(text) 
                flags[cfg.flag] = text

                items[ "input" ].Text = text

                cfg.callback(text)
            end 
            
            items[ "input" ]:GetPropertyChangedSignal("Text"):Connect(function()
                cfg.set(items[ "input" ].Text) 
            end)

            items[ "input" ].Focused:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(255, 0, 0)})
            end)

            items[ "input" ].FocusLost:Connect(function()
                library:tween(items[ "input" ], {TextColor3 = rgb(72, 72, 72)})
            end)
                
            if cfg.default then 
                cfg.set(cfg.default) 
            end

            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end

        function library:keybind(options) 
            local cfg = {
                flag = options.flag or library:next_flag(),
                callback = options.callback or function() end,
                name = options.name or nil, 
                ignore_key = options.ignore or false, 

                key = options.key or nil, 
                mode = options.mode or "Toggle",
                active = options.default or false, 

                open = false,
                binding = nil, 

                hold_instances = {},
                items = {};
            }

            flags[cfg.flag] = {
                mode = cfg.mode,
                key = cfg.key, 
                active = cfg.active
            }

            local items = cfg.items; do 
                -- Component
                    items[ "keybind_element" ] = library:create( "TextButton" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = self.items[ "elements" ];
                        Name = "\0";
                        BackgroundTransparency = 1;
                        Size = dim2(1, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.Y;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    items[ "name" ] = library:create( "TextLabel" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = cfg.name;
                        Parent = items[ "keybind_element" ];
                        Name = "\0";
                        Size = dim2(1, 0, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 16;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "name" ];
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });
                    
                    items[ "right_components" ] = library:create( "Frame" , {
                        Parent = items[ "keybind_element" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Size = dim2(0, 0, 1, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIListLayout" , {
                        FillDirection = Enum.FillDirection.Horizontal;
                        HorizontalAlignment = Enum.HorizontalAlignment.Right;
                        Parent = items[ "right_components" ];
                        Padding = dim(0, 7);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    items[ "keybind_holder" ] = library:create( "TextButton" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        Parent = items[ "right_components" ];
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Size = dim2(0, 0, 0, 16);
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.X;
                        TextSize = 14;
                        BackgroundColor3 = rgb(33, 33, 35)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "keybind_holder" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    items[ "key" ] = library:create( "TextLabel" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(86, 86, 87);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "LSHIFT";
                        Parent = items[ "keybind_holder" ];
                        Name = "\0";
                        Size = dim2(1, -12, 0, 0);
                        BackgroundTransparency = 1;
                        TextXAlignment = Enum.TextXAlignment.Left;
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.XY;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UIPadding" , {
                        Parent = items[ "key" ];
                        PaddingTop = dim(0, 1);
                        PaddingRight = dim(0, 5);
                        PaddingLeft = dim(0, 5)
                    });                                  
                -- 
                
                -- Mode Holder
                    items[ "dropdown" ] = library:create( "Frame" , {
                        BorderColor3 = rgb(0, 0, 0);
                        Parent = library.items;
                        Name = "\0";
                        BackgroundTransparency = 1;
                        Position = dim2(0, 0, 0, 0);
                        Size = dim2(0, 0, 0, 0);
                        BorderSizePixel = 0;
                        AutomaticSize = Enum.AutomaticSize.X;
                        BackgroundColor3 = rgb(0, 0, 0)
                    });
                    
                    items[ "inline" ] = library:create( "Frame" , {
                        Parent = items[ "dropdown" ];
                        Size = dim2(1, 0, 1, 0);
                        Name = "\0";
                        ClipsDescendants = true;
                        BorderColor3 = rgb(0, 0, 0);
                        BorderSizePixel = 0;
                        BackgroundColor3 = rgb(22, 22, 24)
                    });
                    
                    library:create( "UIPadding" , {
                        PaddingBottom = dim(0, 6);
                        PaddingTop = dim(0, 3);
                        PaddingLeft = dim(0, 3);
                        Parent = items[ "inline" ]
                    });
                    
                    library:create( "UIListLayout" , {
                        Parent = items[ "inline" ];
                        Padding = dim(0, 5);
                        SortOrder = Enum.SortOrder.LayoutOrder
                    });
                    
                    library:create( "UICorner" , {
                        Parent = items[ "inline" ];
                        CornerRadius = dim(0, 4)
                    });
                    
                    local options = {"Hold", "Toggle", "Always"}
                    
                    cfg.y_size = 20
                    for _, option in options do                        
                        local name = library:create( "TextButton" , {
                            FontFace = fonts.font;
                            TextColor3 = rgb(255, 0, 0);
                            BorderColor3 = rgb(0, 0, 0);
                            Text = option;
                            Parent = items[ "inline" ];
                            Name = "\0";
                            Size = dim2(0, 0, 0, 0);
                            BackgroundTransparency = 1;
                            TextXAlignment = Enum.TextXAlignment.Left;
                            BorderSizePixel = 0;
                            AutomaticSize = Enum.AutomaticSize.XY;
                            TextSize = 14;
                            BackgroundColor3 = rgb(255, 255, 255)
                        }); cfg.hold_instances[option] = name
                        library:apply_theme(name, "accent", "TextColor3")
                        
                        cfg.y_size += name.AbsoluteSize.Y

                        library:create( "UIPadding" , {
                            Parent = name;
                            PaddingTop = dim(0, 1);
                            PaddingRight = dim(0, 5);
                            PaddingLeft = dim(0, 5)
                        });

                        name.InputBegan:Connect(function(input)
                            if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                                cfg.set(option)
                                cfg.set_visible(false)
                                cfg.open = false
                            end 
                        end)
                    end
                -- 
            end 
            
            function cfg.modify_mode_color(path) -- ts so frikin tuff 💀
                for _, v in cfg.hold_instances do 
                    v.TextColor3 = rgb(72, 72, 72)
                end 

                cfg.hold_instances[path].TextColor3 = themes.preset.accent
            end

            function cfg.set_mode(mode) 
                cfg.mode = mode 

                if mode == "Always" then
                    cfg.set(true)
                elseif mode == "Hold" then
                    cfg.set(false)
                end

                flags[cfg.flag]["mode"] = mode
                cfg.modify_mode_color(mode)
            end 

            function cfg.set(input)
                if type(input) == "boolean" then 
                    cfg.active = input

                    if cfg.mode == "Always" then 
                        cfg.active = true
                    end
                elseif tostring(input):find("Enum") then 
                    input = input.Name == "Escape" and "NONE" or input
                    
                    cfg.key = input or "NONE"	
                elseif find({"Toggle", "Hold", "Always"}, input) then 
                    if input == "Always" then 
                        cfg.active = true 
                    end 

                    cfg.mode = input
                    cfg.set_mode(cfg.mode) 
                elseif type(input) == "table" then 
                    input.key = type(input.key) == "string" and input.key ~= "NONE" and library:convert_enum(input.key) or input.key
                    input.key = input.key == Enum.KeyCode.Escape and "NONE" or input.key

                    cfg.key = input.key or "NONE"
                    cfg.mode = input.mode or "Toggle"

                    if input.active then
                        cfg.active = input.active
                    end

                    cfg.set_mode(cfg.mode) 
                end 

                cfg.callback(cfg.active)

                local text = tostring(cfg.key) ~= "Enums" and (keys[cfg.key] or tostring(cfg.key):gsub("Enum.", "")) or nil
                local __text = text and (tostring(text):gsub("KeyCode.", ""):gsub("UserInputType.", ""))
                
                items[ "key" ].Text = __text

                flags[cfg.flag] = {
                    mode = cfg.mode,
                    key = cfg.key, 
                    active = cfg.active
                }
            end

            function cfg.set_visible(bool)
                local size = bool and cfg.y_size or 0
                library:tween(items[ "dropdown" ], {Size = dim_offset(items[ "keybind_holder" ].AbsoluteSize.X, size)})

                items[ "dropdown" ].Position = dim_offset(items[ "keybind_holder" ].AbsolutePosition.X, items[ "keybind_holder" ].AbsolutePosition.Y + items[ "keybind_holder" ].AbsoluteSize.Y + 60)
            end
        
            items[ "keybind_holder" ].InputBegan:Connect(function(Input)
                            if Input.UserInputType ~= Enum.UserInputType.Touch then return end
                task.wait()
                items[ "key" ].Text = "..."	

                cfg.binding = library:connection(uis.InputBegan, function(keycode, game_event)  
                    cfg.set(keycode.KeyCode ~= Enum.KeyCode.Unknown and keycode.KeyCode or keycode.UserInputType)
                    
                    cfg.binding:Disconnect() 
                    cfg.binding = nil
                end)
            end)

            items[ "keybind_holder" ].MouseButton2Down:Connect(function()
                cfg.open = not cfg.open 

                cfg.set_visible(cfg.open)
            end)

            library:connection(uis.InputBegan, function(input, game_event) 
                if not game_event then
                    local selected_key = input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode or input.UserInputType

                    if selected_key == cfg.key then 
                        if cfg.mode == "Toggle" then 
                            cfg.active = not cfg.active
                            cfg.set(cfg.active)
                        elseif cfg.mode == "Hold" then 
                            cfg.set(true)
                        end
                    end
                end
            end)    

            library:connection(uis.InputEnded, function(input, game_event) 
                if game_event then 
                    return 
                end 

                local selected_key = input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode or input.UserInputType
    
                if selected_key == cfg.key then
                    if cfg.mode == "Hold" then 
                        cfg.set(false)
                    end
                end
            end)
            
            cfg.set({mode = cfg.mode, active = cfg.active, key = cfg.key})           
            config_flags[cfg.flag] = cfg.set

            return setmetatable(cfg, library)
        end

        function library:button(options) 
            local cfg = {
                name = options.name or "TextBox",
                callback = options.callback or function() end,
                items = {};
            }
            
            local items = cfg.items; do 
                items[ "button_element" ] = library:create( "Frame" , {
                    Parent = self.items[ "elements" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                items[ "button" ] = library:create( "TextButton" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = "";
                    AutoButtonColor = false;
                    AnchorPoint = vec2(1, 0);
                    Parent = items[ "button_element" ];
                    Name = "\0";
                    Position = dim2(1, -4, 0, 0);
                    Size = dim2(1, -8, 0, 30);
                    BorderSizePixel = 0;
                    TextSize = 14;
                    BackgroundColor3 = rgb(33, 33, 35)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "button" ];
                    CornerRadius = dim(0, 3)
                });
                
                items[ "name" ] = library:create( "TextLabel" , {
                    FontFace = fonts.small;
                    TextColor3 = rgb(255, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "button" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Size = dim2(1, 0, 1, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                }); library:apply_theme(items[ "name" ], "accent", "BackgroundColor3");                            
            end 

            items[ "button" ].InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                    cfg.callback()

                    items[ "name" ].TextColor3 = themes.preset.accent 
                    library:tween(items[ "name" ], {TextColor3 = rgb(255, 0, 0)})
                end
            end)
            
            return setmetatable(cfg, library)
        end 

        function library:settings(options)  
            local cfg = {
                open = false; 
                items = {}; 
                sanity = true; -- made this for my own sanity.
            }

            local items = cfg.items; do 
                items[ "outline" ] = library:create( "Frame" , {
                    Name = "\0";
                    Visible = true;
                    Parent = library[ "items" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 0, 0);
                    ClipsDescendants = true;
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(25, 25, 29)
                });
                
                library:create( "UIScale" , {
                    Parent = items[ "outline" ];
                    Scale = scale;
                });

                items[ "inline" ] = library:create( "Frame" , {
                    Parent = items[ "outline" ];
                    Name = "\0";
                    Position = dim2(0, 1, 0, 1);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(1, -2, 1, -2);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(22, 22, 24)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "inline" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "elements" ] = library:create( "Frame" , {
                    BorderColor3 = rgb(0, 0, 0);
                    Parent = items[ "inline" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 10, 0, 10);
                    Size = dim2(1, -20, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "elements" ];
                    Padding = dim(0, 10);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    PaddingBottom = dim(0, 15);
                    Parent = items[ "elements" ]
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "outline" ];
                    CornerRadius = dim(0, 7)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "fade" ];
                    CornerRadius = dim(0, 7)
                });
                
                items[ "tick" ] = library:create( "ImageButton" , {
                    Image = "rbxassetid://128797200442698";
                    Name = "\0";
                    AutoButtonColor = false;
                    Parent = self.items[ "right_components" ];
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 16, 0, 16);
                    BorderSizePixel = 0;
                    BackgroundColor3 = rgb(255, 255, 255)
                });                
            end 

            function cfg.set_visible(bool)                 
                library:tween(items[ "outline" ], {Size = dim_offset(bool and 240 or 0, 0)})
                items[ "outline" ].Position = dim_offset(items[ "tick" ].AbsolutePosition.X, items[ "tick" ].AbsolutePosition.Y + 90)
                library:close_element(cfg)
            end
            
            items[ "tick" ].InputBegan:Connect(function(input)
                if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                    cfg.open = not cfg.open
                    cfg.set_visible(cfg.open)
                end 
            end)

            return setmetatable(cfg, library)
        end 

        function library:list(properties) 
            local cfg = {
                items = {};
                options = properties.options or {"1", "2", "3"};
                flag = properties.flag or library:next_flag();    
                callback = properties.callback or function() end;
                data_store = {};        
                current_element;
            }

            local items = cfg.items; do
                items[ "list" ] = library:create( "Frame" , {
                    Parent = self.items[ "elements" ];
                    BackgroundTransparency = 1;
                    Name = "\0";
                    Size = dim2(1, 0, 0, 0);
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIListLayout" , {
                    Parent = items[ "list" ];
                    Padding = dim(0, 10);
                    SortOrder = Enum.SortOrder.LayoutOrder
                });
                
                library:create( "UIPadding" , {
                    Parent = items[ "list" ];
                    PaddingRight = dim(0, 4);
                    PaddingLeft = dim(0, 4)
                });
            end 

            function cfg.refresh_options(options_to_refresh)
                for _,option in cfg.data_store do 
                    option:Destroy()
                end

                for _, option_data in options_to_refresh do
                    local button = library:create( "TextButton" , {
                        FontFace = fonts.small;
                        TextColor3 = rgb(0, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = "";
                        AutoButtonColor = false;
                        AnchorPoint = vec2(1, 0);
                        Parent = items[ "list" ];
                        Name = "\0";
                        Position = dim2(1, 0, 0, 0);
                        Size = dim2(1, 0, 0, 30);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(33, 33, 35)
                    }); cfg.data_store[#cfg.data_store + 1] = button;

                    local name = library:create( "TextLabel" , {
                        FontFace = fonts.font;
                        TextColor3 = rgb(255, 0, 0);
                        BorderColor3 = rgb(0, 0, 0);
                        Text = option_data;
                        Parent = button;
                        Name = "\0";
                        BackgroundTransparency = 1;
                        TextTruncate = Enum.TextTruncate.AtEnd;
                        Size = dim2(1, 0, 1, 0);
                        BorderSizePixel = 0;
                        TextSize = 14;
                        BackgroundColor3 = rgb(255, 255, 255)
                    });
                    
                    library:create( "UICorner" , {
                        Parent = button;
                        CornerRadius = dim(0, 3)
                    });     

                    button.InputBegan:Connect(function(input)
                        if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.Touch then
                            local current = cfg.current_element 

                            if current and current ~= name then 
                                library:tween(current, {TextColor3 = rgb(255, 0, 0)})
                            end
                            
                            flags[cfg.flag] = option_data
                            cfg.callback(option_data)
                            library:tween(name, {TextColor3 = rgb(255, 0, 0)})
                            cfg.current_element = name
                        end 
                    end)

                    name.MouseEnter:Connect(function()
                        if cfg.current_element == name then 
                            return 
                        end 

                        library:tween(name, {TextColor3 = rgb(140, 140, 140)})
                    end)

                    name.MouseLeave:Connect(function()
                        if cfg.current_element == name then 
                            return 
                        end 

                        library:tween(name, {TextColor3 = rgb(72, 72, 72)})
                    end)
                end
            end

            cfg.refresh_options(cfg.options)

            return setmetatable(cfg, library)
        end 

        function library:init_config(window) 
            local text;
            window:seperator({name = "Settings"})
            local main = window:tab({name = "Configs", tabs = {"Main"}})
            
            local column = main:column({})
            local section = column:section({name = "Configs", size = 1, default = true, icon = "rbxassetid://139628202576511"})
            config_holder = section:list({options = {"Report", "This", "Error", "To", "Finobe"}, callback = function(option)
                if text then 
                    text.set(option)
                end 
            end, flag = "config_name_list"}); library:update_config_list()
            
            local column = main:column({})
            local section = column:section({name = "Settings", side = "right", size = 1, default = true, icon = "rbxassetid://129380150574313"})
            text = section:textbox({name = "Config name:", flag = "config_name_text"})
            section:button({name = "Save", callback = function() writefile(library.directory .. "/configs/" .. flags["config_name_text"] .. ".cfg", library:get_config()) library:update_config_list() notifications:create_notification({name = "Configs", info = "Saved config to:\n" .. flags["config_name_text"] or flags["config_name_text"]}) end}) 
            section:button({name = "Load", callback = function() library:load_config(readfile(library.directory .. "/configs/" .. flags["config_name_text"] .. ".cfg"))  library:update_config_list() notifications:create_notification({name = "Configs", info = "Loaded config:\n" .. flags["config_name_text"]}) end})
            section:button({name = "Delete", callback = function() delfile(library.directory .. "/configs/" .. flags["config_name_text"] .. ".cfg")  library:update_config_list() notifications:create_notification({name = "Configs", info = "Deleted config:\n" .. flags["config_name_text"]}) end})
            section:colorpicker({name = "Menu Accent", callback = function(color, alpha) library:update_theme("accent", color) end, color = themes.preset.accent})
            section:keybind({name = "Menu Bind", callback = function(bool) window.toggle_menu(bool) end, default = true})
        end
    --

    -- Notification Library
        function notifications:refresh_notifs() 
            local offset = 50

            for i, v in notifications.notifs do
                local Position = vec2(20, offset)
                library:tween(v, {Position = dim_offset(Position.X, Position.Y)}, Enum.EasingStyle.Quad, 0.4)
                offset += (v.AbsoluteSize.Y + 10)
            end

            return offset
        end
        
        function notifications:fade(path, is_fading)
            local fading = is_fading and 1 or 0 
            
            library:tween(path, {BackgroundTransparency = fading}, Enum.EasingStyle.Quad, 1)

            for _, instance in path:GetDescendants() do 
                if not instance:IsA("GuiObject") then 
                    if instance:IsA("UIStroke") then
                        library:tween(instance, {Transparency = fading}, Enum.EasingStyle.Quad, 1)
                    end
        
                    continue
                end 
        
                if instance:IsA("TextLabel") then
                    library:tween(instance, {TextTransparency = fading})
                elseif instance:IsA("Frame") then
                    library:tween(instance, {BackgroundTransparency = instance.Transparency and 0.6 and is_fading and 1 or 0.6}, Enum.EasingStyle.Quad, 1)
                end
            end
        end 
        
        function notifications:create_notification(options)
            local cfg = {
                name = options.name or "This is a title!";
                info = options.info or "This is extra info!";
                lifetime = options.lifetime or 3;
                items = {};
                outline;
            }

            local items = cfg.items; do 
                items[ "notification" ] = library:create( "Frame" , {
                    Parent = library[ "items" ];
                    Size = dim2(0, 210, 0, 53);
                    Name = "\0";
                    BorderColor3 = rgb(0, 0, 0);
                    BorderSizePixel = 0;
                    BackgroundTransparency = 1;
                    AnchorPoint = vec2(1, 0);
                    AutomaticSize = Enum.AutomaticSize.Y;
                    BackgroundColor3 = rgb(14, 14, 16)
                });

                library:create( "UIScale" , {
                    Parent = items[ "notification" ];
                    Scale = scale;
                });
                
                library:create( "UIStroke" , {
                    Color = rgb(23, 23, 29);
                    Parent = items[ "notification" ];
                    Transparency = 1;
                    ApplyStrokeMode = Enum.ApplyStrokeMode.Border
                });
                
                items[ "title" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(255, 255, 255);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.name;
                    Parent = items[ "notification" ];
                    Name = "\0";
                    BackgroundTransparency = 1;
                    Position = dim2(0, 7, 0, 6);
                    BorderSizePixel = 0;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "notification" ];
                    CornerRadius = dim(0, 3)
                });
                
                items[ "info" ] = library:create( "TextLabel" , {
                    FontFace = fonts.font;
                    TextColor3 = rgb(145, 145, 145);
                    BorderColor3 = rgb(0, 0, 0);
                    Text = cfg.info;
                    Parent = items[ "notification" ];
                    Name = "\0";
                    Position = dim2(0, 9, 0, 22);
                    BorderSizePixel = 0;
                    BackgroundTransparency = 1;
                    TextXAlignment = Enum.TextXAlignment.Left;
                    TextWrapped = true;
                    AutomaticSize = Enum.AutomaticSize.XY;
                    TextSize = 14;
                    BackgroundColor3 = rgb(255, 255, 255)
                });
                
                library:create( "UIPadding" , {
                    PaddingBottom = dim(0, 17);
                    PaddingRight = dim(0, 8);
                    Parent = items[ "info" ]
                });
                
                items[ "bar" ] = library:create( "Frame" , {
                    AnchorPoint = vec2(0, 1);
                    Parent = items[ "notification" ];
                    Name = "\0";
                    Position = dim2(0, 8, 1, -6);
                    BorderColor3 = rgb(0, 0, 0);
                    Size = dim2(0, 0, 0, 5);
                    BackgroundTransparency = 1;
                    BorderSizePixel = 0;
                    BackgroundColor3 = themes.preset.accent
                });
                
                library:create( "UICorner" , {
                    Parent = items[ "bar" ];
                    CornerRadius = dim(0, 999)
                });
                
                library:create( "UIPadding" , {
                    PaddingRight = dim(0, 8);
                    Parent = items[ "notification" ]
                });
            end
            
            local index = #notifications.notifs + 1
            notifications.notifs[index] = items[ "notification" ]

            notifications:fade(items[ "notification" ], false)
            
            local offset = notifications:refresh_notifs()

            items[ "notification" ].Position = dim_offset(20, offset)

            library:tween(items[ "notification" ], {AnchorPoint = vec2(0, 0)}, Enum.EasingStyle.Quad, 1)
            library:tween(items[ "bar" ], {Size = dim2(1, -8, 0, 5)}, Enum.EasingStyle.Quad, cfg.lifetime)

            task.spawn(function()
                task.wait(cfg.lifetime)
                
                notifications.notifs[index] = nil
                
                notifications:fade(items[ "notification" ], true)
                
                library:tween(items[ "notification" ], {AnchorPoint = vec2(1, 0)}, Enum.EasingStyle.Quad, 1)

                task.wait(1)
        
                items[ "notification" ]:Destroy() 
            end)
        end
    --end)()

    end
-- \\ Script

local window = library:window({name = "Scorpio.Hub", suffix = "", gameInfo = string.format("Scorpio.Hub : %s", Game_Name:lower())})

if Game_Name == "The Bronx" then
    window:seperator({name = "Game"}) do
        local LocalPlayerTab, PlayersTab, PurchaseGunTab, MiscTab, SafeTab = window:tab({name = "Main", tabs = {"Local Player", "Players", "Teleports", "Misc", "Safe"}, icon = GetImage("World.png")}) do
            do -- \\ Safe Tab
                local SafeItemColumn = SafeTab:column({})

                local SafeItemSection = SafeItemColumn:section({name = "Safe Selected Item", side = "left", size = 1, icon = GetImage("Lock.png")})

                local _SafeItem = SafeItemSection:list({flag = "SafeSelectedItem_TheBronx", options = {}, callback = function(state)
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if not state then
                            return
                        end

                        local Safe, OldCFrame = GetWorkingSafe(), LocalPlayer.Character.HumanoidRootPart.CFrame
                        pcall(Teleport, Safe.ChestClicker.CFrame)
                        local Tool = tostring(state)
                        LocalPlayer.Character:WaitForChild"Humanoid":UnequipTools()
                        
                        local ItemSafed = false; local OldBackpackRemoved; OldBackpackRemoved = LocalPlayer.Backpack.ChildRemoved:Connect(function(Child)
                            if tostring(Child) == Tool then
                                ItemSafed = true
                                OldBackpackRemoved:Disconnect()
                            end
                        end)

                        task.delay(3, function()
                            ItemSafed = true
                        end)

                        task.wait(0.5)

                        ReplicatedStorage.Inventory:FireServer("Change", Tool, "Backpack", Safe)

                        repeat task.wait() until ItemSafed == true

                        pcall(Teleport, OldCFrame)

                        library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = `Successfully safed {state}!`,
                            lifetime = 5
                        })
                    end))
                end})

                SafeItemColumn = SafeTab:column({})

                SafeItemSection = SafeItemColumn:section({name = "Take Selected Item", side = "right", size = 1, icon = GetImage("UZI.png")})

                local _TakeItem = SafeItemSection:list({flag = "TakeSelectedItem_TheBronx", options = {}, callback = function(state)
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if not state then
                            return
                        end

                        local Safe, OldCFrame = GetWorkingSafe(), LocalPlayer.Character.HumanoidRootPart.CFrame
                        pcall(Teleport, Safe.ChestClicker.CFrame)

                        local Tool = tostring(state);

                        local ItemSafed = false; local OldBackpackChildAdded; OldBackpackChildAdded = LocalPlayer.Backpack.ChildAdded:Connect(function(Child)
                            if tostring(Child) == Tool then
                                ItemSafed = true
                                OldBackpackChildAdded:Disconnect()
                            end
                        end)

                        task.delay(3, function()
                            ItemSafed = true
                        end)

                        task.wait(0.5)

                        ReplicatedStorage.Inventory:FireServer("Change", Tool, "Inv", Safe)

                        repeat task.wait() until ItemSafed == true

                        pcall(Teleport, OldCFrame)

                        library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = `Successfully took {state} from safe!`,
                            lifetime = 5
                        })
                    end))
                end})

                local Backpack_ChildAdded, Backpack_ChildRemoved

                local ConnectBackpackToRefreshSafeList = LPH_JIT_MAX(function()
                    LocalPlayer:WaitForChild("Backpack")

                    local Refresh = LPH_NO_VIRTUALIZE(function()
                        local Items = {}

                        for Index, Value in LocalPlayer.Backpack:GetChildren() do
                            if Value:IsA("Tool") then
                                table.insert(Items, Value.Name)
                            end
                        end

                        table.sort(Items)

                        _SafeItem.refresh_options(Items)

                        return Items
                    end)

                    task.spawn(Refresh)
                    
                    if Backpack_ChildAdded then
                        Backpack_ChildAdded:Disconnect()
                        Backpack_ChildAdded = nil
                    end
                                    
                    if Backpack_ChildRemoved then
                        Backpack_ChildRemoved:Disconnect()
                        Backpack_ChildRemoved = nil
                    end

                    Backpack_ChildAdded = LocalPlayer.Backpack.ChildAdded:Connect(Refresh)
                    Backpack_ChildRemoved = LocalPlayer.Backpack.ChildRemoved:Connect(Refresh)
                end)

                Players.PlayerRemoving:Connect(LPH_NO_VIRTUALIZE(function(Player)
                    if Player == LocalPlayer then
                        Backpack_ChildAdded:Disconnect(); Backpack_ChildRemoved:Disconnect()
                    end
                end))

                task.spawn(ConnectBackpackToRefreshSafeList)

                LocalPlayer.CharacterAdded:Connect(ConnectBackpackToRefreshSafeList)

                local RefreshTakeItemList = LPH_NO_VIRTUALIZE(function()
                    local Items = {}

                    for Index, Value in LocalPlayer:WaitForChild("InvData"):GetChildren() do
                        table.insert(Items, Value.Name)
                    end

                    table.sort(Items)

                    _TakeItem.refresh_options(Items)

                    return Items
                end)

                task.spawn(RefreshTakeItemList)

                LocalPlayer:WaitForChild("InvData").ChildAdded:Connect(RefreshTakeItemList)
                LocalPlayer:WaitForChild("InvData").ChildRemoved:Connect(RefreshTakeItemList)
            end

            do -- \\ Local Player Tab
                local LocalPlayerColumn = LocalPlayerTab:column({})

                local LocalPlayerModsSection = LocalPlayerColumn:section({name = "Local Player Modifications", side = "left", size = 1.0135})

local InstantInteraction = false
local InstantInteractionConnection = nil

local function enableInstantInteraction()
    for _, v in ipairs(workspace:GetDescendants()) do
        if v:IsA("ProximityPrompt") then
            v.HoldDuration = 0
        end
    end
    
    if InstantInteractionConnection then
        InstantInteractionConnection:Disconnect()
    end
    
    InstantInteractionConnection = workspace.DescendantAdded:Connect(function(v)
        if v:IsA("ProximityPrompt") and InstantInteraction then
            v.HoldDuration = 0
        end
    end)
end

local function disableInstantInteraction()
    if InstantInteractionConnection then
        InstantInteractionConnection:Disconnect()
        InstantInteractionConnection = nil
    end
end

-- Add Instant Interaction toggle
LocalPlayerModsSection:toggle({
    type = "toggle", 
    name = "Instant Interaction", 
    flag = "InstantInteraction_TheBronx", 
    default = false, 
    callback = function(state)
        InstantInteraction = state
        if state then
            enableInstantInteraction()
            library.notifications:create_notification({
                name = "Traphouse 3.0",
                info = "Instant Interaction Enabled - No hold time on prompts",
                lifetime = 3
            })
        else
            disableInstantInteraction()
            library.notifications:create_notification({
                name = "Traphouse 3.0",
                info = "Instant Interaction Disabled",
                lifetime = 3
            })
        end
    end
})

-- INSTANT RESPAWN FUNCTION
local InstantRespawnEnabled = false
local InstantRespawnLoop = nil

local function SetInstantRespawn(state)
    InstantRespawnEnabled = state
    
    if InstantRespawnLoop then
        InstantRespawnLoop:Disconnect()
        InstantRespawnLoop = nil
    end
    
    if state then
        InstantRespawnLoop = game:GetService("RunService").Heartbeat:Connect(function()
            local character = game:GetService("Players").LocalPlayer.Character
            if character and character:FindFirstChild("Humanoid") then
                if character.Humanoid.Health <= 0 then
                    -- Small delay to ensure death is registered
                    task.wait(0.1)
                    pcall(function()
                        game:GetService("ReplicatedStorage"):FindFirstChild("RespawnRE"):FireServer()
                    end)
                end
            end
        end)
    end
end

-- Add Fast Respawn toggle
LocalPlayerModsSection:toggle({
    type = "toggle", 
    name = "Fast Respawn", 
    flag = "FastRespawn_TheBronx", 
    default = false, 
    callback = function(state)
        SetInstantRespawn(state)
        if state then
            library.notifications:create_notification({
                name = "Traphouse 3.0",
                info = "Fast Respawn Enabled - Instant respawn on death",
                lifetime = 3
            })
        else
            library.notifications:create_notification({
                name = "Traphouse 3.0",
                info = "Fast Respawn Disabled",
                lifetime = 3
            })
        end
    end
})

local adminAlertToggle = LocalPlayerModsSection:toggle({
        type = "toggle", 
        name = "Admin Alert", 
        flag = "AdminAlert_TB3", 
        default = false, 
        info = "Notifies when an admin joins the game",
        callback = function(state)
            _G.AdminAlertEnabled = state
        end
    })
    
    -- Admin Alert Function
    local function CheckForAdmins()
        for _, player in ipairs(game.Players:GetPlayers()) do
            for _, child in ipairs(player:GetChildren()) do
                if child.Name:find("_Tracker") then
                    library.notifications:create_notification({
                        name = "Admin Alert",
                        info = "User: " .. player.Name .. " is an Admin! Be Careful!",
                        lifetime = 5
                    })
                    return
                end
            end
        end
    end
    
    -- Admin Alert Loop
    spawn(function()
        while wait(10) do -- Checks every 10 seconds
            if _G.AdminAlertEnabled then
                CheckForAdmins()
            end
        end
    end)

                local __Modifications = {
                    "Infinite Sleep";
                    "Infinite Hunger";
                    "Infinite Stamina";
                    "Instant Interact";
                    "Instant Revive";
                    "Auto Pickup Cash";
                    "Auto Pickup Bags";
                    "Disable Camera Bobbing";
                    --"Disable Cameras";
                    "Disable Blood Effects";
                    "Bypass Locked Cars";
                    "No Jump Cooldown";
                    "No Rent Pay";
                    "No Fall Damage";
                    "No Knockback";
                    "Respawn Where You Died";
                }

                for _, Index in __Modifications do
                    LocalPlayerModsSection:toggle({type = "toggle", name = Index, flag = Index, default = false, callback = function(state)
                        Config.TheBronx.PlayerModifications[Index:gsub(" ", "")] = state
                    end})
                end

                LocalPlayerColumn = LocalPlayerTab:column({})
                local CharacterModsSection = LocalPlayerColumn:section({name = "Character Modifications", side = "right", size = 0.645, icon = GetImage("Wrench.png")})

                CharacterModsSection:toggle({type = "toggle", name = "Modify WalkSpeed", flag = "ModifyWalkSpeed_TheBronx", default = false, callback = function(state)
                    Config.MiscSettings.ModifySpeed.Enabled = state
                end})
                                CharacterModsSection:slider({name = "WalkSpeed Value", flag = "WalkSpeedValue_TheBronx", min = 0, max = 250, default = 50, suffix = "%", callback = function(state)
                    Config.MiscSettings.ModifySpeed.Value = state
                end})

                local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")

local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera

-- CONFIG DEFAULTS
Config = Config or {}
Config.FlyEnabled = Config.FlyEnabled or false
Config.FlySpeed = Config.FlySpeed or 5

local flyEnabled = false
local swimMethod = false
local speedConnection = nil
local CFloop = nil

--------------------------------------------------
-- SPEED HANDLER
--------------------------------------------------
local function handleSpeed()
    if not swimMethod then return end
    
    local character = player.Character
    if not character or not character.Parent then return end
    
    local humanoid = character:FindFirstChildOfClass("Humanoid")
    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not humanoid or not hrp or humanoid.Health <= 0 then return end
    
    humanoid:ChangeState(0)

    if flyEnabled then
        hrp.RotVelocity = Vector3.new(0, 0, 0)
        return
    end
    
    local moveDir = humanoid.MoveDirection
    if moveDir.Magnitude > 0 then
        local worldMoveVec = Vector3.new(moveDir.X, 0, moveDir.Z).Unit * (50 * 16)
        if worldMoveVec.Magnitude == worldMoveVec.Magnitude then 
            hrp.Velocity = Vector3.new(worldMoveVec.X, hrp.Velocity.Y, worldMoveVec.Z)
        end
    else
        hrp.Velocity = Vector3.new(0, hrp.Velocity.Y, 0)
    end
    
    hrp.RotVelocity = Vector3.new(0, 0, 0)
end

--------------------------------------------------
-- CHARACTER SETUP
--------------------------------------------------
local function onCharacterAdded(char)
    if speedConnection then
        speedConnection:Disconnect()
        speedConnection = nil
    end
    
    local success = pcall(function()
        char:WaitForChild("Humanoid", 5)
        char:WaitForChild("HumanoidRootPart", 5)
    end)
    
    if not success then return end
    
    speedConnection = RunService.Stepped:Connect(function()
        local success = pcall(handleSpeed)
        if not success and speedConnection then
            speedConnection:Disconnect()
            speedConnection = nil
        end
    end)
end

if player.Character then
    onCharacterAdded(player.Character)
end
player.CharacterAdded:Connect(onCharacterAdded)

--------------------------------------------------
-- FLY SYSTEM
--------------------------------------------------
local function StartFly()
    if flyEnabled then return end
    flyEnabled = true
    swimMethod = true

    task.wait(0.2)
    
    local character = player.Character or player.CharacterAdded:Wait()
    if not character then return end

    local humanoid = character:FindFirstChildOfClass("Humanoid")
    local head = character:FindFirstChild("Head")
    if not humanoid or not head then return end

    humanoid.PlatformStand = true
    head.Anchored = true

    if CFloop then 
        CFloop:Disconnect() 
    end

    CFloop = RunService.Heartbeat:Connect(function(deltaTime)
        if not flyEnabled or not character or not character.Parent then
            if CFloop then CFloop:Disconnect() end
            return
        end
        
        local moveDir = humanoid.MoveDirection
        local speed = (Config.FlySpeed or 5) * deltaTime * 100
        
        local camCF = camera.CFrame
        local _, yRot, _ = camCF:ToOrientation()
        local uprightRot = CFrame.Angles(0, yRot, 0)

        local flatCamCF = CFrame.new(camCF.Position) * uprightRot
        local localInput = flatCamCF:VectorToObjectSpace(moveDir * speed)
        local worldMovement = camCF:VectorToWorldSpace(localInput)

        head.CFrame = CFrame.new(head.Position + worldMovement) * uprightRot
        camera.CameraSubject = head
    end)
end

local function StopFly()
    if not flyEnabled then return end
    flyEnabled = false
    swimMethod = false

    if CFloop then
        CFloop:Disconnect()
        CFloop = nil
    end
    
    local character = player.Character
    if character then
        local humanoid = character:FindFirstChildOfClass("Humanoid")
        local head = character:FindFirstChild("Head")
        
        if humanoid then
            humanoid.PlatformStand = false
            humanoid:ChangeState(Enum.HumanoidStateType.Running)
        end
        
        if head then
            head.Anchored = false
        end
    end
end

--------------------------------------------------
-- UI
--------------------------------------------------

-- TOGGLE
CharacterModsSection:toggle({
    type = "toggle",
    name = "Fly",
    flag = "FlyEnabled",
    default = false,
    callback = function(state)
        Config.FlyEnabled = state

        if state then
            StartFly()
        else
            StopFly()
        end
    end
})

-- SLIDER
CharacterModsSection:slider({
    name = "Fly Speed",
    flag = "FlySpeed",
    min = 1,
    max = 20,
    interval = 1,
    default = 5,
    suffix = "",
    callback = function(v)
        Config.FlySpeed = v
    end,
})
-- SERVICES
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")

-- VARIABLES (NO CONFIG)
carFlyEnabled = false
carFlySpeed = 120

local UIS = UserInputService
local LP = Players.LocalPlayer
local hum, seat, car, root
local bv, bg
local lastCar

-- =========================
-- MOBILE CONTROLS (RED)
-- =========================

local flyMobile = {fwd=false, back=false, left=false, right=false}
local flyMobileGui = nil

local function destroyFlyMobileGui()
    if flyMobileGui then
        pcall(function() flyMobileGui:Destroy() end)
        flyMobileGui = nil
    end
    for k in pairs(flyMobile) do flyMobile[k] = false end
end

local function buildFlyMobileGui()
    destroyFlyMobileGui()
    if not UIS.TouchEnabled then return end

    flyMobileGui = Instance.new("ScreenGui")
    flyMobileGui.Name = "FlyMobileDpad"
    flyMobileGui.ResetOnSpawn = false
    flyMobileGui.DisplayOrder = 9997
    flyMobileGui.IgnoreGuiInset = true
    flyMobileGui.Parent = CoreGui

    local function Btn(label, xScale, yOffset)
        local b = Instance.new("TextButton", flyMobileGui)
        b.AnchorPoint = Vector2.new(0.5, 1)
        b.Size = UDim2.new(0, 30, 0, 30)
        b.Position = UDim2.new(xScale, 0, 1, yOffset)
        b.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
        b.BackgroundTransparency = 0.2
        b.Text = label
        b.TextColor3 = Color3.fromRGB(0, 0, 0)
        b.TextSize = 28
        b.Font = Enum.Font.GothamBold
        b.BorderSizePixel = 0
        b.ZIndex = 10
        b.AutoButtonColor = false
        Instance.new("UICorner", b).CornerRadius = UDim.new(0.3, 0)
        return b
    end

    local fwdBtn  = Btn("▲", 0.15, -240)
    local backBtn = Btn("▼", 0.15, -100)
    local leftBtn = Btn("◄", 0.08, -170)
    local rightBtn = Btn("►", 0.22, -170)

    local function wire(btn, key)
        btn.InputBegan:Connect(function(i)
            if i.UserInputType == Enum.UserInputType.Touch then
                flyMobile[key] = true
                btn.BackgroundTransparency = 0.05
            end
        end)
        btn.InputEnded:Connect(function(i)
            if i.UserInputType == Enum.UserInputType.Touch then
                flyMobile[key] = false
                btn.BackgroundTransparency = 0.2
            end
        end)
    end

    wire(fwdBtn, "fwd")
    wire(backBtn, "back")
    wire(leftBtn, "left")
    wire(rightBtn, "right")
end

buildFlyMobileGui()

-- =========================
-- CLEANUP
-- =========================

local function CarFlyCleanup()
    if bv then bv:Destroy() bv = nil end
    if bg then bg:Destroy() bg = nil end
end

-- =========================
-- SETUP
-- =========================

local function CarFlySetup()
    CarFlyCleanup()
    if not carFlyEnabled then return end

    local char = LP.Character
    if not char then return end

    hum = char:FindFirstChildWhichIsA("Humanoid")
    if not hum then return end

    seat = hum.SeatPart
    if not seat or not seat:IsA("VehicleSeat") then return end

    car = seat.Parent
    if not car then return end

    root = car.PrimaryPart
    if not root then return end

    lastCar = car

    for _, v in ipairs(car:GetChildren()) do
        if v:IsA("BasePart") and not v.Name:lower():find("wheel") then
            v.CanCollide = false
        end
    end

    bv = Instance.new("BodyVelocity")
    bv.MaxForce = Vector3.new(1e9, 1e9, 1e9)
    bv.Velocity = Vector3.zero
    bv.Parent = root

    bg = Instance.new("BodyGyro")
    bg.MaxTorque = Vector3.new(1e9, 1e9, 1e9)
    bg.P = 25000
    bg.D = 1500
    bg.CFrame = root.CFrame
    bg.Parent = root
end

-- =========================
-- SEAT LOOP
-- =========================

task.spawn(function()
    while true do
        task.wait(0.2)

        local char = LP.Character
        if not char then continue end

        local h = char:FindFirstChildWhichIsA("Humanoid")
        if not h then continue end

        local currentSeat = h.SeatPart

        if currentSeat and currentSeat:IsA("VehicleSeat") then
            if currentSeat.Parent ~= lastCar then
                CarFlySetup()
            end
        else
            if lastCar then
                CarFlyCleanup()
                lastCar = nil
            end
        end
    end
end)

-- =========================
-- MOVEMENT (UNCHANGED + MOBILE ADDED)
-- =========================

RunService.RenderStepped:Connect(function()
    if not carFlyEnabled then
        CarFlyCleanup()
        return
    end

    if not hum or hum.SeatPart ~= seat then return end
    if not root or not bv or not bg then CarFlySetup() return end

    local speed = carFlySpeed or 120
    local cam = workspace.CurrentCamera
    local camCF = cam.CFrame
    local camLook = camCF.LookVector
    local camRight = camCF.RightVector

    if not UIS.TouchEnabled then
        if UIS:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
            bg.CFrame = CFrame.lookAt(root.Position, root.Position + camLook)
        end

        local move = Vector3.zero
        if UIS:IsKeyDown(Enum.KeyCode.W) then move += camLook end
        if UIS:IsKeyDown(Enum.KeyCode.S) then move -= camLook end
        if UIS:IsKeyDown(Enum.KeyCode.A) then move -= camRight end
        if UIS:IsKeyDown(Enum.KeyCode.D) then move += camRight end

        if move.Magnitude > 0 then
            bv.Velocity = move.Unit * speed
        else
            bv.Velocity = Vector3.zero
        end

    else
        bg.CFrame = CFrame.lookAt(root.Position, root.Position + camLook)

        local move = Vector3.zero
        if flyMobile.fwd then move += camLook end
        if flyMobile.back then move -= camLook end
        if flyMobile.left then move -= camRight end
        if flyMobile.right then move += camRight end

        local vertical = camLook.Y
        local velocity =
            (move * speed) +
            (Vector3.new(0, vertical, 0) * speed)

        if velocity.Magnitude > 0 then
            bv.Velocity = velocity
        else
            bv.Velocity = Vector3.zero
        end
    end
end)


CharacterModsSection:toggle({
	name = "Car Fly",
        type = "toggle",
	default = carFlyEnabled,
	callback = function(v)
		carFlyEnabled = v
	end,
})

CharacterModsSection:slider({
	name = "Speed",
	min = 20,
	max = 300,
	interval = 1,
	default = carFlySpeed,
	callback = function(v)
		carFlySpeed = v
	end,
})
local function GetNearestCar(hrp)
    local CivCars = workspace:FindFirstChild("CivCars")
    if not CivCars then return nil end

    local nearestCar = nil
    local nearestDist = math.huge

    for _, car in ipairs(CivCars:GetChildren()) do
        if not car:IsA("Model") then continue end

        local seat = car:FindFirstChild("DriveSeat")
        if not seat then continue end

        if seat.Occupant then continue end

        if not car.PrimaryPart then
            local body = car:FindFirstChild("Body")
            if body and body:FindFirstChild("#Weight") then
                car.PrimaryPart = body["#Weight"]
            else
                car.PrimaryPart = seat
            end
        end

        if not car.PrimaryPart then continue end

        local dist = (car.PrimaryPart.Position - hrp.Position).Magnitude
        if dist < nearestDist then
            nearestDist = dist
            nearestCar = car
        end
    end

    return nearestCar
end


CharacterModsSection:button({
    name = "Bring Nearest Car",
    callback = function()
        local char = LP.Character or LP.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart", 3)
        local hum = char:FindFirstChildWhichIsA("Humanoid")
        if not hrp or not hum then return end

        local car = GetNearestCar(hrp)
        if not car then return end

        local seat = car:FindFirstChild("DriveSeat") or car:FindFirstChildWhichIsA("VehicleSeat")
        if not seat then return end

        if not car.PrimaryPart then
            car.PrimaryPart = car:FindFirstChildWhichIsA("BasePart")
            if not car.PrimaryPart then return end
        end

        car:SetPrimaryPartCFrame(
            hrp.CFrame * CFrame.new(0, 0, -6) * CFrame.Angles(0, math.rad(180), 0)
        )

        -- 🔧 more consistent sit
        task.wait(0.1)

        local rootPart = char:FindFirstChild("HumanoidRootPart")
        if rootPart then
            rootPart.CFrame = seat.CFrame + Vector3.new(0, 2, 0)
        end

        task.wait(0.1)
        seat:Sit(hum)
    end
})
                CharacterModsSection:toggle({type = "toggle", name = "Modify JumpPower", flag = "ModifyJumpPower_TheBronx", default = false, callback = function(state)
                    Config.MiscSettings.ModifyJump.Enabled = state
                end})

                CharacterModsSection:slider({name = "JumpPower Value", flag = "JumpPowerValue_TheBronx", min = 0, max = 250, default = 7, suffix = "%", callback = function(state)
                    Config.MiscSettings.ModifyJump.Value = state
                end})
                CharacterModsSection:toggle({type = "toggle", name = "Click Teleport", flag = "ClickTeleport_TheBronx", default = false})

                local _NoClipToggle = CharacterModsSection:toggle({type = "toggle", name = "No Clip", flag = "NoClip_TheBronx", seperator = true, default = false, callback = function(state)
                    if state then
                        RunService:BindToRenderStep("NOCLIP", 1, LPH_NO_VIRTUALIZE(function()
                            if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                                if LocalPlayer.Character.Humanoid.Health ~= 0 then
                                    for Index, Value in LocalPlayer.Character:GetDescendants() do
                                        if Collide_Data[Value.Name] then
                                            pcall(function()
                                                Value.CanCollide = false
                                            end)
                                        end
                                    end
                                else
                                    for Index, Value in LocalPlayer.Character:GetDescendants() do
                                        if Collide_Data[Value.Name] then
                                            pcall(function()
                                                Value.CanCollide = true
                                            end)
                                        end
                                    end
                                end
                            end
                        end))
                    else
                        RunService:UnbindFromRenderStep("NOCLIP")

                        for Index, Value in LocalPlayer.Character:GetDescendants() do
                            if Collide_Data[Value.Name] then
                                pcall(function()
                                    Value.CanCollide = true
                                end)
                            end
                        end
                    end
                end})

--// Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")

local LocalPlayer = Players.LocalPlayer

--// Remotes
local DropItemRemote = ReplicatedStorage:WaitForChild("DropItemRemote")
local DropRemote = ReplicatedStorage:WaitForChild("DropRemote")

--// State
local isProcessing = false
local targetItemName = nil

--// Blacklist
local BlacklistedTools = {
    ["Phone"] = true,
    ["Fist"] = true
}

--// Equip
local function EquipNext(itemName)
    local backpack = LocalPlayer:FindFirstChild("Backpack")
    if not backpack then return false end

    for _, tool in ipairs(backpack:GetChildren()) do
        if tool:IsA("Tool") and tool.Name == itemName then
            local char = LocalPlayer.Character
            if char and char:FindFirstChild("Humanoid") then
                char.Humanoid:EquipTool(tool)
                return true
            end
        end
    end
    return false
end

--// Main
local function Process()
    if isProcessing then return end
    isProcessing = true

    local char = LocalPlayer.Character
    if not char then
        isProcessing = false
        return
    end

    local tool = char:FindFirstChildOfClass("Tool")
    if not tool then
        targetItemName = nil
        isProcessing = false
        return
    end

    if not targetItemName then
        if BlacklistedTools[tool.Name] then
            isProcessing = false
            return
        end
        targetItemName = tool.Name
    end

    if tool.Name ~= targetItemName then
        isProcessing = false
        return
    end

    --// Auto Drop
    if Config.TheBronx.autodrop then
        DropItemRemote:FireServer(tool)
    end

    --// Auto Pass
    if Config.TheBronx.autopass then
        DropRemote:FireServer("Drop")
    end

    task.wait(0.75)

    if not EquipNext(targetItemName) then
        targetItemName = nil
    end

    isProcessing = false
end

--// Loop
RunService.Heartbeat:Connect(function()
    if not Config.TheBronx.autodrop and not Config.TheBronx.autopass then
        targetItemName = nil
        return
    end

    Process()
end)

--// UI TOGGLES (YOUR STYLE)

CharacterModsSection:toggle({
    type = "toggle", 
    name = "Auto Drop", 
    flag = "AutoDrop", 
    default = false, 
    callback = function(state)
        Config.TheBronx.autodrop = state
    end
})

CharacterModsSection:toggle({
    type = "toggle", 
    name = "Auto Pass", 
    flag = "AutoPass", 
    default = false, 
    callback = function(state)
        Config.TheBronx.autopass = state
    end
})




local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer

local ExemptItems = {"Phone", "Fist", "Shiesty", "Bandage", "Lemonade", "Car keys"}

local AntiLoseToggle = false

CharacterModsSection:toggle({
    name = "Anti Lose Items",
        type = "toggle", 
    callback = function(state)
        AntiLoseToggle = state

        if not state then return end

        task.spawn(function()

            local function MarketHasItem(toolName)
                local market = ReplicatedStorage:FindFirstChild("MarketItems")
                if not market then return false end
                for _, item in ipairs(market:GetChildren()) do
                    if item.Name == toolName and item:FindFirstChild("owner") and item.owner.Value == LocalPlayer.Name then
                        return true
                    end
                end
                return false
            end

            local function BackpackHasItem(toolName)
                for _, tool in ipairs(LocalPlayer.Backpack:GetChildren()) do
                    if tool:IsA("Tool") and tool.Name == toolName then
                        return true
                    end
                end
                return false
            end

            local function ForcePutToMarket(toolName)
                local endTime = os.clock() + 12 

                while os.clock() < endTime and AntiLoseToggle do
                    if MarketHasItem(toolName) then
                        return true
                    end

                    pcall(function()
                        ReplicatedStorage.ListWeaponRemote:FireServer(toolName, 999999)
                    end)

                    task.wait(0.15)
                end

                return false
            end

            local function ForceRetrieveFromMarket(toolName)
                local market = ReplicatedStorage:WaitForChild("MarketItems", 10)
                if not market then return false end

                local endTime = os.clock() + 12

                while os.clock() < endTime and AntiLoseToggle do
                    for _, item in ipairs(market:GetChildren()) do
                        if item.Name == toolName
                            and item:FindFirstChild("owner")
                            and item.owner.Value == LocalPlayer.Name
                            and item:GetAttribute("SpecialId") then

                            local special = item:GetAttribute("SpecialId")

                            pcall(function()
                                ReplicatedStorage.BuyItemRemote:FireServer(toolName, "Remove", special)
                            end)

                            task.wait(0.2)

                            pcall(function()
                                ReplicatedStorage.BackpackRemote:InvokeServer("Grab", toolName)
                            end)

                            task.wait(0.2)

                            if BackpackHasItem(toolName) then
                                return true
                            end
                        end
                    end

                    task.wait(0.2)
                end

                return false
            end

            local function SaveOnDeath(char)
                local hum = char:WaitForChild("Humanoid")

                hum.Died:Connect(function()
                    if not AntiLoseToggle then return end

                    task.wait(0.25)

                    for _, tool in ipairs(LocalPlayer.Backpack:GetChildren()) do
                        if tool:IsA("Tool") and not table.find(ExemptItems, tool.Name) then
                            ForcePutToMarket(tool.Name)
                        end
                    end
                end)
            end

            local function RetrieveAfterSpawn()
                task.delay(2.2, function()
                    if not AntiLoseToggle then return end

                    local market = ReplicatedStorage:FindFirstChild("MarketItems")
                    if not market then return end

                    for _, item in ipairs(market:GetChildren()) do
                        if item:FindFirstChild("owner")
                            and item.owner.Value == LocalPlayer.Name then

                            ForceRetrieveFromMarket(item.Name)
                        end
                    end
                end)
            end

            local function SetupCharacter(char)
                SaveOnDeath(char)
                RetrieveAfterSpawn()
            end

            LocalPlayer.CharacterAdded:Connect(SetupCharacter)

            if LocalPlayer.Character then
                SetupCharacter(LocalPlayer.Character)
            end

        end)
    end
})



                CharacterModsSection:keybind({name = "Click Teleport Key", flag = "ClickTeleportKey_TheBronx", key = Enum.KeyCode.LeftControl, mode = "Hold", callback = function(state)
                    Config.TheBronx.ClickTeleportActive = state
                end})

                local UISection = LocalPlayerColumn:section({name = "Toggle Interfaces Section", side = "right", size = 0.225, icon = GetImage("Settings.png")})

                local _UINames, BlacklistedNames = {'ATM GUI'}, {"Dead", "Settings1", "Controls", "FirstShopGUI", "Freecam", "ThaShop2", "WATCH GUI", "NYPD Cars", "CONSTRUCTION LEVEL", "RobPlayerUI", "Bronx LOCKER", 'MobileBeam', 'Settings', 'Flash', 'Enter', 'CopSirens'}
                
                for Index, Value in LocalPlayer.PlayerGui:GetChildren() do
                    if Value:IsA("ScreenGui") and not Value.Enabled then
                        if table.find(BlacklistedNames, Value.Name) then continue end
                        table.insert(_UINames, Value.Name)
                    end
                end 

                local _UI_EnabledToggle;

                UISection:dropdown({name = "Selected UI", flag = "SelectedUI_TB3", width = 120, items = _UINames, seperator = false, multi = false, default = 'Bronx Market 2'})

                _UI_EnabledToggle = UISection:toggle({name = "UI Enabled", type = 'toggle', callback = function(state)
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if tostring(library.flags["SelectedUI_TB3"]) == "ATM GUI" then
                            local SelectedUI = LocalPlayer.PlayerGui:FindFirstChild("ATMGui")

                            if not SelectedUI and state then
                                local _Clone = Lighting.Assets.GUI.ATMGui:Clone()
                                _Clone.Parent = LocalPlayer.PlayerGui
                                SelectedUI = _Clone
                                _Clone.Frame.closeBtn.MouseButton1Click:Connect(function()
                                    _UI_EnabledToggle.set(false)
                                    --_Clone:Destroy()
                                end)
                            end

                            if not state and SelectedUI then
                                SelectedUI:Destroy()
                            end

                            local Old_UI_Value = library.flags["SelectedUI_TB3"]

                            repeat task.wait() until library.flags["SelectedUI_TB3"] ~= Old_UI_Value

                            if SelectedUI then
                                SelectedUI:Destroy()
                            end

                            if _UI_EnabledToggle then
                                _UI_EnabledToggle.set(false)
                            end

                            return
                        end

                        local SelectedUI = LocalPlayer.PlayerGui:FindFirstChild(tostring(library.flags["SelectedUI_TB3"]))

                        if SelectedUI then
                            SelectedUI.Enabled = state

                            local Old_UI_Value = library.flags["SelectedUI_TB3"]

                            repeat task.wait() until library.flags["SelectedUI_TB3"] ~= Old_UI_Value

                            SelectedUI.Enabled = false
                            if _UI_EnabledToggle then
                                _UI_EnabledToggle.set(false)
                            end
                        end 
                    end))
                end})
            end

            do -- \\ Players Tab
                local Column = PlayersTab:column({})

                local PlayerListSection = Column:section({name = "Select Player", size = 1, default = false, side = 'left' --[[3 people icon]]})

                local PlayerList = PlayerListSection:list({flag = "SelectPlayer_TheBronx", options = {}, callback = function(state)
                    Config.TheBronx.PlayerUtilities.SelectedPlayer = tostring(state)
                end})

                local RefreshPlayers = LPH_NO_VIRTUALIZE(function()
                    local Cache = {}

                    for i, Player in Players:GetPlayers() do
                        if Player == LocalPlayer then continue end

                        table.insert(Cache, Player.Name)
                    end

                    table.sort(Cache)

                    PlayerList.refresh_options(Cache)
                end)

                task.spawn(RefreshPlayers)

                Players.PlayerAdded:Connect(RefreshPlayers)

                Players.PlayerRemoving:Connect(RefreshPlayers)

                Column = PlayersTab:column({})

                local PlayerOptionsSection = Column:section({name = "Player Options", size = 1, default = false, side = 'right', icon = GetImage("Wrench.png")})
                
                PlayerOptionsSection:toggle({type = "toggle", name = "Spectate Player", flag = "SpectatePlayer_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.PlayerUtilities.SpectatePlayer = state
                end})

                PlayerOptionsSection:toggle({type = "toggle", name = "Bring Player", flag = "BringPlayer_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.PlayerUtilities.BringingPlayer = state
                end})

PlayerOptionsSection:toggle({type = "toggle", name = "View Inventory", flag = "ViewInventory_TheBronx", default = false, callback = function(state)
    if state then
        local SelectedPlayer = Config.TheBronx.PlayerUtilities.SelectedPlayer
        if SelectedPlayer then
            local player = Players[SelectedPlayer]
            if player then
                if player:FindFirstChild("Backpack") then
                    local backpackItems = player.Backpack:GetChildren()
                    local itemNames = {}
                    
                    for _, v in ipairs(backpackItems) do
                        table.insert(itemNames, v.Name)
                    end
                    
                    local itemList = table.concat(itemNames, ", ")
                    if #itemList > 0 then
                        library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = "Backpack items: " .. itemList,
                            lifetime = 10
                        })
                    else
                        library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = "The target player's Backpack is empty.",
                            lifetime = 10
                        })
                    end
                else
                    library.notifications:create_notification({
                        name = "Scorpio.Hub",
                        info = "The target player does not have a Backpack.",
                        lifetime = 10
                    })
                end
            else
                library.notifications:create_notification({
                    name = "Scorpio.Hub",
                    info = "Selected player not found!",
                    lifetime = 5
                })
            end
        else
            library.notifications:create_notification({
                name = "Scorpio.Hub",
                info = "No player selected!",
                lifetime = 5
            })
        end
    end
end})
PlayerOptionsSection:toggle({
    type = "toggle", 
    name = "View Player Money", 
    flag = "ViewPlayerMoney_TheBronx", 
    default = false, 
    callback = function(state)
        if state then
            local SelectedPlayer = Config.TheBronx.PlayerUtilities.SelectedPlayer
            if SelectedPlayer then
                local player = Players[SelectedPlayer]
                if player then
                    -- Check for Dirty Money (usually in stored or character)
                    local dirtyMoney = 0
                    if player:FindFirstChild("stored") and player.stored:FindFirstChild("DirtyStack") then
                        dirtyMoney = player.stored.DirtyStack.Value
                    elseif player.Character and player.Character:FindFirstChild("DirtyStack") then
                        dirtyMoney = player.Character.DirtyStack.Value
                    end
                    
                    -- Check for Wallet Money (usually in leaderstats or player stats)
                    local walletMoney = 0
                    if player:FindFirstChild("leaderstats") and player.leaderstats:FindFirstChild("Money") then
                        walletMoney = player.leaderstats.Money.Value
                    elseif player:FindFirstChild("stored") and player.stored:FindFirstChild("Money") then
                        walletMoney = player.stored.Money.Value
                    end
                    
                    -- Check for Bank Money (BankValue or similar)
                    local bankMoney = 0
                    if player:FindFirstChild("BankValue") then
                        bankMoney = player.BankValue.Value
                    elseif player:FindFirstChild("stored") and player.stored:FindFirstChild("Bank") then
                        bankMoney = player.stored.Bank.Value
                    end
                    
                    -- Format the notification message
                    local message = string.format(
                        "Dirty Money: $%s\nWallet Money: $%s\nBank Money: $%s",
                        tostring(dirtyMoney),
                        tostring(walletMoney),
                        tostring(bankMoney)
                    )
                    
                    library.notifications:create_notification({
                        name = "Scorpio.Hub - " .. SelectedPlayer,
                        info = message,
                        lifetime = 8
                    })
                else
                    library.notifications:create_notification({
                        name = "Scorpio.Hub",
                        info = "Selected player not found!",
                        lifetime = 5
                    })
                end
            else
                library.notifications:create_notification({
                    name = "Scorpio.Hub",
                    info = "No player selected!",
                    lifetime = 5
                })
            end
        end
    end
})

                PlayerOptionsSection:toggle({type = "toggle", name = "Bug / Kill Player - Car", flag = "BugPlayer_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.PlayerUtilities.BugPlayer = state
                end})

                PlayerOptionsSection:toggle({type = "toggle", name = "Auto Kill Player - Gun", flag = "AutoKillPlayer_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.PlayerUtilities.AutoKill = state
                end})

                PlayerOptionsSection:toggle({type = "toggle", name = "Auto Ragdoll Player - Gun", flag = "AutoRagdollPlayer_TheBronx", seperator = true, default = false, callback = function(state)
                    Config.TheBronx.PlayerUtilities.AutoRagdoll = state
                end})

                PlayerOptionsSection:button({name = "Teleport To Player", callback = function()
                    task.spawn(Teleport, Players[Config.TheBronx.PlayerUtilities.SelectedPlayer].Character.HumanoidRootPart.CFrame)
                end})

                PlayerOptionsSection:button({name = "Down Player - Hold Gun", callback = function(state)
                    pcall(kill_gun, Config.TheBronx.PlayerUtilities.SelectedPlayer, "HumanoidRootPart", (Players[Config.TheBronx.PlayerUtilities.SelectedPlayer].Character.Humanoid.Health - 5))
                end})

                PlayerOptionsSection:button({name = "Kill Player - Hold Gun", callback = function(state)
                    pcall(kill_gun, Config.TheBronx.PlayerUtilities.SelectedPlayer, "HumanoidRootPart", math.huge)
                end})

                PlayerOptionsSection:button({name = "Fling Player - Hold Gun", callback = function(state)
                    for Index=1, 50 do
                        pcall(kill_gun, Config.TheBronx.PlayerUtilities.SelectedPlayer, "RightUpperLeg", 0.01)
                    end
                end})

                -- removed God All Players button for safety
                
                PlayerOptionsSection:button({name = "Kill All Players - Hold Gun", callback = function()
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        for Index, Value in Players:GetPlayers() do
                            if Value ~= LocalPlayer and Value.Character and Value.Character:FindFirstChild("Humanoid") and Value.Character:FindFirstChild("Humanoid").Health ~= 0 and not Value.Character:FindFirstChildOfClass("ForceField") and Value.Character:FindFirstChild("HumanoidRootPart") then
                                pcall(kill_gun, Value.Name, "HumanoidRootPart", math.huge)
                                task.wait(0.1)
                            end
                        end
                    end))
                end})
            end
                
            do -- \\ Misc Tab
                local Column = MiscTab:column({})

                local FarmingSection = Column:section({name = "Farming", size = 0.415, default = false, side = 'left', icon = GetImage("Wheatt.png")})

                FarmingSection:toggle({type = "toggle", name = "Auto Farm Construction", flag = "FarmConstruction_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.Farms.FarmConstructionJob = state
                end})

                FarmingSection:toggle({type = "toggle", name = "Auto Farm Bank Robbery", flag = "FarmBank_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.Farms.FarmBank = state
                end})

                FarmingSection:toggle({type = "toggle", name = "Auto Farm House Robbery", flag = "FarmHouses_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.Farms.FarmHouses = state
                end})

                FarmingSection:toggle({type = "toggle", name = "Auto Farm Studio Robbery", flag = "FarmStudio_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.Farms.FarmStudio = state
                end})

                FarmingSection:toggle({type = "toggle", name = "Auto Farm Dumpsters", flag = "FarmDumpsters_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.Farms.FarmTrash = state
                end})

                local ManualFarmSections = Column:section({name = "Manual Farms", size = 0.325, default = false, side = 'left', icon = GetImage("Pickkaxe.png")}) 

                local LastCleanFilthyMoney = 0

                ManualFarmSections:toggle({type = "toggle", name = "Auto Collect Dropped Cash", flag = "FarmDroppedMoney_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.Farms.CollectDroppedMoney = state
                end})

                ManualFarmSections:toggle({type = "toggle", name = "Auto Collect Dropped Bags", flag = "FarmDroppedLoot_TheBronx", default = false, callback = function(state)
                    Config.TheBronx.Farms.CollectDroppedLoot = state
                end})

                ManualFarmSections:button({name = "Clean All Filthy Money", callback = LPH_NO_VIRTUALIZE(function()
                    local now = tick()
                    if LastCleanFilthyMoney > 0 and (now - LastCleanFilthyMoney) < 40 then
                        local remaining = math.max(0, math.floor(40 - (now - LastCleanFilthyMoney)))
                        return library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = "Clean Filthy Money is on cooldown (" .. tostring(remaining) .. "s left)",
                            lifetime = 5
                        })
                    end

                    LastCleanFilthyMoney = now

                    if LocalPlayer.stored.FilthyStack.Value == 0 then 
                        return library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = "You have no fucking money poor fuck!",
                            lifetime = 7.5
                        })
                    end
        
                    if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then return end
                    if not LocalPlayer.Character:FindFirstChild("Humanoid") or LocalPlayer.Character:FindFirstChild("Humanoid").Health == 0 then return end
        
                    local Cleaner = GetGoodCleaner()
                    
                    if not Cleaner then
                        return library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = "Could not find a valid cleaner!",
                            lifetime = 7.5
                        })
                    end
        
                    Teleport(Cleaner.WorldPivot)
        
                    task.wait(0.4)
        
                    fireproximityprompt(Cleaner:FindFirstChild("CashPrompt", true))
        
                    repeat task.wait() until Cleaner:FindFirstChild("On", true).Color == Color3.fromRGB(74, 156, 69)
        
                    task.wait(0.5)
        
                    fireproximityprompt(Cleaner:FindFirstChild("CashPrompt", true))
                    
                    task.wait(0.25)
        
                    Teleport(Cleaner.WorldPivot)
        
                    task.wait(0.4)
        
                    repeat task.wait() until LocalPlayer.Backpack:FindFirstChild("MoneyReady")
        
                    LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack["MoneyReady"])
        
                    repeat task.wait(0.1) fireproximityprompt(Cleaner:FindFirstChild("GrabPrompt", true)) until not LocalPlayer.Character:FindFirstChild("MoneyReady")
                    
                    repeat task.wait()
                    until LocalPlayer.Backpack:FindFirstChild("BagOfMoney")
        
                    Teleport(CFrame.new(-224.070892, 283.80954, -1200.51355, 0.898020029, -8.45030157e-10, -0.439954549, 1.71171859e-08, 1, 3.30182885e-08, 0.439954549, -3.718187e-08, 0.898020029))
        
                    task.wait(0.4)
        
                    LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack["BagOfMoney"])
        
                    task.wait(1)
        
                    fireproximityprompt(Workspace.ATMMoney.Prompt)
                end)})

               local BankSettingsSection = Column:section({name = "Scorpio.Hub ATM 🏧", size = 0.225, default = false, side = 'left', Icon = GetImage("Cash.png")}) 

BankSettingsSection:button({name = "🏧ATM🏧", callback = function()
    local UserInputService = game:GetService("UserInputService")
    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local RunService = game:GetService("RunService")
    
    local atmbankamount = 0
    local selectedBankAction = "Deposit"
    local autoDepositEnabled = false
    local autoWithdrawEnabled = false
    local autoDropEnabled = false
    local autoInterval = 0.1 
    local depositConnection = nil
    local withdrawConnection = nil
    local dropConnection = nil
    
    -- Create a new ScreenGui for the ATM controls
    local screenGui = Instance.new("ScreenGui")
    screenGui.Name = "ATMControls"
    screenGui.ResetOnSpawn = false
    screenGui.Parent = Players.LocalPlayer:WaitForChild("PlayerGui")
    
    -- Create main frame
    local mainFrame = Instance.new("Frame")
    mainFrame.Size = UDim2.new(0, 300, 0, 300)
    mainFrame.Position = UDim2.new(0.5, -150, 0.5, -150)
    mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
    mainFrame.Active = true
    mainFrame.Draggable = true
    mainFrame.Visible = true
    Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8)
    mainFrame.Parent = screenGui
    
    -- Title
    local title = Instance.new("TextLabel")
    title.Size = UDim2.new(1, 0, 0, 40)
    title.Position = UDim2.new(0, 0, 0, 0)
    title.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
    title.Text = "ATM Controls"
    title.TextColor3 = Color3.fromRGB(255, 255, 255)
    title.Font = Enum.Font.GothamBold
    title.TextSize = 20
    Instance.new("UICorner", title).CornerRadius = UDim.new(0, 8)
    title.Parent = mainFrame
    
    -- Money amount input
    local amountBox = Instance.new("TextBox")
    amountBox.Size = UDim2.new(0.9, 0, 0, 35)
    amountBox.Position = UDim2.new(0.05, 0, 0.15, 0)
    amountBox.PlaceholderText = "Enter Money Amount"
    amountBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150)
    amountBox.Text = ""
    amountBox.TextColor3 = Color3.fromRGB(255, 255, 255)
    amountBox.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
    amountBox.Font = Enum.Font.Gotham
    amountBox.TextSize = 16
    amountBox.ClearTextOnFocus = false
    Instance.new("UICorner", amountBox).CornerRadius = UDim.new(0, 6)
    amountBox.Parent = mainFrame
    
    amountBox.FocusLost:Connect(function()
        local amount = tonumber(amountBox.Text)
        if amount then
            atmbankamount = amount
        end
    end)
    
    -- Bank action dropdown
    local actionLabel = Instance.new("TextLabel")
    actionLabel.Size = UDim2.new(0.9, 0, 0, 25)
    actionLabel.Position = UDim2.new(0.05, 0, 0.28, 0)
    actionLabel.Text = "Select Action:"
    actionLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    actionLabel.BackgroundTransparency = 1
    actionLabel.Font = Enum.Font.Gotham
    actionLabel.TextSize = 16
    actionLabel.TextXAlignment = Enum.TextXAlignment.Left
    actionLabel.Parent = mainFrame
    
    local dropdown = Instance.new("Frame")
    dropdown.Size = UDim2.new(0.9, 0, 0, 35)
    dropdown.Position = UDim2.new(0.05, 0, 0.33, 0)
    dropdown.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
    Instance.new("UICorner", dropdown).CornerRadius = UDim.new(0, 6)
    dropdown.Parent = mainFrame
    
    local dropdownButton = Instance.new("TextButton")
    dropdownButton.Size = UDim2.new(1, 0, 1, 0)
    dropdownButton.Text = "Deposit ▼"
    dropdownButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    dropdownButton.BackgroundTransparency = 1
    dropdownButton.Font = Enum.Font.Gotham
    dropdownButton.TextSize = 16
    dropdownButton.Parent = dropdown
    
    -- Dropdown menu
    local dropdownMenu = Instance.new("Frame")
    dropdownMenu.Size = UDim2.new(1, 0, 0, 105)
    dropdownMenu.Position = UDim2.new(0, 0, 1, 5)
    dropdownMenu.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
    dropdownMenu.Visible = false
    dropdownMenu.ZIndex = 10
    Instance.new("UICorner", dropdownMenu).CornerRadius = UDim.new(0, 6)
    dropdownMenu.Parent = dropdown
    
    local depositOption = Instance.new("TextButton")
    depositOption.Size = UDim2.new(1, 0, 0, 35)
    depositOption.Position = UDim2.new(0, 0, 0, 0)
    depositOption.Text = "Deposit"
    depositOption.TextColor3 = Color3.fromRGB(255, 255, 255)
    depositOption.BackgroundColor3 = Color3.fromRGB(55, 55, 60)
    depositOption.Font = Enum.Font.Gotham
    depositOption.TextSize = 16
    depositOption.ZIndex = 11
    depositOption.Parent = dropdownMenu
    
    local withdrawOption = Instance.new("TextButton")
    withdrawOption.Size = UDim2.new(1, 0, 0, 35)
    withdrawOption.Position = UDim2.new(0, 0, 0.33, 0)
    withdrawOption.Text = "Withdraw"
    withdrawOption.TextColor3 = Color3.fromRGB(255, 255, 255)
    withdrawOption.BackgroundColor3 = Color3.fromRGB(55, 55, 60)
    withdrawOption.Font = Enum.Font.Gotham
    withdrawOption.TextSize = 16
    withdrawOption.ZIndex = 11
    withdrawOption.Parent = dropdownMenu
    
    local dropOption = Instance.new("TextButton")
    dropOption.Size = UDim2.new(1, 0, 0, 35)
    dropOption.Position = UDim2.new(0, 0, 0.66, 0)
    dropOption.Text = "Drop"
    dropOption.TextColor3 = Color3.fromRGB(255, 255, 255)
    dropOption.BackgroundColor3 = Color3.fromRGB(55, 55, 60)
    dropOption.Font = Enum.Font.Gotham
    dropOption.TextSize = 16
    dropOption.ZIndex = 11
    dropOption.Parent = dropdownMenu
    
    dropdownButton.MouseButton1Click:Connect(function()
        dropdownMenu.Visible = not dropdownMenu.Visible
    end)
    
    depositOption.MouseButton1Click:Connect(function()
        selectedBankAction = "Deposit"
        dropdownButton.Text = "Deposit ▼"
        dropdownMenu.Visible = false
    end)
    
    withdrawOption.MouseButton1Click:Connect(function()
        selectedBankAction = "Withdraw"
        dropdownButton.Text = "Withdraw ▼"
        dropdownMenu.Visible = false
    end)
    
    dropOption.MouseButton1Click:Connect(function()
        selectedBankAction = "Drop"
        dropdownButton.Text = "Drop ▼"
        dropdownMenu.Visible = false
    end)
    
    -- Apply button
    local applyButton = Instance.new("TextButton")
    applyButton.Size = UDim2.new(0.9, 0, 0, 40)
    applyButton.Position = UDim2.new(0.05, 0, 0.42, 0)
    applyButton.Text = "Apply Selected Bank Action"
    applyButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    applyButton.BackgroundColor3 = Color3.fromRGB(70, 130, 200)
    applyButton.Font = Enum.Font.GothamBold
    applyButton.TextSize = 16
    Instance.new("UICorner", applyButton).CornerRadius = UDim.new(0, 6)
    applyButton.Parent = mainFrame
    
    applyButton.MouseButton1Click:Connect(function()
        if atmbankamount <= 0 then 
            applyButton.Text = "Enter Amount First!"
            task.wait(1)
            applyButton.Text = "Apply Selected Bank Action"
            return 
        end
        
        local BankActionRemote = ReplicatedStorage:FindFirstChild("BankAction")
        local DropRemote = ReplicatedStorage:FindFirstChild("BankProcessRemote")
        
        if not BankActionRemote or not DropRemote then
            applyButton.Text = "Remotes Not Found!"
            task.wait(1)
            applyButton.Text = "Apply Selected Bank Action"
            return
        end
        
        if selectedBankAction == "Deposit" then
            BankActionRemote:FireServer("depo", atmbankamount)
            applyButton.Text = "Deposited $" .. atmbankamount
        elseif selectedBankAction == "Withdraw" then
            BankActionRemote:FireServer("with", atmbankamount)
            applyButton.Text = "Withdrew $" .. atmbankamount
        elseif selectedBankAction == "Drop" then
            DropRemote:InvokeServer("Drop", atmbankamount)
            applyButton.Text = "Dropped $" .. atmbankamount
        end
        
        task.wait(1)
        applyButton.Text = "Apply Selected Bank Action"
    end)
    
    -- Auto toggles section
    local autoLabel = Instance.new("TextLabel")
    autoLabel.Size = UDim2.new(0.9, 0, 0, 25)
    autoLabel.Position = UDim2.new(0.05, 0, 0.53, 0)
    autoLabel.Text = "Auto Actions:"
    autoLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    autoLabel.BackgroundTransparency = 1
    autoLabel.Font = Enum.Font.GothamBold
    autoLabel.TextSize = 16
    autoLabel.TextXAlignment = Enum.TextXAlignment.Left
    autoLabel.Parent = mainFrame
    
    -- Auto Deposit toggle
    local autoDepositFrame = Instance.new("Frame")
    autoDepositFrame.Size = UDim2.new(0.9, 0, 0, 35)
    autoDepositFrame.Position = UDim2.new(0.05, 0, 0.58, 0)
    autoDepositFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
    Instance.new("UICorner", autoDepositFrame).CornerRadius = UDim.new(0, 6)
    autoDepositFrame.Parent = mainFrame
    
    local autoDepositLabel = Instance.new("TextLabel")
    autoDepositLabel.Size = UDim2.new(0.7, 0, 1, 0)
    autoDepositLabel.Position = UDim2.new(0, 10, 0, 0)
    autoDepositLabel.Text = "Auto Deposit"
    autoDepositLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    autoDepositLabel.BackgroundTransparency = 1
    autoDepositLabel.Font = Enum.Font.Gotham
    autoDepositLabel.TextSize = 16
    autoDepositLabel.TextXAlignment = Enum.TextXAlignment.Left
    autoDepositLabel.Parent = autoDepositFrame
    
    local autoDepositToggle = Instance.new("TextButton")
    autoDepositToggle.Size = UDim2.new(0, 30, 0, 20)
    autoDepositToggle.Position = UDim2.new(1, -40, 0.5, -10)
    autoDepositToggle.Text = "OFF"
    autoDepositToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
    autoDepositToggle.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
    autoDepositToggle.Font = Enum.Font.GothamBold
    autoDepositToggle.TextSize = 12
    Instance.new("UICorner", autoDepositToggle).CornerRadius = UDim.new(0, 4)
    autoDepositToggle.Parent = autoDepositFrame
    
    autoDepositToggle.MouseButton1Click:Connect(function()
        autoDepositEnabled = not autoDepositEnabled
        
        if depositConnection then
            depositConnection:Disconnect()
            depositConnection = nil
        end
        
        if autoDepositEnabled and atmbankamount > 0 then
            autoDepositToggle.Text = "ON"
            autoDepositToggle.BackgroundColor3 = Color3.fromRGB(70, 200, 70)
            depositConnection = RunService.Heartbeat:Connect(function()
                local BankActionRemote = ReplicatedStorage:FindFirstChild("BankAction")
                if BankActionRemote then
                    BankActionRemote:FireServer("depo", atmbankamount)
                end
                task.wait(autoInterval)
            end)
        else
            autoDepositToggle.Text = "OFF"
            autoDepositToggle.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
        end
    end)
    
    -- Auto Withdraw toggle
    local autoWithdrawFrame = Instance.new("Frame")
    autoWithdrawFrame.Size = UDim2.new(0.9, 0, 0, 35)
    autoWithdrawFrame.Position = UDim2.new(0.05, 0, 0.66, 0)
    autoWithdrawFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
    Instance.new("UICorner", autoWithdrawFrame).CornerRadius = UDim.new(0, 6)
    autoWithdrawFrame.Parent = mainFrame
    
    local autoWithdrawLabel = Instance.new("TextLabel")
    autoWithdrawLabel.Size = UDim2.new(0.7, 0, 1, 0)
    autoWithdrawLabel.Position = UDim2.new(0, 10, 0, 0)
    autoWithdrawLabel.Text = "Auto Withdraw"
    autoWithdrawLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    autoWithdrawLabel.BackgroundTransparency = 1
    autoWithdrawLabel.Font = Enum.Font.Gotham
    autoWithdrawLabel.TextSize = 16
    autoWithdrawLabel.TextXAlignment = Enum.TextXAlignment.Left
    autoWithdrawLabel.Parent = autoWithdrawFrame
    
    local autoWithdrawToggle = Instance.new("TextButton")
    autoWithdrawToggle.Size = UDim2.new(0, 30, 0, 20)
    autoWithdrawToggle.Position = UDim2.new(1, -40, 0.5, -10)
    autoWithdrawToggle.Text = "OFF"
    autoWithdrawToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
    autoWithdrawToggle.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
    autoWithdrawToggle.Font = Enum.Font.GothamBold
    autoWithdrawToggle.TextSize = 12
    Instance.new("UICorner", autoWithdrawToggle).CornerRadius = UDim.new(0, 4)
    autoWithdrawToggle.Parent = autoWithdrawFrame
    
    autoWithdrawToggle.MouseButton1Click:Connect(function()
        autoWithdrawEnabled = not autoWithdrawEnabled
        
        if withdrawConnection then
            withdrawConnection:Disconnect()
            withdrawConnection = nil
        end
        
        if autoWithdrawEnabled and atmbankamount > 0 then
            autoWithdrawToggle.Text = "ON"
            autoWithdrawToggle.BackgroundColor3 = Color3.fromRGB(70, 200, 70)
            withdrawConnection = RunService.Heartbeat:Connect(function()
                local BankActionRemote = ReplicatedStorage:FindFirstChild("BankAction")
                if BankActionRemote then
                    BankActionRemote:FireServer("with", atmbankamount)
                end
                task.wait(autoInterval)
            end)
        else
            autoWithdrawToggle.Text = "OFF"
            autoWithdrawToggle.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
        end
    end)
    
    -- Auto Drop toggle
    local autoDropFrame = Instance.new("Frame")
    autoDropFrame.Size = UDim2.new(0.9, 0, 0, 35)
    autoDropFrame.Position = UDim2.new(0.05, 0, 0.74, 0)
    autoDropFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
    Instance.new("UICorner", autoDropFrame).CornerRadius = UDim.new(0, 6)
    autoDropFrame.Parent = mainFrame
    
    local autoDropLabel = Instance.new("TextLabel")
    autoDropLabel.Size = UDim2.new(0.7, 0, 1, 0)
    autoDropLabel.Position = UDim2.new(0, 10, 0, 0)
    autoDropLabel.Text = "Auto Drop"
    autoDropLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    autoDropLabel.BackgroundTransparency = 1
    autoDropLabel.Font = Enum.Font.Gotham
    autoDropLabel.TextSize = 16
    autoDropLabel.TextXAlignment = Enum.TextXAlignment.Left
    autoDropLabel.Parent = autoDropFrame
    
    local autoDropToggle = Instance.new("TextButton")
    autoDropToggle.Size = UDim2.new(0, 30, 0, 20)
    autoDropToggle.Position = UDim2.new(1, -40, 0.5, -10)
    autoDropToggle.Text = "OFF"
    autoDropToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
    autoDropToggle.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
    autoDropToggle.Font = Enum.Font.GothamBold
    autoDropToggle.TextSize = 12
    Instance.new("UICorner", autoDropToggle).CornerRadius = UDim.new(0, 4)
    autoDropToggle.Parent = autoDropFrame
    
    autoDropToggle.MouseButton1Click:Connect(function()
        autoDropEnabled = not autoDropEnabled
        
        if dropConnection then
            dropConnection:Disconnect()
            dropConnection = nil
        end
        
        if autoDropEnabled and atmbankamount > 0 then
            autoDropToggle.Text = "ON"
            autoDropToggle.BackgroundColor3 = Color3.fromRGB(70, 200, 70)
            dropConnection = RunService.Heartbeat:Connect(function()
                local DropRemote = ReplicatedStorage:FindFirstChild("BankProcessRemote")
                if DropRemote then
                    DropRemote:InvokeServer("Drop", atmbankamount)
                end
                task.wait(autoInterval)
            end)
        else
            autoDropToggle.Text = "OFF"
            autoDropToggle.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
        end
    end)
    
    -- Close button
    local closeButton = Instance.new("TextButton")
    closeButton.Size = UDim2.new(0, 30, 0, 30)
    closeButton.Position = UDim2.new(1, -35, 0, 5)
    closeButton.Text = "X"
    closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    closeButton.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
    closeButton.Font = Enum.Font.GothamBold
    closeButton.TextSize = 16
    Instance.new("UICorner", closeButton).CornerRadius = UDim.new(0, 8)
    closeButton.Parent = mainFrame
    
    closeButton.MouseButton1Click:Connect(function()
        screenGui:Destroy()
        if depositConnection then depositConnection:Disconnect() end
        if withdrawConnection then withdrawConnection:Disconnect() end
        if dropConnection then dropConnection:Disconnect() end
    end)
end})

                Column = MiscTab:column({})

                local DupingSection = Column:section({name = "Duping Section", size = 0.29, default = false, side = 'right', icon = GetImage("Node.png")}) 

                local Cooldown = false;

                DupingSection:button({name = "Duplicate Current Item", callback = function()
                    task.spawn(function()
                        if Cooldown then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Please wait!`,
                                lifetime = 5
                            })
                            return
                        end
                        Cooldown = true
                        local Player = Players.LocalPlayer
                        local Backpack = Player.Backpack

                        local Tool = Player.Character:FindFirstChildOfClass("Tool")

                        if not Tool then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Could not find a tool! you must hold one.`,
                                lifetime = 10
                            })
                            return
                        end

                        Player.Character.Humanoid:UnequipTools()

                        local ToolName = Tool.Name
                        local ToolId

                        local Connection = ReplicatedStorage.MarketItems.ChildAdded:Connect(
                            function(item)

                                if item.Name == ToolName then
                                    if item:WaitForChild('owner').Value == Player.Name then
                                        ToolId = item:GetAttribute('SpecialId')
                                    end
                                end
                            end
                        )

                        spawn(function()
                            ReplicatedStorage.ListWeaponRemote:FireServer(ToolName, 99999)
                        end)

                        task.wait(.26)

                        spawn(function()
                            ReplicatedStorage.BackpackRemote:InvokeServer('Store', ToolName)
                        end)

                        task.wait(3)

                        spawn(function()
                            ReplicatedStorage.BuyItemRemote:FireServer(ToolName, 'Remove', ToolId)
                        end)

                        spawn(function()
                            ReplicatedStorage.BackpackRemote:InvokeServer("Grab", ToolName)
                        end)

                        Connection:Disconnect()

                        task.wait(1)

                        Cooldown = false
                    end)
                end})

-- Toggle UI
DupingSection:toggle({
    type = "toggle",
    name = "Auto Dupe",
    flag = "AutoDupe",
    default = false,
    callback = function(state)
        Config.AutoDupe = state

        if not state then return end

        task.spawn(function()
            local Player = game.Players.LocalPlayer
            local ReplicatedStorage = game.ReplicatedStorage

            local FirstTool = nil
            repeat
                task.wait(0.5)
                FirstTool = Player.Character and Player.Character:FindFirstChildOfClass("Tool")
            until FirstTool or not Config.AutoDupe

            if Config.AutoDupe and not FirstTool then
                library.notifications:create_notification({
                    name = "Scorpio.Hub",
                    info = "No tool found in hand! Please equip one.",
                    lifetime = 5
                })
                return
            end

            if not FirstTool then return end

            local ToolName = FirstTool.Name

            library.notifications:create_notification({
                name = "Scorpio.Hub",
                info = "Auto Dupe started for: " .. ToolName,
                lifetime = 5
            })

            while Config.AutoDupe do
                if not Cooldown then
                    Cooldown = true

                    local ToolId

                    local Connection = ReplicatedStorage.MarketItems.ChildAdded:Connect(function(item)
                        if item and item.Name == ToolName then
                            local owner = item:WaitForChild("owner", 5)
                            if owner and owner.Value == Player.Name then
                                ToolId = item:GetAttribute("SpecialId")
                            end
                        end
                    end)

                    pcall(function()
                        if ReplicatedStorage:FindFirstChild("ListWeaponRemote") then
                            ReplicatedStorage.ListWeaponRemote:FireServer(ToolName, 999999)
                        end
                    end)

                    task.wait(.23)

                    pcall(function()
                        if ReplicatedStorage:FindFirstChild("BackpackRemote") then
                            ReplicatedStorage.BackpackRemote:InvokeServer("Store", ToolName)
                        end
                    end)

                    task.wait(2.6)

                    pcall(function()
                        if ReplicatedStorage:FindFirstChild("BuyItemRemote") then
                            ReplicatedStorage.BuyItemRemote:FireServer(ToolName, "Remove", ToolId)
                        end
                    end)

                    pcall(function()
                        if ReplicatedStorage:FindFirstChild("BackpackRemote") then
                            ReplicatedStorage.BackpackRemote:InvokeServer("Grab", ToolName)
                        end
                    end)

                    if Connection then
                        Connection:Disconnect()
                    end

                    Cooldown = false
                end

                task.wait(3.5)
            end

            library.notifications:create_notification({
                name = "Scorpio.Hub",
                info = "Auto Dupe stopped.",
                lifetime = 5
            })
        end)
    end
})


                DupingSection:label({wrapped = true, name = "This might bug if you have more than 1 of the item you're duping!"})

                local VulnerabilitySection = Column:section({name = "Vulnerability Section", size = 0.347, default = false, side = 'right', icon = GetImage("unlocked.png")}) 

                local GetFruitCup = LPH_NO_VIRTUALIZE(function()
                    local Found, Cup = false, nil;

                    for Index, Value in next, {LocalPlayer.Backpack:GetChildren(), LocalPlayer.Character:GetChildren()} do
                        for _Index, _Value in Value do
                            if _Value:IsA("Tool") and _Value.Name == "Ice-Fruit Cupz" then
                                if _Value["IceFruit Cup"]["IceFruit PunchMedium"].Transparency ~= 1 then
                                    Found = true
                                    Cup = _Value
                                    break
                                end
                            end
                        end
                    end 

                    return Found, Cup
                end)

                VulnerabilitySection:button({name = "Scorpio.Hub inf money Auto", callback = function()
                    local Found, Cup = GetFruitCup()

                    if Cup and Found then
                        HideUI("generating illegal cash 💷\n please wait.")

                        local OLDCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                        if Cup.Parent == LocalPlayer.Backpack then
                            LocalPlayer.Character.Humanoid:EquipTool(Cup)
                            task.wait(1)
                        end 

                        Teleport(Workspace["IceFruit Sell"].CFrame, true)

                        task.wait(.5)

                        for Index=1, 4000 do
                            task.spawn(function()
                                _fireproximityprompt(Workspace["IceFruit Sell"].ProximityPrompt)
                            end)
                        end

                        Teleport(OLDCFrame)

                        DeleteSecretUI()

                        return
                    end



                    local OLDCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                    local Itemz = {"FijiWater", "FreshWater", "Ice-Fruit Bag", "Ice-Fruit Cupz"}
                    local Stove;

                    for Index, Value in Workspace.CookingPots:GetChildren() do
                        if Value:IsA("Model") then
                            if Value:FindFirstChildWhichIsA("ProximityPrompt", true).ActionText == "Turn On" and Value:FindFirstChildWhichIsA("ProximityPrompt", true).Enabled then
                                Stove = Value

                                break
                            end
                        end
                    end

                    for Index, Value in Itemz do
                        if not LocalPlayer.Backpack:FindFirstChild(Value) then
                            ReplicatedStorage:WaitForChild("ExoticShopRemote"):InvokeServer(Value)
                            task.wait(1)
                        end
                    end

                    local Check = false;

                    for Index, Value in Itemz do
                        if not LocalPlayer.Backpack:FindFirstChild(Value) then
                            Check = true
                        end
                    end

                    if Check then
                        DeleteSecretUI()
                        library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = `Could not find items! Please check you have more than 5000$.`,
                            lifetime = 10
                        })
                        return
                    end

                    DeleteSecretUI()



                    Teleport(Stove.CookPart.CFrame, true)

                    task.wait(1)

                    StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
                    LocalPlayer.Character.HumanoidRootPart.Anchored = true

                    task.wait(1.5)

                    fireproximityprompt(Stove:FindFirstChildWhichIsA("ProximityPrompt", true))

                    task.wait(2)

                    for Index, Value in {"FijiWater", "FreshWater", "Ice-Fruit Bag"} do
                        LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack[Value])
                        task.wait(1)
                        fireproximityprompt(Stove:FindFirstChildWhichIsA("ProximityPrompt", true))
                        task.wait(3)
                    end

                    repeat wait() until 
                    Stove.CookPart.Steam.LoadUI.Enabled == false

                    if not LocalPlayer.Character:FindFirstChild("Ice-Fruit Cupz") then
                        LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack['Ice-Fruit Cupz'])
                        task.wait(1)
                    end
                    
                    task.wait(1)

                    fireproximityprompt(Stove:FindFirstChildWhichIsA("ProximityPrompt", true))

                    task.wait(3)

                    LocalPlayer.Character.HumanoidRootPart.Anchored = false

                    Teleport(Workspace["IceFruit Sell"].CFrame, true)

                    task.wait(1)

                    LocalPlayer.Character.HumanoidRootPart.Anchored = true

                    task.wait(1.5)

                    if not LocalPlayer.Character:FindFirstChild("Ice-Fruit Cupz") then
                        LocalPlayer.Character.Humanoid:EquipTool(LocalPlayer.Backpack['Ice-Fruit Cupz'])
                        task.wait(1)
                    end

                    Workspace["IceFruit Sell"].ProximityPrompt.HoldDuration = 0

                    for Index=1, 4000 do
                        task.spawn(function()
                            _fireproximityprompt(Workspace["IceFruit Sell"].ProximityPrompt)
                        end)
                    end

                    LocalPlayer.Character.HumanoidRootPart.Anchored = false
                    StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, true)

                    task.wait(0.5)

                    Teleport(OLDCFrame, true)

                    task.wait(2)

                    pcall(DeleteSecretUI)
                end})

                



                VulnerabilitySection:label({wrapped = true, name = ". You will need around 5K to do this."})

                local KillAuraSection = Column:section({name = "Kill Aura Section", size = 0.275, default = false, side = 'right', icon = GetImage("Bullet.png")}) 

                KillAuraSection:toggle({name = "Enabled - Hold Gun", flag = "KillAura_Enabled_TB3", type = "toggle", default = false, callback = function(state)
                    Config.TheBronx.KillAura = state
                end})

                KillAuraSection:slider({name = "Kill Aura Range", flag = "KillAuraRange_TB3", min = 0, max = 1000, default = 300, suffix = "st", callback = function(state)
                    Config.TheBronx.KillAuraRange = state
                end})
            end

            do -- \\ Purchase Guns
                local PurchaseGunColumn = PurchaseGunTab:column({})

                local WeaponListSection = PurchaseGunColumn:section({name = "Purchase Selected Item", side = "left", size = 1, icon = GetImage("Cash.png")})

                WeaponListSection:list({flag = "PurchaseSelectedItem_TheBronx", options = Config.Guns, callback = function(state)
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if not state then
                            return
                        end

                        Config.TheBronx.Selected_Item = state

                        local self = string.match(Config.TheBronx.Selected_Item, "^(.*) %-");

                        self = self:match("^%s*(.-)%s*$");
                        local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame;
                        local Prompt = Workspace:FindFirstChild("GUNS")[self]:FindFirstChildWhichIsA("ProximityPrompt",true);
                        if (Workspace:FindFirstChild("GUNS")[self]:FindFirstChild("GamepassID", true) and not MarketplaceService:UserOwnsGamePassAsync(LocalPlayer.UserId, Workspace:FindFirstChild("GUNS")[self]:FindFirstChild("GamepassID",true).Value)) then 
                            return library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `You do not own this gamepass!`,
                                lifetime = 5
                            })
                        end
                        
                        --if Solara then Prompt.HoldDuration = 0; end

                        local Part = Prompt.Parent:IsA("Part") and Prompt.Parent.CFrame or Prompt.Parent:IsA("MeshPart") and Prompt.Parent.CFrame or Prompt.Parent:IsA("UnionOperation") and Prompt.Parent.CFrame;
                        if LocalPlayer.stored.Money.Value < Workspace:FindFirstChild("GUNS")[self]:FindFirstChild("Price",true).Value then
                            return library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `You are ${Workspace:FindFirstChild("GUNS")[self]:FindFirstChild("Price",true).Value - LocalPlayer.stored.Money.Value} short.`,
                                lifetime = 5
                            })
                        end;
                        
                        task.spawn(Teleport, Part)

                        task.wait(0.4)

                        local ItemReceieved = false;
                        task.spawn(function()
                            local Check = LocalPlayer.Backpack.ChildAdded:Connect(function(Child)
                                if tostring(Child) == tostring(self) then
                                    ItemReceieved = true
                                end
                            end)

                            task.spawn(function()
                                task.wait(1.5)
                                ItemReceieved = true
                            end)

                            repeat task.wait() until ItemReceieved == true
                            Check:Disconnect()
                        end)

                        repeat task.wait(); fireproximityprompt(Prompt); until ItemReceieved == true;
                        
                        task.wait(0.4)

                        task.spawn(Teleport, OldCFrame)

                        library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = `Successfully purchased {self}!`,
                            lifetime = 5
                        })
                    end))
                end})

                PurchaseGunColumn = PurchaseGunTab:column({})

                local TeleportListSection = PurchaseGunColumn:section({name = "Teleport To Location", side = "right", size = 1, icon = GetImage("World.png")})

                local List = {}

                for Index, Value in Config.TheBronx.TeleportationList do
                    table.insert(List, Index)
                end

                table.sort(List)

                TeleportListSection:list({flag = "TeleportToPlace_TheBronx", options = List, callback = function(state)
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if not state then
                            return
                        end

                        Teleport(Config.TheBronx.TeleportationList[state])

                        library.notifications:create_notification({
                            name = "Scorpio.Hub",
                            info = `Successfully teleported to {state}!`,
                            lifetime = 5
                        })
                    end))
                end})
            end
        end
    end
end

if Game_Name == "South Bronx" then
    window:seperator({name = "Game"}) do
        local LocalPlayerTab, PlayersTab, PurchaseGunTab = window:tab({name = "Main", tabs = {"Local Player", "Players", "Teleports"}, icon = GetImage("World.png")}) do
            do -- \\ Local Player
                local LocalPlayerColumn = LocalPlayerTab:column({})
                local LocalPlayerModsSection = LocalPlayerColumn:section({name = "Local Player Modifications", side = "left", size = 0.475})

                local __Modifications = {
                    "Infinite Stamina";
                    "Instant Interact";
                    "Delete On Key";
                    "Hide Name";
                    "No Clip";
                    "Speed";
                }

                for _, Index in __Modifications do
                    LocalPlayerModsSection:toggle({type = "toggle", name = Index, flag = Index.."_SB", default = false, callback = Index ~= "No Clip" and LPH_NO_VIRTUALIZE(function(Value)
                            Index = string.gsub(Index, " ", "")
                            Config.South_Bronx.LocalPlayer_Config[Index] = Value
                        end) or function(Value)
                            if Value and not Solara then
                                RunService:BindToRenderStep("NOCLIP", 1, LPH_NO_VIRTUALIZE(function()
                                    if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                                        if LocalPlayer.Character.Humanoid.Health ~= 0 then
                                            for Index, Value in LocalPlayer.Character:GetDescendants() do
                                                if Collide_Data[Value.Name] then
                                                    pcall(function()
                                                        Value.CanCollide = false
                                                    end)
                                                end
                                            end
                                        else
                                            for Index, Value in LocalPlayer.Character:GetDescendants() do
                                                if Collide_Data[Value.Name] then
                                                    pcall(function()
                                                        Value.CanCollide = true
                                                    end)
                                                end
                                            end
                                        end
                                    end
                                end))
                            else
                                RunService:UnbindFromRenderStep("NOCLIP")
                
                                for Index, Value in LocalPlayer.Character:GetDescendants() do
                                    if Collide_Data[Value.Name] then
                                        pcall(function()
                                            Value.CanCollide = true
                                        end)
                                    end
                                end
                            end
                    end})
                end

                LocalPlayerModsSection = LocalPlayerColumn:section({name = "Modification Settings", side = "left", size = 0.275, icon = GetImage("Settings.png")})

                LocalPlayerModsSection:slider({name = "WalkSpeed Value", flag = "WalkSpeedValue_SouthBronx", min = 0, max = 50, default = 25, suffix = "%", callback = function(state)
                    Config.South_Bronx.LocalPlayer_Config.SpeedValue = state/100
                end})

                LocalPlayerModsSection:keybind({name = "Delete + Click Key", flag = "DeleteOnKey_SouthBronx", key = Enum.KeyCode.LeftControl, mode = "Hold", callback = function(state)
                    Config.South_Bronx.LocalPlayer_Config.DeleteKey = library.flags["DeleteOnKey_SouthBronx"].key
                end})

                TeleportMethodSection = LocalPlayerColumn:section({name = "Teleportation Method", side = "left", size = 0.175, icon = GetImage("Wrench.png")})

                TeleportMethodSection:dropdown({name = "Select Method", flag = "TeleportMethod_SB", width = 100, items = {"Dirt Bike", "Damage", "Tween"}, seperator = false, multi = false, default = "Damage", callback = function(state)
                    Config.South_Bronx.TeleportMethod = state
                end})

                LocalPlayerColumn = LocalPlayerTab:column({})

                local VulnSection = LocalPlayerColumn:section({name = "Vulnerability Section", side = "right", size = 0.23 , icon = GetImage("unlocked.png")})

                local _OwnedHotChips = LocalPlayer:GetAttribute("ExtraHotChipsMoneyEnabled")

                local OwnedHotChips = _OwnedHotChips

                local _Tiers = {
                    ["TIER_1"] = LocalPlayer:GetAttribute("TIER_1");
                    ["TIER_2"] = LocalPlayer:GetAttribute("TIER_2");
                    ["TIER_3"] = LocalPlayer:GetAttribute("TIER_3");
                }

                local Tiers = {
                    ["TIER_1"] = LocalPlayer:GetAttribute("TIER_1");
                    ["TIER_2"] = LocalPlayer:GetAttribute("TIER_2");
                    ["TIER_3"] = LocalPlayer:GetAttribute("TIER_3");
                }

                local _ScriptLoaded = false;

                VulnSection:toggle({name = "Free Tier 1, 2 and 3", default = false, flag = "Free_Tiers", type = 'toggle', callback = function(state)
                    if not _ScriptLoaded then return end

                    for Index, Value in Tiers do
                        if _Tiers[Index] then continue end

                        local Arguments = {
                            [1] = "UpdateSettingAttribute",
                            [2] = {
                                ["Attribute"] = Index,
                                ["Enabled"] = Tiers[Index]
                            }
                        }
                        
                        FireServer(ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("ClientEffects"), table.unpack(Arguments))       
                        
                        Tiers[Index] = not Tiers[Index]
                    end
                end})

                VulnSection:toggle({name = "Free Extra Hot Chips Cash", default = false, flag = "Free_Chips", type = 'toggle', callback = function(state)
                    if not _ScriptLoaded then return end

                    local Arguments = {
                        [1] = "UpdateSettingAttribute",
                        [2] = {
                            ["Attribute"] = "ExtraHotChipsMoneyEnabled",
                            ["Enabled"] = OwnedHotChips
                        }
                    }
                    
                    FireServer(ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("ClientEffects"), table.unpack(Arguments))       

                    OwnedHotChips = not OwnedHotChips
                end})

                local FarmSection = LocalPlayerColumn:section({name = "Auto Farming Section", side = "right", size = 0.54, icon = GetImage("Wheatt.png")})

                FarmSection:toggle({name = "Auto-Farm Cards", default = false, flag = "Card_Auto_Farm", type = "toggle", callback = function(state)
                    task.spawn(function() if not _ScriptLoaded then return end
                        if Config.South_Bronx.OwnedBike == "Unknown" then
                            local Bike = Find_Bike()
                            if Bike == nil then
                                ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("Dealershipinteraction"):FireServer("Spawn", "DirtBike")
                                task.wait(1)
                                Bike = Find_Bike()
                                task.wait(1)
                                if Bike == nil then Config.South_Bronx.OwnedBike = "No" else Config.South_Bronx.OwnedBike = "Yes" end
                            else
                                Config.South_Bronx.OwnedBike = "Yes"
                            end
                            task.wait(0.5)
                        end
                        Config.South_Bronx.FarmingUtilities.CardFarm = state
                        if state then Start_CardFarm() else Stop_CardFarm() end
                    end)
                end})

                FarmSection:toggle({name = "Auto-Farm Boxes", default = false, flag = "Box_Auto_Farm", type = "toggle", callback = function(state)
                    if not _ScriptLoaded then return end
                    Config.South_Bronx.FarmingUtilities.BoxFarm = state
                    if state then Start_BoxFarm() else Stop_BoxFarm() end
                end})

                FarmSection:toggle({name = "Auto-Farm Chips", default = false, flag = "Chip_Auto_Farm", type = "toggle", callback = function(state)
                    task.spawn(function() if not _ScriptLoaded then return end
                        if Config.South_Bronx.OwnedBike == "Unknown" then
                            local Bike = Find_Bike()
                            if Bike == nil then
                                ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("Dealershipinteraction"):FireServer("Spawn", "DirtBike")
                                task.wait(1)
                                Bike = Find_Bike()
                                task.wait(1)
                                if Bike == nil then Config.South_Bronx.OwnedBike = "No" else Config.South_Bronx.OwnedBike = "Yes" end
                            else
                                Config.South_Bronx.OwnedBike = "Yes"
                            end
                            task.wait(0.5)
                        end
                        Config.South_Bronx.FarmingUtilities.ChipFarm = state
                        if state then Start_ChipFarm() else Stop_ChipFarm() end
                    end)
                end})

                FarmSection:toggle({name = "Auto-Farm Marshmallows", default = false, flag = "Marshmallow_Auto_Farm", type = "toggle", callback = function(state)
                    task.spawn(function() if not _ScriptLoaded then return end
                        if Config.South_Bronx.OwnedBike == "Unknown" then
                            local Bike = Find_Bike()
                            if Bike == nil then
                                ReplicatedStorage:WaitForChild("RemoteEvents"):WaitForChild("Dealershipinteraction"):FireServer("Spawn", "DirtBike")
                                task.wait(1)
                                Bike = Find_Bike()
                                task.wait(1)
                                if Bike == nil then Config.South_Bronx.OwnedBike = "No" else Config.South_Bronx.OwnedBike = "Yes" end
                            else
                                Config.South_Bronx.OwnedBike = "Yes"
                            end
                            task.wait(0.5)
                        end
                        Config.South_Bronx.FarmingUtilities.MarshmallowFarm = state
                        if state then Start_MarshmallowFarm() else Stop_MarshmallowFarm() end
                    end)
                end})

                local _MarshMallowDropdown;

                _MarshMallowDropdown = FarmSection:slider({name = "Marshmallow Amount - $950", flag = "Marshmallow_Amount", min = 1, max = 50, default = 5, suffix = "", callback = function(state)
                    Config.South_Bronx.FarmingUtilities.MarshmallowIncrement = state

                    if _MarshMallowDropdown then
                        _MarshMallowDropdown.changetext(string.format("Marshmallow Amount - $%s", (state * 190)))
                    end
                end})

                FarmSection:label({wrapped = true, name = "You must own a house with pots to use the marshmallow farm!"})

                local DupeSection = LocalPlayerColumn:section({name = "Duplication Section", side = "right", size = 0.2, icon = "rbxassetid://139628202576511"})

                DupeSection:button({name = "Duplication Vulnerability", callback = function()
                    FireServer(ReplicatedStorage.RemoteEvents.PurchaseItem, 'Shoes', 'YZ Slides', '\255')
                end})

                _ScriptLoaded = true
            end

            do -- \\ Teleports
                local Location_Names = {"Dirty Hobo 💩"; "Active ATM 🏧"}

                for Index, Value in Config.South_Bronx.Locations do
                    table.insert(Location_Names, Index)
                end

                table.sort(Location_Names)
                
                local PurchaseGunColumn = PurchaseGunTab:column({})

                local WeaponListSection = PurchaseGunColumn:section({name = "Purchase Selected Item", side = "left", size = 1, icon = GetImage("Cash.png")})

                WeaponListSection:list({flag = "PurchaseSelectedItem_SouthBronx", options = Config.South_Bronx.Guns, callback = function(v)
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if not v then return end

                        Config.South_Bronx.Selected_Item = tostring(v)

                        local self = string.match(Config.South_Bronx.Selected_Item, "^(.*) %-");

                        local DidntBuy = false
                            
                        local suc, err = pcall(function()
                            self = self:match("^%s*(.-)%s*$");

                            local PromptCFrame = GunPosition[self];
                            local OldCFrame = LocalPlayer.Character.HumanoidRootPart.CFrame

                            task.spawn(function()
                                ItemReceieved = false;
                                local Check = LocalPlayer.Backpack.ChildAdded:Connect(function(Child)
                                    if tostring(Child) == tostring(self) then
                                        ItemReceieved = true
                                    end
                                end)

                                task.spawn(function()
                                    task.wait(10)
                                    ItemReceieved = true
                                end)

                                repeat RunService.RenderStepped:Wait() until ItemReceieved == true
                                Check:Disconnect()
                            end)

                            local Teleport_Status = Teleport(PromptCFrame)

                            if Teleport_Status == "Failed" then
                                library.notifications:create_notification({
                                    name = "Scorpio.Hub",
                                    info = `Failed to purchase {self}!`,
                                    lifetime = 7.5
                                })

                                DidntBuy = true

                                return
                            end

                            repeat RunService.RenderStepped:Wait() until LocalPlayer.Character.Humanoid.SeatPart == nil

                            for Index = 1, Config.South_Bronx.Item_Amount do
                                fireproximityprompt(Workspace:FindFirstChild("PromptPurchases")[self].proxprompt:FindFirstChildOfClass("ProximityPrompt"))
                            end

                            repeat RunService.RenderStepped:Wait() until ItemReceieved == true

                            repeat RunService.RenderStepped:Wait() until Teleport_Status == "Success"

                            task.wait(1.5)

                            Teleport(OldCFrame)
                        end)

                        if not LocalPlayer.Backpack:FindFirstChild(self) and not LocalPlayer.Character:FindFirstChild(self) then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Failed to purchase {self}!`,
                                lifetime = 7.5
                            })

                            return
                        end

                        if not DidntBuy then
                            if suc then
                                library.notifications:create_notification({
                                    name = "Scorpio.Hub",
                                    info = `Successfully purchased {self}!`,
                                    lifetime = 5
                                })
                            else
                                library.notifications:create_notification({
                                    name = "Scorpio.Hub",
                                    info = `Failed to purchase item {self} . error : {err}`,
                                    lifetime = 15
                                })
                            end
                        end
                    end))
                end})

                PurchaseGunColumn = PurchaseGunTab:column({})

                local TeleportListSection = PurchaseGunColumn:section({name = "Teleport To Location", side = "right", size = 1, icon = GetImage("World.png")})

                local Location_Names = {"Dirty Hobo 💩"; "Active ATM 🏧"}

                for Index, Value in Config.South_Bronx.Locations do
                    table.insert(Location_Names, Index)
                end

                table.sort(Location_Names, function(...)
                    return select(1, ...) < select(2, ...)
                end)

                local TP_Debounce = false

                TeleportListSection:list({flag = "TeleportToPlace_SouthBronx", options = Location_Names, callback = function(state)
                    task.spawn(LPH_NO_VIRTUALIZE(function()
                        if not state then
                            return
                        end

                        if TP_Debounce then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Please wait!`,
                                lifetime = 5
                            })

                            return
                        end

                        Config.South_Bronx.Selected_Location = state

                        local _Position = CFrame.new(0,0,0)

                        TP_Debounce = true

                        local suc, error = pcall(function()
                            if Config.South_Bronx.Selected_Location ~= "Dirty Hobo 💩" and Config.South_Bronx.Selected_Location ~= "Active ATM 🏧" then
                            _Position = Config.South_Bronx.Locations[Config.South_Bronx.Selected_Location]
                            Teleport(Config.South_Bronx.Locations[Config.South_Bronx.Selected_Location])
                            elseif Config.South_Bronx.Selected_Location == "Dirty Hobo 💩" then
                                if Workspace.Folders.HomelessPeople:FindFirstChild("RightLowerLeg", true) then
                                    local _Hobo = Workspace.Folders.HomelessPeople:FindFirstChild("RightLowerLeg", true).CFrame
                                    _Position = _Hobo
                                    Teleport(_Hobo)
                                else
                                    library.notifications:create_notification({
                                        name = "Scorpio.Hub",
                                        info = `Failed to locate dirty hobo crackhead!`,
                                        lifetime = 5
                                    })
                                end
                            elseif Config.South_Bronx.Selected_Location == "Active ATM 🏧" then
                                local ATMPositions = {
                                    ATM1 = CFrame.new(-30, 4, -300);
                                    ATM2 = CFrame.new(539, 4, -353);
                                    ATM3 = CFrame.new(497, 4, 403);
                                    ATM4 = CFrame.new(236, 4, -158);
                                    ATM5 = CFrame.new(525, -8, -92);
                                    ATM6 = CFrame.new(-450, 4, 370);
                                    ATM7 = CFrame.new(-266, 4, -209);
                                    ATM8 = CFrame.new(-11, 4, 231);
                                    ATM9 = CFrame.new(717, 4, 410);
                                    ATM10 = CFrame.new(-532, 3, -21);
                                    ATM11 = CFrame.new(-646, 4, 155);
                                    ATM12 = CFrame.new(698, 3, -241);
                                    ATM13 = CFrame.new(-315, 4, 142);
                                    ATM14 = CFrame.new(-378, 4, -365);
                                    ATM15 = CFrame.new(360, 4, -364);
                                    ATM16 = CFrame.new(870, 3, -346);
                                    ATM17 = CFrame.new(904, 3, -99);
                                    ATM18 = CFrame.new(1095, 3, 178);
                                    ATM19 = CFrame.new(1054, 4, 585);
                                    ATM20 = CFrame.new(895, 4, 142);
                                    ATM21 = CFrame.new(1021, 3, -229);
                                };

                                local ATM;

                                for Index, Value in Workspace.Map.ATMS:GetChildren() do
                                    if Value.ATMScreen.Transparency == 0 then
                                        ATM = Value
                                        break
                                    end
                                end

                                _Position = ATMPositions[tostring(ATM)]

                                Teleport(ATMPositions[tostring(ATM)])
                            end
                        end)

                        TP_Debounce = false

                        if (LocalPlayer.Character.HumanoidRootPart.Position - _Position.Position).Magnitude > 20 then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Failed teleported to {state}!`,
                                lifetime = 7.5
                            })

                            return
                        end

                        if suc then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Successfully teleported to {state}!`,
                                lifetime = 5
                            })
                        else
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Teleportation to {state}. error : {err}`,
                                lifetime = 15
                            })
                        end
                    end))
                end})
            end

            do -- \\ Player Tab        
                local Column = PlayersTab:column({})

                local PlayerListSection = Column:section({name = "Select Player", size = 1, default = false, side = 'left' --[[3 people icon]]})

                local PlayerList = PlayerListSection:list({flag = "SelectPlayer_SouthBronx", options = {}, callback = function(state)
                    Config.South_Bronx.PlayerUtilities.SelectedPlayer = tostring(state)
                end})

                local RefreshPlayers = LPH_NO_VIRTUALIZE(function()
                    local Cache = {}

                    for i, Player in Players:GetPlayers() do
                        if Player == LocalPlayer then continue end

                        table.insert(Cache, Player.Name)
                    end

                    table.sort(Cache)

                    PlayerList.refresh_options(Cache)
                end)

                task.spawn(RefreshPlayers)

                Players.PlayerAdded:Connect(RefreshPlayers)

                Players.PlayerRemoving:Connect(RefreshPlayers)

                Column = PlayersTab:column({})

                local PlayerOptionsSection = Column:section({name = "Player Options", size = 1, default = false, side = 'right', icon = GetImage("Wrench.png")})
            
                PlayerOptionsSection:toggle({type = "toggle", name = "Spectate Player", flag = "SpectatePlayer_SouthBronx", default = false, callback = function(state)
                    Config.South_Bronx.PlayerUtilities.SpectatePlayer = state
                end})

                PlayerOptionsSection:toggle({type = "toggle", name = "Bring Player", flag = "BringPlayer_SouthBronx", default = false, callback = function(state)
                    Config.South_Bronx.PlayerUtilities.BringingPlayer = state
                end})

                PlayerOptionsSection:button({name = "Teleport To Player", callback = function()
                    task.spawn(function()
                        if not Config.South_Bronx.PlayerUtilities.SelectedPlayer then return end

                        local Success, Error = pcall(function()
                            Teleport(Players[Config.South_Bronx.PlayerUtilities.SelectedPlayer].Character.HumanoidRootPart.CFrame)
                        end)

                        if (LocalPlayer.Character.HumanoidRootPart.Position - Players[Config.South_Bronx.PlayerUtilities.SelectedPlayer].Character.HumanoidRootPart.Position).Magnitude > 20 then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Failed to teleport to {Config.South_Bronx.PlayerUtilities.SelectedPlayer}!`,
                                lifetime = 7.5
                            })

                            return
                        end

                        if Success then
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Successfully teleported to {Config.South_Bronx.PlayerUtilities.SelectedPlayer}!`,
                                lifetime = 7.5
                            })
                        else
                            library.notifications:create_notification({
                                name = "Scorpio.Hub",
                                info = `Failed to teleport to {Config.South_Bronx.PlayerUtilities.SelectedPlayer}. Error : {Error}`,
                                lifetime = 10
                            })
                        end
                    end)
                end})
                
                PlayerOptionsSection:button({name = "Get Into Players Car", callback = function()
                    pcall(SitInPlayersVehicle, Players[Config.South_Bronx.PlayerUtilities.SelectedPlayer])
                end})
            end
        end
    end
end

if Game_Name == "BlockSpin" then
    window:seperator({name = "Game"}) do
        local LocalPlayerTab, PlayersTab, PurchaseGunTab, MiscTab = window:tab({name = "Main", tabs = {"Local Player"}, icon = GetImage("World.png")}) do
            local LocalPlayerColumn = LocalPlayerTab:column({})
            local LocalPlayerModsSection = LocalPlayerColumn:section({name = "Local Player Modifications", side = "left", size = 0.475})

            local FarmingSection = LocalPlayerColumn:section({name = "Auto-Farming Utilities", side = "left", size = 0.475, icon = GetImage("Wheatt.png")})

            local _ScriptLoaded = false

            FarmingSection:dropdown({name = "Mope Type", flag = "MopType_BlockSpin", width = 120, items = {"Default", "Silver", "Gold", "Diamond"}, seperator = false, multi = false, default = 'Default', callback = function(state)
                Config.BlockSpin.AutoFarming.MopType = state
            end})

            FarmingSection:toggle({name = "Auto-Farm Mop Job", flag = "JanitorFarm_BlockSpin", type = "toggle", callback = function(state)
                if not _ScriptLoaded then return end
                Config.BlockSpin.AutoFarming.FarmMops = state

                task.spawn(function()
                    if Config.BlockSpin.AutoFarming.FarmMops then
                        Start_MopFarm()
                    else
                        Stop_MopFarm()
                    end
                end)
            end})

            _ScriptLoaded = true
        end
    end
end



window:seperator({name = "Combat"}) do
    local SilentAimTab, GunModsTab = window:tab({name = "Silent Aim", tabs = {"General Settings", "Gun Mods"}, icon = GetImage("Pistol.png")})
    
    -- Gun Mods Tab Content
    do
        local GunModsColumn = GunModsTab:column({})
        local GunModsSection = GunModsColumn:section({name = "Gun Mods", side = "left", size = 0.999, icon = GetImage("Pistol.png")})
        
        -- Variables for gun customization
        local rainbowHue = 0
        local rainbowConnection = nil
        local currentGunColor = Color3.fromRGB(0, 255, 255) -- Default cyan
        local currentMaterial = "ForceField"
        local isRainbowMode = false
        local autoColorEnabled = false
        local originalGunData = {}
        
        -- Tracer variables
        local tracerEnabled = false
        local tracerColor = Color3.fromRGB(255, 0, 0) -- Default red
        local tracerRainbowMode = false
        local tracerRainbowHue = 0
        local tracerLength = 0.3
        local tracerWidth = 0.3
        local tracerTransparency = 0.3
        local tracerDistance = 500
        
        -- Function to stop all color cycles
        local function stopAllCycles()
            if rainbowConnection then
                rainbowConnection:Disconnect()
                rainbowConnection = nil
            end
        end
        
        -- ========== BULLET TRACERS SECTION ==========
        GunModsSection:label({name = "🎯  BULLET TRACERS 🎯", wrapped = true})
        GunModsSection:label({name = "Creates tracers when you click", wrapped = true})
        
        -- Simple tracer creation function
        local function createFakeTracer()
            if not tracerEnabled then return end
            
            local player = game.Players.LocalPlayer
            local character = player.Character
            if not character then return end
            
            local camera = workspace.CurrentCamera
            if not camera then return end
            
            -- Get gun position
            local startPos = camera.CFrame.Position + (camera.CFrame.LookVector * 2)
            
            -- Try to find gun handle for better position
            local tool = character:FindFirstChildOfClass("Tool")
            if tool then
                local handle = tool:FindFirstChild("Handle") or tool:FindFirstChildWhichIsA("Part")
                if handle then
                    startPos = handle.Position
                end
            end
            
            -- Calculate end position
            local endPos = camera.CFrame.Position + (camera.CFrame.LookVector * tracerDistance)
            
            -- Create tracer beam
            local tracer = Instance.new("Part")
            tracer.Name = "BulletTracer"
            tracer.Anchored = true
            tracer.CanCollide = false
            tracer.Material = Enum.Material.Neon
            
            -- Calculate distance and position
            local distance = (startPos - endPos).Magnitude
            tracer.Size = Vector3.new(tracerWidth, tracerWidth, distance)
            tracer.CFrame = CFrame.lookAt(startPos, endPos) * CFrame.new(0, 0, -distance/2)
            
            -- Set color
            if tracerRainbowMode then
                tracerRainbowHue = (tracerRainbowHue + 0.1) % 1
                tracer.Color = Color3.fromHSV(tracerRainbowHue, 1, 1)
            else
                tracer.Color = tracerColor
            end
            
            tracer.Transparency = tracerTransparency
            tracer.Parent = workspace
            
            -- Add glow
            local light = Instance.new("PointLight")
            light.Brightness = 5
            light.Range = 8
            light.Color = tracer.Color
            light.Parent = tracer
            
            -- Clean up
            game:GetService("Debris"):AddItem(tracer, tracerLength)
        end
        
        -- Main tracer toggle
        local tracerToggle = GunModsSection:toggle({
            type = "toggle",
            name = "Enable  Bullet Tracers",
            flag = "Tracer_Enabled",
            default = false,
            info = "Shows tracers when you click",
            callback = function(state)
                tracerEnabled = state
                
                if state then
                    -- Connect to mouse click
                    local player = game.Players.LocalPlayer
                    local mouse = player:GetMouse()
                    
                    -- Store connection
                    if not originalGunData["_mouse"] then
                        originalGunData["_mouse"] = {}
                    end
                    
                    originalGunData["_mouse"].clickConnection = mouse.Button1Down:Connect(function()
                        createFakeTracer()
                    end)
                    
                    library.notifications:create_notification({
                        name = "Fake Tracers",
                        info = "Tracers enabled! Click to see them",
                        lifetime = 2
                    })
                else
                    -- Disconnect
                    if originalGunData["_mouse"] and originalGunData["_mouse"].clickConnection then
                        originalGunData["_mouse"].clickConnection:Disconnect()
                        originalGunData["_mouse"].clickConnection = nil
                    end
                    
                    -- Clean up tracers
                    for _, v in pairs(workspace:GetChildren()) do
                        if v.Name == "FakeBulletTracer" then
                            v:Destroy()
                        end
                    end
                    
                    library.notifications:create_notification({
                        name = "Fake Tracers",
                        info = "Tracers disabled",
                        lifetime = 2
                    })
                end
            end
        })
        
        -- Tracer color picker
        GunModsSection:colorpicker({
            name = "Tracer Color",
            flag = "Tracer_Color",
            color = tracerColor,
            callback = function(color, alpha)
                tracerColor = color
                tracerRainbowMode = false
                if library.flags["Tracer_Rainbow"] then
                    library.flags["Tracer_Rainbow"] = false
                end
            end
        })
        
        -- Tracer rainbow toggle
        GunModsSection:toggle({
            type = "toggle",
            name = "🌈 Rainbow Tracers",
            flag = "Tracer_Rainbow",
            default = false,
            info = "Rainbow colored tracers",
            callback = function(state)
                tracerRainbowMode = state
            end
        })
        
        -- Tracer length slider
        GunModsSection:slider({
            name = "Tracer Duration",
            flag = "Tracer_Length",
            min = 0.1,
            max = 2.0,
            decimal = 1,
            default = 0.3,
            suffix = "s",
            info = "How long tracers last",
            callback = function(value)
                tracerLength = value
            end
        })
        
        -- Tracer width slider
        GunModsSection:slider({
            name = "Tracer Width",
            flag = "Tracer_Width",
            min = 0.1,
            max = 1.0,
            decimal = 1,
            default = 0.3,
            suffix = "studs",
            info = "Thickness of tracers",
            callback = function(value)
                tracerWidth = value
            end
        })
        
        -- Tracer distance slider
        GunModsSection:slider({
            name = "Tracer Distance",
            flag = "Tracer_Distance",
            min = 100,
            max = 2000,
            default = 500,
            suffix = "studs",
            info = "How far tracers go",
            callback = function(value)
                tracerDistance = value
            end
        })
        
        -- Tracer transparency slider
        GunModsSection:slider({
            name = "Tracer Transparency",
            flag = "Tracer_Transparency",
            min = 0,
            max = 1,
            decimal = 1,
            default = 0.3,
            info = "How see-through tracers are",
            callback = function(value)
                tracerTransparency = value
            end
        })
        
        -- Test button
        GunModsSection:button({
            name = "🎯 Test Tracer",
            callback = function()
                if tracerEnabled then
                    createFakeTracer()
                else
                    library.notifications:create_notification({
                        name = "Fake Tracers",
                        info = "Enable tracers first!",
                        lifetime = 2
                    })
                end
            end
        })
        
        -- ========== MANUAL COLOR CONTROLS ==========
        GunModsSection:label({name = "🎮 MANUAL COLOR CONTROLS 🎮", wrapped = true})
        
        -- RGB sliders for manual color control
        local redValue = 0
        local greenValue = 255
        local blueValue = 255
        
        GunModsSection:slider({
            name = "Red",
            flag = "Manual_Red",
            min = 0,
            max = 255,
            default = 0,
            info = "Adjust red value",
            callback = function(value)
                redValue = value
                if not isRainbowMode and not autoColorEnabled then
                    currentGunColor = Color3.fromRGB(redValue, greenValue, blueValue)
                    if library.flags["GunCustomization_Toggle"] then
                        for tool, _ in pairs(originalGunData) do
                            if tool and tool.Parent then
                                for _, part in ipairs(tool:GetDescendants()) do
                                    if part:IsA("BasePart") then
                                        part.Color = currentGunColor
                                    end
                                end
                            end
                        end
                    end
                end
            end
        })
        
        GunModsSection:slider({
            name = "Green",
            flag = "Manual_Green",
            min = 0,
            max = 255,
            default = 255,
            info = "Adjust green value",
            callback = function(value)
                greenValue = value
                if not isRainbowMode and not autoColorEnabled then
                    currentGunColor = Color3.fromRGB(redValue, greenValue, blueValue)
                    if library.flags["GunCustomization_Toggle"] then
                        for tool, _ in pairs(originalGunData) do
                            if tool and tool.Parent then
                                for _, part in ipairs(tool:GetDescendants()) do
                                    if part:IsA("BasePart") then
                                        part.Color = currentGunColor
                                    end
                                end
                            end
                        end
                    end
                end
            end
        })
        
        GunModsSection:slider({
            name = "Blue",
            flag = "Manual_Blue",
            min = 0,
            max = 255,
            default = 255,
            info = "Adjust blue value",
            callback = function(value)
                blueValue = value
                if not isRainbowMode and not autoColorEnabled then
                    currentGunColor = Color3.fromRGB(redValue, greenValue, blueValue)
                    if library.flags["GunCustomization_Toggle"] then
                        for tool, _ in pairs(originalGunData) do
                            if tool and tool.Parent then
                                for _, part in ipairs(tool:GetDescendants()) do
                                    if part:IsA("BasePart") then
                                        part.Color = currentGunColor
                                    end
                                end
                            end
                        end
                    end
                end
            end
        })
        
        -- Random color button
        GunModsSection:button({
            name = "🎲 Random Color",
            callback = function()
                local r = math.random(0, 255)
                local g = math.random(0, 255)
                local b = math.random(0, 255)
                
                currentGunColor = Color3.fromRGB(r, g, b)
                isRainbowMode = false
                autoColorEnabled = false
                
                -- Update flags
                if library.flags["GunRainbow_Toggle"] then
                    library.flags["GunRainbow_Toggle"] = false
                end
                
                -- Update RGB sliders
                if library.flags["Manual_Red"] then
                    library.flags["Manual_Red"] = r
                end
                if library.flags["Manual_Green"] then
                    library.flags["Manual_Green"] = g
                end
                if library.flags["Manual_Blue"] then
                    library.flags["Manual_Blue"] = b
                end
                
                -- Update existing guns
                if library.flags["GunCustomization_Toggle"] then
                    for tool, _ in pairs(originalGunData) do
                        if tool and tool.Parent then
                            for _, part in ipairs(tool:GetDescendants()) do
                                if part:IsA("BasePart") then
                                    part.Color = currentGunColor
                                end
                            end
                        end
                    end
                    
                    -- Stop all cycles
                    stopAllCycles()
                end
            end
        })
        
        -- Main gun customization toggle
        local gunModToggle = GunModsSection:toggle({
            type = "toggle", 
            name = "Enable Gun Customization", 
            flag = "GunCustomization_Toggle", 
            default = false,
            info = "Apply custom colors/materials to your gun",
            callback = function(state)
                local player = game.Players.LocalPlayer
                local character = player.Character or player.CharacterAdded:Wait()
                
                local function applyEffect(tool)
                    if not tool then return end
                    
                    -- Store original properties if not already saved
                    if not originalGunData[tool] then
                        originalGunData[tool] = {}
                        for _, part in ipairs(tool:GetDescendants()) do
                            if part:IsA("BasePart") then
                                originalGunData[tool][part] = {
                                    Color = part.Color,
                                    Material = part.Material
                                }
                            end
                        end
                    end
                    
                    -- Apply current settings
                    for _, part in ipairs(tool:GetDescendants()) do
                        if part:IsA("BasePart") then
                            part.Material = Enum.Material[currentMaterial]
                            if not isRainbowMode then
                                part.Color = currentGunColor
                            end
                        end
                    end
                end
                
                local function revertEffect(tool)
                    if originalGunData[tool] then
                        for part, data in pairs(originalGunData[tool]) do
                            if part and part.Parent then
                                pcall(function()
                                    part.Color = data.Color
                                    part.Material = data.Material
                                end)
                            end
                        end
                        originalGunData[tool] = nil
                    end
                end
                
                if state then
                    -- Apply to current tool
                    local tool = character:FindFirstChildOfClass("Tool")
                    if tool then
                        applyEffect(tool)
                    end
                    
                    -- Detect new tools
                    character.ChildAdded:Connect(function(child)
                        if child:IsA("Tool") then
                            applyEffect(child)
                        end
                    end)
                    
                    -- Start rainbow cycle if enabled
                    if isRainbowMode and not rainbowConnection then
                        rainbowConnection = game:GetService("RunService").Heartbeat:Connect(function()
                            rainbowHue = (rainbowHue + 0.005) % 1
                            local rainbowColor = Color3.fromHSV(rainbowHue, 1, 1)
                            
                            for tool, _ in pairs(originalGunData) do
                                if tool and tool.Parent then
                                    for _, part in ipairs(tool:GetDescendants()) do
                                        if part:IsA("BasePart") then
                                            part.Color = rainbowColor
                                        end
                                    end
                                end
                            end
                        end)
                    end
                else
                    -- Revert all tools
                    for tool, _ in pairs(originalGunData) do
                        if tool and tool.Parent then
                            revertEffect(tool)
                        end
                    end
                    
                    -- Stop rainbow cycle
                    if rainbowConnection then
                        rainbowConnection:Disconnect()
                        rainbowConnection = nil
                    end
                end
            end
        })
        
        -- Color picker for custom color
        GunModsSection:colorpicker({
            name = "Custom Gun Color", 
            flag = "GunColor_Picker",
            color = currentGunColor,
            callback = function(color, alpha)
                currentGunColor = color
                isRainbowMode = false
                
                -- Update existing guns if customization is enabled
                if library.flags["GunCustomization_Toggle"] then
                    for tool, _ in pairs(originalGunData) do
                        if tool and tool.Parent then
                            for _, part in ipairs(tool:GetDescendants()) do
                                if part:IsA("BasePart") then
                                    part.Color = color
                                end
                            end
                        end
                    end
                    
                    -- Stop rainbow if it was running
                    if rainbowConnection then
                        rainbowConnection:Disconnect()
                        rainbowConnection = nil
                    end
                end
            end
        })
        
        -- Rainbow mode toggle
        GunModsSection:toggle({
            type = "toggle",
            name = "🌈 Rainbow Mode",
            flag = "GunRainbow_Toggle",
            default = false,
            info = "Automatically cycle through colors",
            callback = function(state)
                isRainbowMode = state
                
                if state and library.flags["GunCustomization_Toggle"] then
                    -- Start rainbow cycle
                    if not rainbowConnection then
                        rainbowConnection = game:GetService("RunService").Heartbeat:Connect(function()
                            rainbowHue = (rainbowHue + 0.005) % 1
                            local rainbowColor = Color3.fromHSV(rainbowHue, 1, 1)
                            
                            for tool, _ in pairs(originalGunData) do
                                if tool and tool.Parent then
                                    for _, part in ipairs(tool:GetDescendants()) do
                                        if part:IsA("BasePart") then
                                            part.Color = rainbowColor
                                        end
                                    end
                                end
                            end
                        end)
                    end
                else
                    -- Stop rainbow and revert to selected color
                    if rainbowConnection then
                        rainbowConnection:Disconnect()
                        rainbowConnection = nil
                    end
                    
                    if library.flags["GunCustomization_Toggle"] then
                        for tool, _ in pairs(originalGunData) do
                            if tool and tool.Parent then
                                for _, part in ipairs(tool:GetDescendants()) do
                                    if part:IsA("BasePart") then
                                        part.Color = currentGunColor
                                    end
                                end
                            end
                        end
                    end
                end
            end
        })
        
        -- Rainbow speed slider
        local rainbowSpeedSlider = GunModsSection:slider({
            name = "🌈 Rainbow Speed",
            flag = "GunRainbow_Speed",
            min = 1,
            max = 20,
            default = 10,
            suffix = "x",
            info = "Adjust rainbow cycling speed",
            callback = function(value)
                -- This will be used when restarting rainbow mode
                if rainbowConnection then
                    rainbowConnection:Disconnect()
                    rainbowConnection = game:GetService("RunService").Heartbeat:Connect(function()
                        rainbowHue = (rainbowHue + (value / 2000)) % 1
                        local rainbowColor = Color3.fromHSV(rainbowHue, 1, 1)
                        
                        for tool, _ in pairs(originalGunData) do
                            if tool and tool.Parent then
                                for _, part in ipairs(tool:GetDescendants()) do
                                    if part:IsA("BasePart") then
                                        part.Color = rainbowColor
                                    end
                                end
                            end
                        end
                    end)
                end
            end
        })
        
        -- Material dropdown
        GunModsSection:dropdown({
            name = "Gun Material",
            flag = "GunMaterial",
            width = 120,
            items = {
                "ForceField",
                "Neon", 
                "Metal",
                "Glass",
                "Plastic",
                "Wood",
                "SmoothPlastic",
                "Fabric",
                "Ice",
                "Marble",
                "Granite",
                "Concrete",
                "CorrodedMetal",
                "DiamondPlate",
                "Sand"
            },
            default = "ForceField",
            info = "Choose material effect",
            callback = function(selected)
                currentMaterial = selected
                
                -- Update existing guns if customization is enabled
                if library.flags["GunCustomization_Toggle"] then
                    for tool, _ in pairs(originalGunData) do
                        if tool and tool.Parent then
                            for _, part in ipairs(tool:GetDescendants()) do
                                if part:IsA("BasePart") then
                                    pcall(function()
                                        part.Material = Enum.Material[selected]
                                    end)
                                end
                            end
                        end
                    end
                end
            end
        })
        
-- Glow effect toggle with manual and automatic color changing
local glowRainbowHue = 0
local glowRainbowConnection = nil
local glowManualColor = Color3.fromRGB(255, 255, 255) -- Default white
local glowAutoMode = false -- false = manual, true = automatic rainbow
local glowBrightness = 5
local glowRange = 10

-- Function to update glow colors
local function updateGlowColors()
    if not library.flags["GunGlow_Toggle"] then return end
    
    for tool, _ in pairs(originalGunData) do
        if tool and tool.Parent then
            for _, part in ipairs(tool:GetDescendants()) do
                if part:IsA("BasePart") then
                    -- Find existing lights or create new ones
                    local light = part:FindFirstChildWhichIsA("PointLight") or part:FindFirstChildWhichIsA("SurfaceLight")
                    
                    if not light then
                        light = Instance.new("PointLight")
                        light.Parent = part
                    end
                    
                    -- Set color based on mode
                    if glowAutoMode then
                        -- Rainbow mode is handled by the heartbeat connection
                    else
                        light.Color = glowManualColor
                    end
                    
                    light.Brightness = glowBrightness
                    light.Range = glowRange
                end
            end
        end
    end
end

-- Start/stop rainbow glow cycle
local function startGlowRainbow()
    if glowRainbowConnection then
        glowRainbowConnection:Disconnect()
    end
    
    glowRainbowConnection = game:GetService("RunService").Heartbeat:Connect(function()
        if not library.flags["GunGlow_Toggle"] or not glowAutoMode then 
            return 
        end
        
        glowRainbowHue = (glowRainbowHue + 0.005) % 1
        local rainbowColor = Color3.fromHSV(glowRainbowHue, 1, 1)
        
        for tool, _ in pairs(originalGunData) do
            if tool and tool.Parent then
                for _, part in ipairs(tool:GetDescendants()) do
                    if part:IsA("BasePart") then
                        local light = part:FindFirstChildWhichIsA("PointLight") or part:FindFirstChildWhichIsA("SurfaceLight")
                        if light then
                            light.Color = rainbowColor
                        end
                    end
                end
            end
        end
    end)
end

local function stopGlowRainbow()
    if glowRainbowConnection then
        glowRainbowConnection:Disconnect()
        glowRainbowConnection = nil
    end
end

-- Main glow toggle
GunModsSection:toggle({
    type = "toggle",
    name = "✨ Glow Effect",
    flag = "GunGlow_Toggle",
    default = false,
    info = "Add glowing effect to gun (Neon material recommended)",
    callback = function(state)
        if state then
            -- Enable glow
            for tool, _ in pairs(originalGunData) do
                if tool and tool.Parent then
                    for _, part in ipairs(tool:GetDescendants()) do
                        if part:IsA("BasePart") then
                            -- Create point light
                            local light = Instance.new("PointLight")
                            light.Brightness = glowBrightness
                            light.Range = glowRange
                            
                            if glowAutoMode then
                                light.Color = Color3.fromHSV(glowRainbowHue, 1, 1)
                            else
                                light.Color = glowManualColor
                            end
                            
                            light.Parent = part
                        end
                    end
                end
            end
            
            -- Start rainbow if in auto mode
            if glowAutoMode then
                startGlowRainbow()
            end
            
            library.notifications:create_notification({
                name = "Glow Effect",
                info = glowAutoMode and "Rainbow glow enabled!" or "Glow enabled!",
                lifetime = 2
            })
        else
            -- Disable glow - remove all lights
            for tool, _ in pairs(originalGunData) do
                if tool and tool.Parent then
                    for _, part in ipairs(tool:GetDescendants()) do
                        if part:IsA("BasePart") then
                            for _, light in ipairs(part:GetChildren()) do
                                if light:IsA("PointLight") or light:IsA("SurfaceLight") then
                                    light:Destroy()
                                end
                            end
                        end
                    end
                end
            end
            
            -- Stop rainbow cycle
            stopGlowRainbow()
            
            library.notifications:create_notification({
                name = "Glow Effect",
                info = "Glow disabled",
                lifetime = 2
            })
        end
    end
})

-- Manual color picker for glow
GunModsSection:colorpicker({
    name = "🎨 Glow Color (Manual)",
    flag = "Glow_ManualColor",
    color = glowManualColor,
    info = "Choose glow color (disables auto mode)",
    callback = function(color, alpha)
        glowManualColor = color
        glowAutoMode = false
        
        -- Stop rainbow if running
        stopGlowRainbow()
        
        -- Update existing glow if enabled
        if library.flags["GunGlow_Toggle"] then
            for tool, _ in pairs(originalGunData) do
                if tool and tool.Parent then
                    for _, part in ipairs(tool:GetDescendants()) do
                        if part:IsA("BasePart") then
                            local light = part:FindFirstChildWhichIsA("PointLight") or part:FindFirstChildWhichIsA("SurfaceLight")
                            if light then
                                light.Color = color
                            end
                        end
                    end
                end
            end
        end
        
        -- Update flag
        if library.flags["Glow_AutoMode"] then
            library.flags["Glow_AutoMode"] = false
        end
    end
})

-- Auto/Rainbow mode toggle
GunModsSection:toggle({
    type = "toggle",
    name = "🌈 Auto Rainbow Glow",
    flag = "Glow_AutoMode",
    default = false,
    info = "Automatically cycle glow colors",
    callback = function(state)
        glowAutoMode = state
        
        if state then
            -- Start rainbow cycle
            startGlowRainbow()
            
            library.notifications:create_notification({
                name = "Glow Effect",
                info = "Rainbow mode enabled!",
                lifetime = 2
            })
        else
            -- Stop rainbow and revert to manual color
            stopGlowRainbow()
            
            if library.flags["GunGlow_Toggle"] then
                for tool, _ in pairs(originalGunData) do
                    if tool and tool.Parent then
                        for _, part in ipairs(tool:GetDescendants()) do
                            if part:IsA("BasePart") then
                                local light = part:FindFirstChildWhichIsA("PointLight") or part:FindFirstChildWhichIsA("SurfaceLight")
                                if light then
                                    light.Color = glowManualColor
                                end
                            end
                        end
                    end
                end
            end
            
            library.notifications:create_notification({
                name = "Glow Effect",
                info = "Manual mode enabled",
                lifetime = 2
            })
        end
    end
})

-- Rainbow speed slider
GunModsSection:slider({
    name = "🌈 Rainbow Speed",
    flag = "Glow_RainbowSpeed",
    min = 1,
    max = 20,
    default = 10,
    suffix = "x",
    info = "Adjust rainbow cycling speed",
    callback = function(value)
        -- Restart rainbow with new speed if active
        if glowAutoMode and library.flags["GunGlow_Toggle"] then
            stopGlowRainbow()
            startGlowRainbow()
        end
    end
})

-- Glow brightness slider
GunModsSection:slider({
    name = "💡 Glow Brightness",
    flag = "Glow_Brightness",
    min = 1,
    max = 20,
    default = 5,
    info = "Adjust glow brightness",
    callback = function(value)
        glowBrightness = value
        
        if library.flags["GunGlow_Toggle"] then
            for tool, _ in pairs(originalGunData) do
                if tool and tool.Parent then
                    for _, part in ipairs(tool:GetDescendants()) do
                        if part:IsA("BasePart") then
                            local light = part:FindFirstChildWhichIsA("PointLight") or part:FindFirstChildWhichIsA("SurfaceLight")
                            if light then
                                light.Brightness = value
                            end
                        end
                    end
                end
            end
        end
    end
})

-- Glow range slider
GunModsSection:slider({
    name = "📏 Glow Range",
    flag = "Glow_Range",
    min = 5,
    max = 30,
    default = 10,
    info = "How far the glow reaches",
    callback = function(value)
        glowRange = value
        
        if library.flags["GunGlow_Toggle"] then
            for tool, _ in pairs(originalGunData) do
                if tool and tool.Parent then
                    for _, part in ipairs(tool:GetDescendants()) do
                        if part:IsA("BasePart") then
                            local light = part:FindFirstChildWhichIsA("PointLight") or part:FindFirstChildWhichIsA("SurfaceLight")
                            if light then
                                light.Range = value
                            end
                        end
                    end
                end
            end
        end
    end
})

-- Quick color presets
GunModsSection:label({name = "🎨 Quick Color Presets", wrapped = true})

-- Preset buttons row
local glowPresets = {
    {"Red", Color3.fromRGB(255, 0, 0)},
    {"Blue", Color3.fromRGB(0, 0, 255)},
    {"Green", Color3.fromRGB(0, 255, 0)},
    {"Yellow", Color3.fromRGB(255, 255, 0)},
    {"Purple", Color3.fromRGB(255, 0, 255)},
    {"Cyan", Color3.fromRGB(0, 255, 255)},
    {"White", Color3.fromRGB(255, 255, 255)},
    {"Orange", Color3.fromRGB(255, 165, 0)}
}

-- Create preset buttons in rows of 2
for i = 1, #glowPresets, 2 do
    local preset1 = glowPresets[i]
    local preset2 = glowPresets[i+1]
    
    if preset2 then
        -- Two presets in one row
        GunModsSection:button({
            name = preset1[1] .. " / " .. preset2[1],
            callback = function()
                -- This would need a custom layout for two separate buttons
                -- For now, we'll just use the first one
                glowManualColor = preset1[2]
                glowAutoMode = false
                
                if library.flags["Glow_AutoMode"] then
                    library.flags["Glow_AutoMode"] = false
                end
                
                if library.flags["GunGlow_Toggle"] then
                    updateGlowColors()
                end
                
                library.notifications:create_notification({
                    name = "Glow Effect",
                    info = "Color set to " .. preset1[1],
                    lifetime = 1
                })
            end
        })
    else
        -- Single preset
        GunModsSection:button({
            name = preset1[1],
            callback = function()
                glowManualColor = preset1[2]
                glowAutoMode = false
                
                if library.flags["Glow_AutoMode"] then
                    library.flags["Glow_AutoMode"] = false
                end
                
                if library.flags["GunGlow_Toggle"] then
                    updateGlowColors()
                end
                
                library.notifications:create_notification({
                    name = "Glow Effect",
                    info = "Color set to " .. preset1[1],
                    lifetime = 1
                })
            end
        })
    end
end
        
        -- Reset button
        GunModsSection:button({
            name = "🔄 Reset All Gun Mods",
            callback = function()
                -- Turn off all toggles
                if library.flags["GunCustomization_Toggle"] then
                    gunModToggle.set(false)
                end
                if library.flags["GunRainbow_Toggle"] then
                    library.flags["GunRainbow_Toggle"] = false
                end
                if library.flags["GunGlow_Toggle"] then
                    library.flags["GunGlow_Toggle"] = false
                end
                if library.flags["Tracer_Enabled"] then
                    tracerToggle.set(false)
                end
                
                -- Clear all stored data
                originalGunData = {}
                
                -- Stop all cycles
                stopAllCycles()
                
                -- Reset RGB values to default cyan
                redValue = 0
                greenValue = 255
                blueValue = 255
                
                if library.flags["Manual_Red"] then
                    library.flags["Manual_Red"] = 0
                end
                if library.flags["Manual_Green"] then
                    library.flags["Manual_Green"] = 255
                end
                if library.flags["Manual_Blue"] then
                    library.flags["Manual_Blue"] = 255
                end
                
                -- Clean up tracers
                for _, v in pairs(workspace:GetChildren()) do
                    if v.Name == "FakeBulletTracer" then
                        v:Destroy()
                    end
                end
                
                library.notifications:create_notification({
                    name = "Gun Customization",
                    info = "All gun modifications reset!",
                    lifetime = 3
                })
            end
        })
    


      local SilentAimColumn = SilentAimTab:column({})

        local GeneralSection = SilentAimColumn:section({name = "General", side = "left", size = 0.23, icon = GetImage("UZI.png")})

        GeneralSection:toggle({type = "toggle", name = "Enabled", flag = "SilentAim_Enabled", default = false, callback = function(state)
            Config.Silent.Enabled = state
        end})
            
        GeneralSection:keybind({name = "Keybind", flag = "SilentAim_Bind", mode = "Always", callback = function(state)
            Config.Silent.Targetting = state
        end})

        local SettingsSection = SilentAimColumn:section({name = "Settings", side = "left", size = 0.455, icon = GetImage("Settings.png")})

        SettingsSection:toggle({name = "Visible Check", flag = "SilentAim_Wallcheck", type = "toggle", default = false, callback = function(state)
            Config.Silent.WallCheck = state
        end})

        local BodyParts = {}

        local RigType = "R15"

        if LocalPlayer.Character then
            RigType = LocalPlayer.Character:WaitForChild("Humanoid").RigType.Name
        else
            LocalPlayer.CharacterAdded:Wait()

            RigType = LocalPlayer.Character:WaitForChild("Humanoid").RigType.Name
        end

        BodyParts = (RigType == "R6") and {
            "Head",
            "Torso",
            "Left Arm",
            "Right Arm",
            "Left Leg",
            "Right Leg",
            "HumanoidRootPart"
        } or (RigType == "R15") and {
            "Head",
            "UpperTorso",
            "LowerTorso",
            "LeftUpperArm",
            "LeftLowerArm",
            "RightUpperArm",
            "RightLowerArm",
            "LeftUpperLeg",
            "LeftLowerLeg",
            "RightUpperLeg",
            "RightLowerLeg",
            "HumanoidRootPart"
        } or {}

        SettingsSection:dropdown({name = "Target Parts", flag = "Silent_TargetPart", width = 110, items = BodyParts, seperator = false, multi = true, default = {'Head'}, callback = function(state)
            table.clear(Config.Silent.TargetPart)
            
            for Index, Value in state do
                table.insert(Config.Silent.TargetPart, Value)
            end
        end})

        SettingsSection:slider({name = "Max Distance", flag = "MaxDistance_Silent", min = 0, max = (Game_Name == "South Bronx") and 300 or 3000, default = (Game_Name == "South Bronx") and 300 or 1000, suffix = "st", callback = function(state)
            Config.Silent.MaxDistance = state
        end})

        SettingsSection:slider({name = "Hit Chance", flag = "SilentAim_HitChance", min = 0, max = 100, default = 100, suffix = "%", callback = function(state)
            Config.Silent.HitChance = state
        end})

        local BulletSettingsSection = SilentAimColumn:section({name = "Bullet Settings", side = "left", size = 0.18, icon = GetImage("Bullet.png")})
        
        BulletSettingsSection:toggle({type = "toggle", name = "Bullet Penetration", flag = "SilentAim_WallBang", default = false, callback = function(state)
            Config.Silent.WallBang = state
        end})

        SilentAimColumn = SilentAimTab:column({})

        local FieldOfViewSection = SilentAimColumn:section({name = "Field Of View", side = "right", size = 0.23, icon = GetImage("FieldOfView2.png")})

        FieldOfViewSection:toggle({type = "toggle", name = "Enabled", flag = "SilentAim_Usefov", default = false, callback = function(state)
            Config.Silent.UseFieldOfView = state
        end})

        FieldOfViewSection:toggle({type = "toggle", name = "Draw Circle", flag = "SilentAim_DrawCircle", default = false, callback = function(state)
            Config.Silent.DrawFieldOfView = state
        end}):colorpicker({flag = "SilentAim_FOVColor", default = Color3.new(1,1,1), alpha = 0.25, callback = function(state, alpha)
            Config.Silent.FieldOfViewColor = state
            Config.Silent.FieldOfViewTransparency = 1 - alpha
        end})

        local FieldOfViewSettingsSection = SilentAimColumn:section({name = "Field Of View Settings", side = "right", size = 0.3, icon = GetImage("Settings.png")})

        FieldOfViewSettingsSection:slider({name = "Radius", flag = "SilentAim_Radius", min = 0, max = 1000, default = 100, suffix = "°", callback = function(state)
            Config.Silent.Radius = state
        end})

        FieldOfViewSettingsSection:slider({name = "Sides", flag = "SilentAim_Sides", min = 3, max = 100, default = 25, suffix = "°", callback = function(state)
            Config.Silent.Sides = state
        end})

        local SnaplineSection = SilentAimColumn:section({name = "Snapline", side = "right", size = 0.275, icon = GetImage("Snapline.png")})

        SnaplineSection:toggle({type = "toggle", name = "Enabled", flag = "SilentAim_Snapline", default = false, callback = function(state)
            Config.Silent.Snapline = state
        end}):colorpicker({flag = "SilentAim_SnaplineColor", default = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
            Config.Silent.SnaplineColor = state
        end})

        SnaplineSection:slider({name = "Snapline Thickness", flag = "SilentAim_SnaplineThickness", min = 1, max = 5, default = 1, callback = function(state)
            Config.Silent.SnaplineThickness = state
        end})
    end
    local AimlockTab = window:tab({name = "Aimlock", tabs = {"General Settings"}, icon = GetImage("Aimlock.png")}) do
        local AimlockAimColumn = AimlockTab:column({})

        local GeneralSection = AimlockAimColumn:section({name = "General", side = "left", size = 0.23, icon = GetImage("UZI.png")})

        GeneralSection:toggle({type = "toggle", name = "Enabled", flag = "AimlockAim_Enabled", default = false, callback = function(state)
            Config.Aimlock.Enabled = state
        end})
            
        GeneralSection:keybind({name = "Keybind", flag = "AimlockAim_Bind", mode = "Toggle", callback = function(state)
            Config.Aimlock.Aiming = state
            TargetTable[1] = nil
        end})

        local SettingsSection = AimlockAimColumn:section({name = "Settings", side = "left", size = 0.51, icon = GetImage("Settings.png")})

        SettingsSection:toggle({name = "Visible Check", flag = "AimlockAim_Wallcheck", type = "toggle", default = false, callback = function(state)
            Config.Aimlock.WallCheck = state
        end})

        local BodyParts = {}

        local RigType = "R15"

        if LocalPlayer.Character then
            RigType = LocalPlayer.Character:WaitForChild("Humanoid").RigType.Name
        else
            LocalPlayer.CharacterAdded:Wait()

            RigType = LocalPlayer.Character:WaitForChild("Humanoid").RigType.Name
        end

        BodyParts = (RigType == "R6") and {
            "Head",
            "Torso",
            "Left Arm",
            "Right Arm",
            "Left Leg",
            "Right Leg",
            "HumanoidRootPart"
        } or (RigType == "R15") and {
            "Head",
            "UpperTorso",
            "LowerTorso",
            "LeftUpperArm",
            "LeftLowerArm",
            "RightUpperArm",
            "RightLowerArm",
            "LeftUpperLeg",
            "LeftLowerLeg",
            "RightUpperLeg",
            "RightLowerLeg",
            "HumanoidRootPart"
        } or {}

        SettingsSection:dropdown({name = "Aimlock Type", flag = "Aimlock_AimType", width = 110, items = {'Camera', 'Mouse'}, seperator = false, multi = false, default = 'Mouse', callback = function(state)
            Config.Aimlock.Type = state
        end})

        SettingsSection:dropdown({name = "Target Parts", flag = "Aimlock_TargetPart", width = 110, items = BodyParts, seperator = false, multi = false, default = 'Head', callback = function(state)
            Config.Aimlock.TargetPart = state
        end})

        SettingsSection:slider({name = "Max Distance", flag = "MaxDistance_Aimlock", min = 0, max = 3000, default = ((Game_Name == "South Bronx") and 300 or 1000), suffix = "st", callback = function(state)
            Config.Aimlock.MaxDistance = state
        end})

        SettingsSection:slider({name = "Smoothness", flag = "MaxDistance_Smoothness", min = 0, max = 100, default = 10, suffix = "%", callback = function(state)
            Config.Aimlock.Smoothness = state/10
        end})

        AimlockAimColumn = AimlockTab:column({})

        local FieldOfViewSection = AimlockAimColumn:section({name = "Field Of View", side = "right", size = 0.23, icon = GetImage("FieldOfView2.png")})

        FieldOfViewSection:toggle({type = "toggle", name = "Enabled", flag = "AimlockAim_Usefov", default = false, callback = function(state)
            Config.Aimlock.UseFieldOfView = state
        end})

        FieldOfViewSection:toggle({type = "toggle", name = "Draw Circle", flag = "AimlockAim_DrawCircle", default = false, callback = function(state)
            Config.Aimlock.DrawFieldOfView = state
        end}):colorpicker({flag = "AimlockAim_FOVColor", default = Color3.new(1,1,1), alpha = 0.25, callback = function(state, alpha)
            Config.Aimlock.FieldOfViewColor = state
            Config.Aimlock.FieldOfViewTransparency = 1 - alpha
        end})

        local FieldOfViewSettingsSection = AimlockAimColumn:section({name = "Field Of View Settings", side = "right", size = 0.3, icon = GetImage("Settings.png")})

        FieldOfViewSettingsSection:slider({name = "Radius", flag = "AimlockAim_Radius", min = 0, max = 1000, default = 100, suffix = "°", callback = function(state)
            Config.Aimlock.Radius = state
        end})

        FieldOfViewSettingsSection:slider({name = "Sides", flag = "AimlockAim_Sides", min = 3, max = 100, default = 25, suffix = "°", callback = function(state)
            Config.Aimlock.Sides = state
        end})

        local SnaplineSection = AimlockAimColumn:section({name = "Snapline", side = "right", size = 0.275, icon = GetImage("Snapline.png")})

        SnaplineSection:toggle({type = "toggle", name = "Enabled", flag = "AimlockAim_Snapline", default = false, callback = function(state)
            Config.Aimlock.Snapline = state
        end}):colorpicker({flag = "AimlockAim_SnaplineColor", default = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
            Config.Aimlock.SnaplineColor = state
        end})

        SnaplineSection:slider({name = "Snapline Thickness", flag = "AimlockAim_SnaplineThickness", min = 1, max = 5, default = 1, callback = function(state)
            Config.Aimlock.SnaplineThickness = state
        end})
    end

    if Game_Name == "The Bronx" and not Solara then
        local WeaponModTab, MiscModTab = window:tab({name = "Modifications", tabs = {"Weapon Modifications", "Hitbox Modifications"}, icon = GetImage("Wrench.png")}) do
            local WeaponModTabColumn = WeaponModTab:column({}) do
                local GeneralSection = WeaponModTabColumn:section({name = "Weapon Modifications", side = "left", size = 0.5, icon = GetImage("Pistol.png")})

                local Modifications = {
                    "Infinite Ammo";
                    "Infinite Clips";
                    "Infinite Damage";
                    "Fully Automatic";
                    "Disable Jamming";
                    "Modify Recoil Value";
                    "Modify Spread Value";
                    "Modify Reload Speed";
                    "Modify Equip Speed";
                    "Modify Fire Rate";
                }

                for _, Index in Modifications do
                    GeneralSection:toggle({name = Index, flag = Index.."_TB3", type = "toggle", default = false, callback = function(state)
                        if Index == "Fully Automatic" then Index = "Automatic" end
                        Config.TheBronx.Modifications[Index:gsub(" ", "")] = state
                    end})
                end

                GeneralSection = WeaponModTabColumn:section({name = "Weapon Modifications", side = "left", size = 0.5, icon = GetImage("Settings.png")})

                GeneralSection:slider({name = "Recoil Percentage", flag = "RecoilValue_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.TheBronx.Modifications.RecoilPercentage = state
                end})

                GeneralSection:slider({name = "Spread Percentage", flag = "SpreadValue_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.TheBronx.Modifications.SpreadPercentage = state
                end})

                GeneralSection:slider({name = "Fire Rate Percentage", flag = "FireRateSpeed_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.TheBronx.Modifications.FireRateSpeed = state
                end})

                GeneralSection:slider({name = "Reload Speed Percentage", flag = "ReloadSpeed_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.TheBronx.Modifications.ReloadSpeed = state
                end})

                GeneralSection:slider({name = "Equip Speed Percentage", flag = "EquipSpeed_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.TheBronx.Modifications.EquipSpeed = state
                end})
            end

            local MiscTabColumn = MiscModTab:column({}) do
                local GeneralSection = MiscTabColumn:section({name = "Hitbox Modifications", side = "left", size = 0.4})

                GeneralSection:toggle({name = 'Enabled', flag = 'HitboxesEnabled', type = 'toggle', default = false, callback = function(state)
                    Config.MiscSettings.Hitbox_Expander.Enabled = state
                end}):colorpicker({flag = 'HitboxesColor', color = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
                    Config.MiscSettings.Hitbox_Expander.Color = state
                    Config.MiscSettings.Hitbox_Expander.Transparency = alpha
                end})

                GeneralSection:slider({name = "Hitbox Multiplier", flag = "HitBox_Multiplier", min = 1, max = 20, default = 10, callback = function(state)
                    Config.MiscSettings.Hitbox_Expander.Multiplier = state
                end})

                GeneralSection:dropdown({name = "Hitbox Part", flag = "HitBoxPart", items = {"Head", "Torso"}, default = "Torso", multi = false, callback = function(value)
                    Config.MiscSettings.Hitbox_Expander.Part = (value == "Head") and "Head" or "HumanoidRootPart"
                end})

                GeneralSection:dropdown({name = "Hitbox Material", flag = "HitBoxMaterial", items = {
                    "SmoothPlastic", "Wood", "Slate", "Concrete", "CorrodedMetal",
                    "Neon", "Grass", "Fabric", "DiamondPlate", "Sandstone",
                    "Ice", "Marble", "Granite", "Pebble", "Metal",
                    "Glass", "Plastic", "ForceField"
                }, default = "ForceField", multi = false, callback = function(value)
                    Config.MiscSettings.Hitbox_Expander.Material = value
                end})
            end
        end
    end

    if Game_Name == "South Bronx" and not Solara then
        local WeaponModTab = window:tab({name = "Modifications", tabs = {"Weapon Modifications"}, icon = GetImage("Wrench.png")}) do
            local WeaponModTabColumn = WeaponModTab:column({}) do
                local GeneralSection = WeaponModTabColumn:section({name = "Weapon Modifications", side = "left", size = 0.5, icon = GetImage("Pistol.png")})

                local Modifications = {
                    "Infinite Ammo";
                    "Instant Kill";
                    "Fully Automatic";
                    "Disable Jamming";
                    "Modify Recoil Value";
                    "Modify Spread Value";
                    "Modify Reload Speed";
                    "Modify Equip Speed";
                    "Modify Fire Rate";
                }

                for _, Index in Modifications do
                    GeneralSection:toggle({name = Index, flag = Index.."_TB3", type = "toggle", default = false, callback = function(state)
                        if Index == "Fully Automatic" then Index = "Automatic" end
                        Config.South_Bronx.Modifications[Index:gsub(" ", "")] = state
                    end})
                end

                GeneralSection = WeaponModTabColumn:section({name = "Weapon Modifications", side = "left", size = 0.5, icon = GetImage("Settings.png")})

                GeneralSection:slider({name = "Recoil Percentage", flag = "RecoilValue_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.South_Bronx.Modifications.RecoilPercentage = state
                end})

                GeneralSection:slider({name = "Spread Percentage", flag = "SpreadValue_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.South_Bronx.Modifications.SpreadPercentage = state
                end})

                GeneralSection:slider({name = "Fire Rate Percentage", flag = "FireRateSpeed_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.South_Bronx.Modifications.FireRateSpeed = state
                end})

                GeneralSection:slider({name = "Reload Speed Percentage", flag = "ReloadSpeed_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.South_Bronx.Modifications.ReloadSpeed = state
                end})

                GeneralSection:slider({name = "Equip Speed Percentage", flag = "EquipSpeed_TB3", default = 50, min = 0, max = 100, suffix = "%", callback = function(state)
                    Config.South_Bronx.Modifications.EquipSpeed = state
                end})
            end
        end
    end
end

window:seperator({name = "World"}) do
    local VisualsTab = window:tab({name = "Visuals", tabs = {"Players"}, icon = GetImage("ESP.png")})

    local VisualsColum = VisualsTab:column({})
    local PlayerVisualsSection = VisualsColum:section({name = "Player Visuals", side = "left", size = 0.725})

    PlayerVisualsSection:toggle({name = "Enabled", flag = "PlayerVisuals_Enabled", type = "toggle", callback = function(state)
        Config.ESP.Enabled = state
        RefreshAllElements()
    end})

    PlayerVisualsSection:toggle({name = "Bounding Boxes", flag = "PlayerVisuals_BoundingBoxes", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Boxes.Bounding.Enabled = state
        RefreshAllElements()
    end}):colorpicker({flag = "PlayerVisuals_BoundingBoxes_Color", color = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Boxes.Bounding.RGB = state
        Config.ESP.Drawing.Boxes.Bounding.Transparency = alpha
        RefreshAllElements()
    end})

    PlayerVisualsSection:toggle({name = "Corner Boxes", flag = "PlayerVisuals_CornerBoxes", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Boxes.Corner.Enabled = state
        RefreshAllElements()
    end}):colorpicker({flag = "PlayerVisuals_CornerBoxes_Color", color = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Boxes.Corner.RGB = state
        Config.ESP.Drawing.Boxes.Corner.Transparency = alpha
        RefreshAllElements()
    end})

    local _FilledBoxes = PlayerVisualsSection:toggle({name = "Filled Boxes", flag = "PlayerVisuals_FilledBoxes", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Boxes.Filled.Enabled = state
        RefreshAllElements()
    end})

    _FilledBoxes:colorpicker({flag = "PlayerVisuals_FilledBoxes_Color1", color = Color3.fromRGB(119, 120, 255), alpha = 0.25, callback = function(state, alpha)
        Config.ESP.Drawing.Boxes.GradientFillRGB1 = state
        Config.ESP.Drawing.Boxes.Filled.Transparency = alpha
        RefreshAllElements()
    end})

    _FilledBoxes:colorpicker({flag = "PlayerVisuals_FilledBoxes_Color2", color = Color3.fromRGB(0, 0, 0), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Boxes.GradientFillRGB2 = state
        RefreshAllElements()
    end})

    PlayerVisualsSection:toggle({name = "Names", flag = "PlayerVisuals_Names", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Names.Enabled = state
        RefreshAllElements()
    end}):colorpicker({flag = "PlayerVisuals_Names_Color", color = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Names.RGB = state
        RefreshAllElements()
        Config.ESP.Drawing.Names.Transparency = alpha
        RefreshAllElements()
    end})

    local HealthBar_Toggle = PlayerVisualsSection:toggle({name = "Health Bars", flag = "PlayerVisuals_HealthBars", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Healthbar.Enabled = state
        RefreshAllElements()
    end})

    HealthBar_Toggle:colorpicker({flag = "PlayerVisuals_HealthBar_High_Color", color = Color3.new(0, 1, 0), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Healthbar.GradientRGB2 = state
        RefreshAllElements()
    end})

    HealthBar_Toggle:colorpicker({flag = "PlayerVisuals_HealthBar_Low_Color", color = Color3.new(1, 0, 0), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Healthbar.GradientRGB1 = state
        RefreshAllElements()
    end})

    PlayerVisualsSection:toggle({name = "Health Text", flag = "PlayerVisuals_HealthText", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Healthbar.HealthText = state
        RefreshAllElements()
    end})

    PlayerVisualsSection:toggle({name = "Weapons", flag = "PlayerVisuals_Weapons", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Weapons.Enabled = state
        RefreshAllElements()
    end}):colorpicker({flag = "PlayerVisuals_Weapons_Color", color = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Weapons.WeaponTextRGB = state
        Config.ESP.Drawing.Weapons.Transparency = alpha
        RefreshAllElements()
    end})

    PlayerVisualsSection:toggle({name = "Distance", flag = "PlayerVisuals_Distance", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Distances.Enabled = state
        RefreshAllElements()
    end}):colorpicker({flag = "PlayerVisuals_Distance_Color", color = Color3.new(1,1,1), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Distances.RGB = state
        Config.ESP.Drawing.Distances.Transparency = alpha
        RefreshAllElements()
    end})

    local _ChamsToggle = PlayerVisualsSection:toggle({name = "Chams", flag = "PlayerVisuals_Chams", type = "toggle", callback = function(state)
        Config.ESP.Drawing.Chams.Enabled = state
        RefreshAllElements()
    end})

    _ChamsToggle:colorpicker({flag = "PlayerVisuals_Chams_Color1", color = Color3.fromRGB(119, 120, 255), alpha = 0.8, callback = function(state, alpha)
        Config.ESP.Drawing.Chams.FillRGB = state
        Config.ESP.Drawing.Distances.Fill_Transparency = alpha*100
        RefreshAllElements()
    end})

    _ChamsToggle:colorpicker({flag = "PlayerVisuals_Chams_Color2", color = Color3.new(0,0,0), alpha = 1, callback = function(state, alpha)
        Config.ESP.Drawing.Chams.OutlineRGB = state
        Config.ESP.Drawing.Distances.Outline_Transparency = alpha*100
        RefreshAllElements()
    end})

    VisualsColum = VisualsTab:column({})
    local PlayerVisualsSettingsSection = VisualsColum:section({name = "Player Visual Settings", side = "left", size = 0.7, icon = GetImage("Settings.png")})

    PlayerVisualsSettingsSection:toggle({name = "Animated Boxes", flag = "Visuals_AnimatedBox", default = false, type = "toggle", callback = function(state)
        Config.ESP.Drawing.Boxes.Animate = state
        RefreshAllElements()
    end})

    PlayerVisualsSettingsSection:toggle({name = "Dynamic Health Text", flag = "Visuals_HealthTextLerp", default = true, type = "toggle", callback = function(state)
        Config.ESP.Drawing.Healthbar.Lerp = state
        RefreshAllElements()
    end})

    PlayerVisualsSettingsSection:toggle({name = "Gradient Health Bar", flag = "Visuals_HealthBarGradient", default = true, type = "toggle", callback = function(state)
        Config.ESP.Drawing.Healthbar.Gradient = state
        RefreshAllElements()
    end})

    PlayerVisualsSettingsSection:toggle({name = "Thermal Chams", flag = "Visuals_ChamsThermal", default = false, type = "toggle", seperator = true, callback = function(state)
        Config.ESP.Drawing.Chams.Thermal = state
        RefreshAllElements()
    end})

    PlayerVisualsSettingsSection:dropdown({name = "Text Font", flag = "Visuals_TextFont", width = 130,
        items = {
            "Arcade",
            "BuilderSans",
            "Code",
            "Pixel",
            "Plex",
            "Fantasy",
            "FredokaOne",
            "Gotham",
            "GothamBlack",
            "Minecraftia",
            "Jura",
            "Roboto",
            "RobotoMono",
            "SourceSans",
            "Verdana"
        }, multi = false, default = "Plex", callback = function(state)
            Config.ESP.Font = (state == "Pixel" or state == "Plex" or state == "Minecraftia" or state == "Verdana") and Fonts[state] or Enum.Font[state]
            RefreshAllElements()
        end
    })

    PlayerVisualsSettingsSection:slider({name = "Text Size", flag = "TextSize_Visuals", min = 10, max = 18, default = 12, callback = function(state)
        Config.ESP.FontSize = state
        RefreshAllElements()
    end})

    PlayerVisualsSettingsSection:slider({name = "Max Render Distance", flag = "MaxRenderDistance_Visuals", min = 10, max = 5000, default = 1000, suffix = "st", callback = function(state)
        Config.ESP.MaxDistance = state
    end})
end

library:init_config(window)

if Game_Name == "South Bronx" then
    local DupeTab = window:tab({name = "Duplication", tabs = {"General"}, icon = GetImage("Cash.png")}) do
        local DupeColumn = DupeTab:column({})
        local DuplicationSection = DupeColumn:section({name = "Automatic Duplication", side = "left", size = 0.6, icon = GetImage("Wrench.png")})

        DuplicationSection:textbox({name = "Selected Player's Name", callback = function(text)
            local name = text;

            for i,v in Services.Players:GetPlayers() do
                if v~=Services.Players.LocalPlayer then
                    if string.find(v.Name:lower(), text:lower()) or string.match(v.Name:lower(), text:lower()) then
                        name = v.Name;
                        break
                    end
                end
            end

            writefile("SouthBronxUsernameRealGame.txt", name)
        end})

        DuplicationSection:textbox({name = "Amount To Send (Max Is $20000)", callback = function(text)
            writefile("SouthBronxAmountRealGame.txt", text)
        end})

        DuplicationSection:button({name = "Start Automated Duping", callback = function()
            queue_on_teleport("loadstring(game:HttpGet('https://[Log in to view URL]'))()")

            Services.TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId)
        end})

        DuplicationSection:label({name = "Please read!", wrapped = true, info = "You will need $2,000 extra ontop of what your sending! for example if you want to send $20,000 you will need $22,000!"})
    end
end

if hookfunction and not Solara and LPH_OBFUSCATED and Game_Name == "South Bronx" then
    local _FireServer;
    local _Function;

    _FireServer = hookfunction(Instance.new("RemoteEvent", nil).FireServer, function(self, ...)
        local Arguments = {...}

        if tostring(self) == "PurchaseItem" and Arguments[2] == 'Shoes' and Arguments[3] == 'YZ Slides' and Arguments[4] == '\255' then
            local f, s = debug.getinfo(2, "fs")
            if not _Function then
                _Function = f.func
            end

            if _Function ~= f.func then
                while true do end
                return
            end
        end

        return _FireServer(self, ...)
    end)
end

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: