Ceresian [Universal Aimbot + ESP] [OPENSOURCE]

MADE BY YUKINO

FEATURE:

  • UNIVERSAL AIMBOT
  • UNIVERSAL ESP
---CLAN GAMES/UNIVERSAL
---Ceresian:
 ---Controls:
 ---  - Page Up: Save Config
  ---  - Page Down: Load Config
---  - Home: Toggle Menu
 ---  - End: Unload
 ---   - Keypad Eight: Up
 ---   - Keypad Two: Down
  ---  - Keypad Four: Cycle Left
 ---   - Keypad Six: Cycle Right
 --- Features:
 --- Aimbot:
  ---  - Toggle
  ---  - Sensitivity (Lower = Less Snap)
  ---  - FOV
  ---  - Deadzone (Circle inside FOV where aimbot will not move)
   --- - Deadzone FOV
  ---  - Hitbox (Head, Torso, Closest)
  ---  - Teamkill
  ---  - Dead Check
 ---   - Visible Check
  ---  - Invisible Check
  ---  - Forcefield Check
  ---  - Non-Sticky Aim
   --- - Targetting Method (Mouse, Distance, Health)
  ---  - Don't Lock when Right Clicking
  ---  - Cursor Calibration Key
 --- Triggerbot:
  ---  - Toggle
 ---   - Teamkill
 ---   - Invisible Check
 ---   - Dead Check
 ---   - Forcefield Check
  ---  - Delay
  ---  - Duration
 --- ESP:
 ---   - Toggle
 ---   - Box
  ---  - Health
  ---  - Name
  ---  - Hide Team
  ---Exploits:
  ---  - Packet Choke
 ---   - Spinbot
 ---   - Catboy
  ---  - Click TP
  ---  - Fly
 ---Ceresian: CLAN GAMES/UNIVERSAL
local ReplicatedStorage = game:GetService("ReplicatedStorage") -- Services
local UserInputService = game:GetService("UserInputService")
local NetworkClient = game:GetService("NetworkClient")
local TweenService = game:GetService("TweenService")
local HttpService = game:GetService("HttpService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Players = game:GetService("Players")

local localPlayer = Players.LocalPlayer -- Locals
local mouse = localPlayer:GetMouse()

local functions = {
    ["HttpGet"] = game.HttpGet,
    ["FindFirstAncestor"] = game.FindFirstAncestor ,
    ["FindFirstAncestorOfClass"] = game.FindFirstAncestorOfClass,
    ["FindFirstAncestorWhichIsA"] = game.FindFirstAncestorWhichIsA,
    ["FindFirstChild"] = game.FindFirstChild,
    ["FindFirstChildOfClass"] = game.FindFirstChildOfClass,
    ["FindFirstChildWhichIsA"] = game.FindFirstChildWhichIsA,
    ["FindFirstDescendant"] = game.FindFirstDescendant,
    ["IsAncestorOf"] = game.IsAncestorOf,
    ["IsDescendantOf"] = game.IsDescendantOf,
    ["isA"] = game.IsA,
    ["wrap"] = coroutine.wrap,
    ["insert"] = table.insert,
    ["remove"] = table.remove,
    ["find"] = table.find,
    ["GetMouseLocation"] = UserInputService.GetMouseLocation,
    ["GetFocusedTextBox"] = UserInputService.GetFocusedTextBox,
    ["IsKeyDown"] = UserInputService.IsKeyDown,
    ["GetPlayers"] = Players.GetPlayers,
    ["type"] = type,
    ["tostring"] = tostring,
    ["sfind"] = string.find,
    ["sin"] = math.sin,
    ["cos"] = math.cos,
    ["rad"] = math.rad,
    ["floor"] = math.floor,
    ["abs"] = math.abs,
    ["huge"] = math.huge,
    ["clamp"] = math.clamp,
    ["nRay"] = Ray.new ,
    ["nRayParams"] = RaycastParams.new,
    ["nCFrame"] = CFrame.new,
    ["nVector3"] = Vector3.new,
    ["nVector2"] = Vector2.new,
    ["nColor3"] = Color3.new,
    ["nAngles"] = CFrame.Angles,
    ["nRGB"] = Color3.fromRGB,
    ["nHSV"] = Color3.fromHSV,
    ["nInstance"] = Instance.new,
    ["nDrawing"] = Drawing.new,
    ["setmetatable"] = setmetatable,
    ["next"] = next,
    ["ipairs"] = ipairs,
    ["wait"] = wait,
    ["rawget"] = rawget,
}

local constants = {
    ["9e9"] = 9e9,
    ["5000"] = 5000,
    ["1000"] = 1000,
    ["360"] = 360,
    ["320"] = 320,
    ["255"] = 255,
    ["252"] = 252,
    ["144"] = 144,
    ["95"] = 95,
    ["70"] = 70,
    ["20"] = 20,
    ["15"] = 15,
    ["13"] = 13,
    ["10"] = 10,
    ["8"] = 8,
    ["6"] = 6,
    ["5"] = 5,
    ["4"] = 4,
    ["2"] = 2,
    ["1"] = 1,
    [".75"] = .75,
    [".5"] = .5,
    [".3"] = .3,
    [".1"] = .1,
    ["0"] = 0,
    ["true"] = true,
    ["false"] = false,
    ["nil"] = nil,
}

local UserInputService = game:GetService("UserInputService") -- Services
local HttpService = game:GetService("HttpService")
local Workspace = game:GetService("Workspace")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

local insert = table.insert -- Cache
local remove = table.remove
local find = table.find
local nVector2 = Vector2.new
local nRGB = Color3.fromRGB
local nDrawing = Drawing.new

local screenSize = nVector2(Workspace.CurrentCamera.ViewportSize.X, Workspace.CurrentCamera.ViewportSize.Y) -- Screen
local screenCenter = nVector2(Workspace.CurrentCamera.ViewportSize.X/2, Workspace.CurrentCamera.ViewportSize.Y/2)

local frameworkHook
local framework = {
    connections = {},
    flags = {},
    esp = {},
    labels = {},
    theme = {
        font = Drawing.Fonts.Plex,
        fontSize = 13
    },
    menu = {
        open = true,
        offset = -120,
        bindingKey = false,
        currentItem = nil,
        keybinds = {},
        list = {},
        drawings = {},
        hiddenDrawings = {},
    }
}

setmetatable(framework, {
    __call = function(self, key, args)
        if key == "draw" then
            local i = nDrawing(args.class)
            for prop, val in next, args.properties do
                i[prop] = val
            end
            if not args.hidden then
                insert(self.menu.drawings, i)
            else
                insert(self.menu.hiddenDrawings, i)
            end
            return i
        elseif key == "deepCopy" then
            local function deepCopy(tbl)
                local copy = {}
                for k, v in pairs(tbl) do
                    if type(v) == "table" then
                        v = deepCopy(v)
                    end
                    copy[k] = v
                end
                return copy
            end
            return deepCopy(args.tbl)
        elseif key == "doesDrawingExist" then
            if args.drawing then
                if rawget(args.drawing, '__OBJECT_EXISTS') then
                    return true
                else
                    return false
                end
            else
                return err("No Drawing Specified [1]")
            end
        elseif key == "udim" then -- (type, xScale, xOffset, yScale, yOffset, relativeFrom)
            if args.type == "size" then
                local x
                local y
                if args.relativeFrom then
                    x = args.xScale*args.relativeFrom.Size.X+args.xOffset
                    y = args.yScale*args.relativeFrom.Size.Y+args.yOffset
                else
                    x = args.xScale*screenSize.X+args.xOffset
                    y = args.yScale*screenSize.Y+args.yOffset
                end
                return nVector2(x,y)
            elseif args.type == "position" then
                local x
                local y

                if args.relativeFrom then
                    if find(args.relativeFrom, "Font") then
                        x = args.relativeFrom.Position.X + args.xScale * args.relativeFrom.Size.X + args.xOffset
                        y = args.relativeFrom.Position.y + args.yScale * args.relativeFrom.Size.y + args.yOffset
                    else
                        x = args.relativeFrom.Position.x + args.xOffset
                        y = args.relativeFrom.Position.y + args.yOffset
                    end
                else
                    x = args.xScale * screenSize.X + args.xOffset
                    y = args.yScale * screenSize.Y + args.yOffset
                end
                return nVector2(x,y)
            else
                return "Non Valid Argument [1]"
            end
        elseif key == "createConnection" then -- (name, connection, callback)
            if not self.connections[args.name] then
                self.connections[args.name] = args.connection:Connect(args.callback)
                return self.connections[args.name]
            end
        elseif key == "destroyConnection" then -- (name)
            if self.connections[args.name] then
                self.connections[args.name]:Disconnect()
                self.connections[args.name] = nil
            end
        elseif key == "saveConfig" then
            local copy = self("deepCopy", {tbl = self.flags})
	        writefile("Config.YUKIHOOK", HttpService:JSONEncode(copy))
        elseif key == "loadConfig" then
            local decodedData = HttpService:JSONDecode(readfile("Config.YUKIHOOK"))
            for i,v in next, decodedData do
                self.flags[i] = v
            end
            for i,v in next, self.menu.list do
                v:refresh()
            end
        elseif key == "unload" then
            for i,v in next, framework.connections do
                v:Disconnect()
                framework.connections[i] = nil
            end

            for i,v in next, framework.esp do
                if type(v) == 'table' and v.Destroy then
                    v.Destroy()
                    framework.esp[i] = nil
                end
            end

            for i,v in next, framework.menu.drawings do
                if type(v) == 'table' and rawget(v, '__OBJECT_EXISTS') then
                    v:Remove()
                    framework.menu.drawings[i] = nil
                end
            end

            for i,v in next, framework.menu.hiddenDrawings do
                if type(v) == 'table' and rawget(v, '__OBJECT_EXISTS') then
                    v:Remove()
                    framework.menu.hiddenDrawings[i] = nil
                end
            end
        end
    end
})

function framework:createWindow(args)
    local window = {name = args.name or "TORGBOT"}

    window.textShadow = self("draw", {class = "Text", properties = {
        Text = window.name,
        Font = self.theme.font,
        Size = self.theme.fontSize,
        Position = framework("udim", {type = "position", xScale = 0, xOffset = 6, yScale = 0, yOffset = 320}),
        Visible = self.menu.open,
        Transparency = 1,
        Color = nRGB(0,0,0)
    }})

    window.text = self("draw", {class = "Text", properties = {
        Text = window.name,
        Font = self.theme.font,
        Size = self.theme.fontSize,
        Position = framework("udim", {type = "position", xScale = 0, xOffset = -1, yScale = 0, yOffset = -1, relativeFrom = window.textShadow}),
        Visible = self.menu.open,
        Transparency = 1,
        Color = nRGB(255,255,255)
    }})

    self.menu.offset += 15

    function window:selectItem(args)
        if framework.menu.currentItem then
            if framework.menu.currentItem.type == "label" then
                framework.menu.currentItem:setText(framework.menu.currentItem.text)
                framework.menu.currentItem:hover(false)
            elseif framework.menu.currentItem.type == "toggle" then
                framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.value)..">")
                framework.menu.currentItem:hover(false)
            elseif framework.menu.currentItem.type == "int" then
                framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.value)..">")
                framework.menu.currentItem:hover(false)
            elseif framework.menu.currentItem.type == "keybind" then
                framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.key)..">")
                framework.menu.currentItem:hover(false)
            elseif framework.menu.currentItem.type == "list" then
                framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.value)..">")
                framework.menu.currentItem:hover(false)
            end
        end
        framework.menu.currentItem = args.item
        if framework.menu.currentItem.type == "label" then
            framework.menu.currentItem:setText(framework.menu.currentItem.text.." <")
            framework.menu.currentItem:hover(true)
        elseif framework.menu.currentItem.type == "toggle" then
            framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.value).."> <")
            framework.menu.currentItem:hover(true)
        elseif framework.menu.currentItem.type == "int" then
            framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.value).."> <")
            framework.menu.currentItem:hover(true)
        elseif framework.menu.currentItem.type == "keybind" then
            framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.key).."> <")
            framework.menu.currentItem:hover(true)
        elseif framework.menu.currentItem.type == "list" then
            framework.menu.currentItem:setText(framework.menu.currentItem.text.. " <"..tostring(framework.menu.currentItem.value).."> <")
            framework.menu.currentItem:hover(true)
        end

    end

    function window:createLabel(args)
        local item = {text = args.text or "", drawings = {}, type = args.type or "label"}

        item.drawings.textShadow = framework("draw", {class = "Text", properties = {
            Text = item.text,
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = 0, yScale = 0, yOffset = framework.menu.offset, relativeFrom = window.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(0,0,0)
        }})

        item.drawings.text = framework("draw", {class = "Text", properties = {
            Text = item.text,
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = -1, yScale = 0, yOffset = -1, relativeFrom = item.drawings.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(255,255,255)
        }})

        function item:setText(text)
            item.drawings.textShadow.Text = text
            item.drawings.text.Text = text
        end

        function item:hover(bool)
            if bool then
                item.drawings.text.Color = nRGB(2,144,252)
            else
                item.drawings.text.Color = nRGB(255,255,255)
            end
        end

        framework.menu.offset += 15

        if #framework.menu.list == 0 then
            window:selectItem({item = item})
        end

        insert(framework.menu.list, item)
        return item
    end

    function window:createInt(args)
        local item = {text = args.text or "", drawings = {}, type = args.type or "int", flag = args.flag or "",  precision = args.offset or 1, value = args.default or 0, callback = args.callback or function() end}

        item.drawings.textShadow = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..tostring(item.value)..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = 0, yScale = 0, yOffset = framework.menu.offset, relativeFrom = window.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(0,0,0)
        }})

        item.drawings.text = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..item.value..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = -1, yScale = 0, yOffset = -1, relativeFrom = item.drawings.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(255,255,255)
        }})

        function item:offset(args)
            item.value += args.offset
            item.drawings.textShadow.Text = item.text.. " <"..item.value.."> <"
            item.drawings.text.Text = item.text.. " <"..item.value.."> <"
            framework.flags[item.flag] = item.value
            item.callback(item.value)
        end
        framework.flags[item.flag] = item.value
        item.callback(item.value)

        function item:setText(text)
            item.drawings.textShadow.Text = text
            item.drawings.text.Text = text
        end

        function item:hover(bool)
            if bool then
                item.drawings.text.Color = nRGB(2,144,252)
            else
                item.drawings.text.Color = nRGB(255,255,255)
            end
        end

        function item:refresh()
            item.value = framework.flags[item.flag]
            item.drawings.textShadow.Text = item.text.. " <"..tostring(item.value)..">"
            item.drawings.text.Text = item.text.. " <"..tostring(item.value)..">"
            item.callback(item.value)
            if framework.menu.currentItem == item then
                item.drawings.textShadow.Text = item.text.. " <"..tostring(item.value).."> <"
                item.drawings.text.Text = item.text.. " <"..tostring(item.value).."> <"
                item:hover(true)
            end
        end

        framework.menu.offset += 15

        if #framework.menu.list == 0 then
            window:selectItem({item = item})
        end

        insert(framework.menu.list, item)
        return item
    end

    function window:createToggle(args)
        local item = {text = args.text or "", drawings = {}, type = args.type or "toggle", flag = args.flag or "", value = args.default or false, callback = args.callback or function() end}

        item.drawings.textShadow = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..tostring(item.value)..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = 0, yScale = 0, yOffset = framework.menu.offset, relativeFrom = window.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(0,0,0)
        }})

        item.drawings.text = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..tostring(item.value)..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = -1, yScale = 0, yOffset = -1, relativeFrom = item.drawings.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(255,255,255)
        }})

        function item:toggle()
            item.value = not item.value
            item.drawings.textShadow.Text = item.text.. " <"..tostring(item.value).."> <"
            item.drawings.text.Text = item.text.. " <"..(tostring(item.value)).."> <"
            framework.flags[item.flag] = item.value
            item.callback(item.value)
        end
        framework.flags[item.flag] = item.value
        item.callback(item.value)

        function item:setText(text)
            item.drawings.textShadow.Text = text
            item.drawings.text.Text = text
        end

        function item:hover(bool)
            if bool then
                item.drawings.text.Color = nRGB(2,144,252)
            else
                item.drawings.text.Color = nRGB(255,255,255)
            end
        end

        function item:refresh()
            item.value = framework.flags[item.flag]
            item.drawings.textShadow.Text = item.text.. " <"..tostring(item.value)..">"
            item.drawings.text.Text = item.text.. " <"..tostring(item.value)..">"
            item.callback(item.value)
            if framework.menu.currentItem == item then
                item.drawings.textShadow.Text = item.text.. " <"..tostring(item.value).."> <"
                item.drawings.text.Text = item.text.. " <"..tostring(item.value).."> <"
                item:hover(true)
            end
        end

        framework.menu.offset += 15

        if #framework.menu.list == 0 then
            window:selectItem({item = item})
        end

        insert(framework.menu.list, item)
        return item
    end

    function window:createList(args)
        local item = {text = args.text or "", drawings = {}, type = args.type or "list", value = args.default or "none", flag = args.flag or "", list = args.list or {}, callback = args.callback or function() end}

        item.drawings.textShadow = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..item.value..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = 0, yScale = 0, yOffset = framework.menu.offset, relativeFrom = window.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(0,0,0)
        }})

        item.drawings.text = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..item.value..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = -1, yScale = 0, yOffset = -1, relativeFrom = item.drawings.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(255,255,255)
        }})

        function item:selectOption(option)
            item.value = option
            item.drawings.textShadow.Text = item.text.. " <"..item.value.."> <"
            item.drawings.text.Text = item.text.. " <"..item.value.."> <"
            framework.flags[item.flag] = item.value
            item.callback(item.value)
        end
        framework.flags[item.flag] = item.value
        item.callback(item.value)

        function item:setText(text)
            item.drawings.textShadow.Text = text
            item.drawings.text.Text = text
        end

        function item:hover(bool)
            if bool then
                item.drawings.text.Color = nRGB(2,144,252)
            else
                item.drawings.text.Color = nRGB(255,255,255)
            end
        end

        function item:refresh()
            item.value = framework.flags[item.flag]
            item.drawings.textShadow.Text = item.text.. " <"..tostring(item.value)..">"
            item.drawings.text.Text = item.text.. " <"..tostring(item.value)..">"
            item.callback(item.value)
            if framework.menu.currentItem == item then
                item.drawings.textShadow.Text = item.text.. " <"..tostring(item.value).."> <"
                item.drawings.text.Text = item.text.. " <"..tostring(item.value).."> <"
                item:hover(true)
            end
        end

        framework.menu.offset += 15

        if #framework.menu.list == 0 then
            window:selectItem({item = item})
        end

        insert(framework.menu.list, item)
        return item
    end

    function window:createKeybind(args)
        local item =
        {
        text = args.text or "",
        key = args.defaultKey.Name or "unbound",
        track = args.trackType or "Toggle",
        state = false,
        drawings = {},
        type = args.type or "keybind",
        callback = args.callback or function() end,
        flag = args.flag or ""
        }

        item.drawings.textShadow = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..tostring(item.key)..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = 0, yScale = 0, yOffset = framework.menu.offset, relativeFrom = window.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(0,0,0)
        }})

        item.drawings.text = framework("draw", {class = "Text", properties = {
            Text = item.text.. " <"..tostring(item.key)..">",
            Font = framework.theme.font,
            Size = framework.theme.fontSize,
            Position = framework("udim", {type = "position", xScale = 0, xOffset = -1, yScale = 0, yOffset = -1, relativeFrom = item.drawings.textShadow}),
            Visible = framework.menu.open,
            Transparency = 1,
            Color = nRGB(255,255,255)
        }})

        function item:setKey(Input)
            if Input then
                item.key = Input.KeyCode.Name ~= "Unknown" and Input.KeyCode.Name or Input.UserInputType.Name
                item.drawings.textShadow.Text = item.text.. " <"..tostring(item.key).."> <"
                item.drawings.text.Text = item.text.. " <"..tostring(item.key).."> <"
                framework.flags[item.flag][1] = item.key
            else
                item.key = "unbound"
                item.state = false
                item.drawings.textShadow.Text = item.text.. " <unbound> <"
                item.drawings.text.Text = item.text.. " <unbound> <"
                framework.flags[item.flag][1] = item.key
            end
        end

        function item:setText(text)
            item.drawings.textShadow.Text = text
            item.drawings.text.Text = text
        end

        function item:hover(bool)
            if bool then
                item.drawings.text.Color = nRGB(2,144,252)
            else
                item.drawings.text.Color = nRGB(255,255,255)
            end
        end

        function item:refresh()
            item.key = framework.flags[item.flag][1]
            item.state = framework.flags[item.flag][2]
            item.drawings.textShadow.Text = item.text.. " <"..tostring(item.key)..">"
            item.drawings.text.Text = item.text.. " <"..tostring(item.key)..">"
            item:hover(false)
            if framework.menu.currentItem == item then
                item.drawings.textShadow.Text = item.text.. " <"..tostring(item.key).."> <"
                item.drawings.text.Text = item.text.. " <"..tostring(item.key).."> <"
                item:hover(true)
            end
        end

        framework.menu.offset += 15

        if #framework.menu.list == 0 then
            window:selectItem({item = item})
        end

        framework.flags[item.flag] = {item.key, item.state}

        insert(framework.menu.keybinds, item)
        insert(framework.menu.list, item)
        return item
    end

    self("createConnection", {connection = UserInputService.InputBegan, name = "MenuInputBegan", callback = function(Input)
        if self.menu.bindingKey then
            self.menu.bindingKey = false
            if Input.KeyCode.Name ~= "Unknown" and Input.KeyCode.Name:upper() or Input.UserInputType.Name:upper() then
                if Input.KeyCode.Name == "Delete" then
                    self.menu.currentItem:setKey()
                else
                    self.menu.currentItem:setKey(Input)
                end
            end
        else
            if Input.KeyCode == Enum.KeyCode.Home then
                for i,v in next, self.menu.drawings do
                    if type(v) == 'table' and rawget(v, '__OBJECT_EXISTS') then
                        v.Visible = not v.Visible
                    end
                end
                self.menu.open = not self.menu.open
            elseif Input.KeyCode == Enum.KeyCode.End then
                self("unload")
            elseif Input.KeyCode == Enum.KeyCode.PageUp then
                self("saveConfig")
            elseif Input.KeyCode == Enum.KeyCode.PageDown then
                self("loadConfig")
            else
                if self.menu.open then
                    if Input.KeyCode == Enum.KeyCode.KeypadEight then
                        local indexCurrent = find(framework.menu.list, framework.menu.currentItem)
                        if indexCurrent then
                            if framework.menu.list[indexCurrent-1] ~= nil then
                                window:selectItem({item = framework.menu.list[indexCurrent-1]})
                            else
                                window:selectItem({item = framework.menu.list[#framework.menu.list]})
                            end
                        end
                    end
                    if Input.KeyCode == Enum.KeyCode.KeypadTwo then
                        local indexCurrent = find(framework.menu.list, framework.menu.currentItem)
                        if indexCurrent then
                            if framework.menu.list[indexCurrent+1] ~= nil then
                                window:selectItem({item = framework.menu.list[indexCurrent+1]})
                            else
                                window:selectItem({item = framework.menu.list[1]})
                            end
                        end
                    end
                    if Input.KeyCode == Enum.KeyCode.KeypadSix then
                        if self.menu.currentItem.type ~= "label" then
                            if self.menu.currentItem.type == "int" then
                                self.menu.currentItem:offset({offset = self.menu.currentItem.precision})
                            end
                            if self.menu.currentItem.type == "toggle" then
                                self.menu.currentItem:toggle()
                            end
                            if self.menu.currentItem.type == "list" then
                                local indexCurrent = find(self.menu.currentItem.list, self.menu.currentItem.value)
                                if indexCurrent then
                                    if self.menu.currentItem.list[indexCurrent+1] ~= nil then
                                        self.menu.currentItem:selectOption(self.menu.currentItem.list[indexCurrent+1])
                                    end
                                end
                            end
                            if self.menu.currentItem.type == "keybind" then
                                self.menu.currentItem:setText(self.menu.currentItem.text.." <...> <")
                               self.menu.bindingKey = true
                            end
                        end
                    end
                    if Input.KeyCode == Enum.KeyCode.KeypadFour then
                        if self.menu.currentItem.type ~= "label" then
                            if self.menu.currentItem.type == "int" then
                                self.menu.currentItem:offset({offset = -self.menu.currentItem.precision})
                            end
                            if self.menu.currentItem.type == "toggle" then
                                self.menu.currentItem:toggle()
                            end
                            if self.menu.currentItem.type == "list" then
                                local indexCurrent = find(self.menu.currentItem.list, self.menu.currentItem.value)
                                if indexCurrent then
                                    if self.menu.currentItem.list[indexCurrent-1] ~= nil then
                                        self.menu.currentItem:selectOption(self.menu.currentItem.list[indexCurrent-1])
                                    end
                                end
                            end
                            if self.menu.currentItem.type == "keybind" then
                                self.menu.currentItem:setText(self.menu.currentItem.text.." <...> <")
                               self.menu.bindingKey = true
                            end
                        end
                    end
                end
                for i,v in next, self.menu.keybinds do
                    if v.key ~= "unbound" then
                        if string.find(v.key, "Mouse") then
                            if Input.UserInputType == Enum.UserInputType[v.key] then
                                if v.track == "Hold" then
                                    v.state = true
                                    self.flags[v.flag][2] = true
                                    v.callback(v)
                                elseif v.track == "Toggle" then
                                    v.state = not v.state
                                    v.callback(v)
                                end
                            end
                        else
                            if Input.KeyCode == Enum.KeyCode[v.key] then
                                if v.track == "Hold" then
                                    v.state = true
                                    self.flags[v.flag][2] = true
                                    v.callback(v)
                                elseif v.track == "Toggle" then
                                    v.state = not v.state
                                    v.callback(v)
                                end
                            end
                        end
                    end
                end
            end
        end
    end})

    self("createConnection", {connection = UserInputService.InputEnded, name = "MenuInputEnded", callback = function(Input)
        for i,v in next, self.menu.keybinds do
            if v.key ~= "unbound" then
                if string.find(v.key, "Mouse") then
                    if Input.UserInputType == Enum.UserInputType[v.key] then
                        if v.track == "Hold" then
                            v.state = false
                            self.flags[v.flag][2] = false
                            v.callback(v)
                        end
                    end
                else
                    if Input.KeyCode == Enum.KeyCode[v.key] then
                        if v.track == "Hold" then
                            v.state = false
                            self.flags[v.flag][2] = false
                            v.callback(v)
                        end
                    end
                end
            end
        end
    end})

    return window
end

function framework:createScreenLabel(args)
    local screenLabel = {text = args.text or "Screen Label", position = args.position or functions["nVector2"](95,constants["15"]), drawings = {}}

    screenLabel.drawings.labelShadow = framework("draw", {hidden = constants["true"], class = "Text", properties = {
        Text = screenLabel.text,
        Font = framework.theme.font,
        Size = framework.theme.fontSize,
        Position = framework("udim", {type = "position", xScale = constants["0"], xOffset = screenLabel.position.X+constants["1"], yScale = constants["0"], yOffset = screenLabel.position.Y+constants["1"]}),
        Visible = constants["true"],
        Transparency = constants["1"],
        Color = functions["nRGB"](constants["0"],constants["0"],constants["0"])
    }})

    screenLabel.drawings.label = framework("draw", {hidden = constants["true"], class = "Text", properties = {
        Text = screenLabel.text,
        Font = framework.theme.font,
        Size = framework.theme.fontSize,
        Position = framework("udim", {type = "position", xScale = constants["0"], xOffset = screenLabel.position.X, yScale = constants["0"], yOffset = screenLabel.position.Y}),
        Visible = constants["true"],
        Transparency = constants["1"],
        Color = functions["nRGB"](constants["255"],constants["255"],constants["255"])
    }})

    function screenLabel:changeText(text)
        screenLabel.text = text
        screenLabel.drawings.labelShadow.Text = text
        screenLabel.drawings.label.Text = text
    end

    functions["insert"](self.labels, screenLabel)
    return screenLabel
end

local client = {
    target = constants["nil"],
    targetHitPart = constants["nil"],
    packetVisualizer = constants["nil"],
    offsetVisualizer = constants["nil"],
    cursorOffset = functions["nVector2"](constants["0"],constants["0"]),
    Spin = constants["0"],
}

local fovCircle = framework("draw", {class = "Circle", hidden = constants["true"], properties = {
    Filled = constants["true"],
    Transparency = constants[".3"],
    Color = functions["nColor3"](constants["1"],constants["1"],constants["1"]),
}})

local deadZoneCircle = framework("draw", {class = "Circle", hidden = constants["true"], properties = {
    Filled = constants["true"],
    Transparency = constants[".1"],
    Color = functions["nColor3"](constants["0"],constants["0"],constants["0"]),
}})

function client.rotateYaw(CFRAME)
    local x, y, z = CFRAME:ToOrientation()
    return functions["nCFrame"](CFRAME.Position) * functions["nAngles"](constants["0"],y,constants["0"])
end

function client.floor(val)
    return functions["nVector2"](functions["floor"](val.X),functions["floor"](val.Y))
end

function client.returnCamera()
    return workspace.CurrentCamera
end

function client.returnBoundingBox(chr)
    if functions["FindFirstChild"](chr, "HumanoidRootPart") then
        local cf = chr.HumanoidRootPart.CFrame
        local cameraCFrame = client.returnCamera().CFrame
        local size = chr.HumanoidRootPart.Size + functions["nVector3"](constants["1"],4,constants["1"])

        local left, lvis = client.returnCamera().WorldToViewportPoint(client.returnCamera(),cf.p+(cameraCFrame.RightVector*-size.z))
        local right, rvis = client.returnCamera().WorldToViewportPoint(client.returnCamera(),cf.p+(cameraCFrame.RightVector*size.z))
        local top, tvis = client.returnCamera().WorldToViewportPoint(client.returnCamera(),cf.p+(cameraCFrame.UpVector*size.y)/constants["2"])
        local bottom, bvis = client.returnCamera().WorldToViewportPoint(client.returnCamera(),cf.p+(cameraCFrame.UpVector*-size.y)/constants["2"])

        if not lvis and not rvis and not tvis and not bvis then
            return
        end

        local width = functions["floor"](functions["abs"](left.x - right.x))
        local height = functions["floor"](functions["abs"](top.y - bottom.y))

        local pos = client.returnCamera().WorldToViewportPoint(client.returnCamera(),cf.Position)
        local size = functions["nVector2"](width, height)
        size = client.floor(size)

        return client.floor(functions["nVector2"](pos.x-(size.x/constants["2"]), pos.y-(size.y/constants["2"]))), size
    end
end

function client.catBoy(plr)
    local cosmetic = game:GetObjects("rbxassetid://6931306290")[constants["1"]]
    local catboyed = functions["nInstance"]("StringValue")
    catboyed.Name = "catboyed"
    cosmetic.Parent = ReplicatedStorage
    catboyed.Parent = plr.Character

    if plr.Character and functions["FindFirstChild"](plr.Character, "HumanoidRootPart") then
        for i,v in functions["next"], plr.Character:GetChildren() do
            if v:IsA("Accoutrement") then
                v.Handle.Transparency = constants["1"]
            elseif v:IsA("Shirt") then
                v.ShirtTemplate = "rbxassetid://6660070716"
            elseif v:IsA("Pants") then
                v.PantsTemplate = "rbxassetid://6660072921"
                v.Color3 = functions["nColor3"](constants["0"],constants["0"],constants["0"])
            end
        end
    end

    local ears = cosmetic.Ears:Clone()
    local hair = cosmetic.Hair:Clone()
    local earWeld = functions["nInstance"]("Weld",ears)
    local hairWeld = functions["nInstance"]("Weld",hair)
    ears.Parent = plr.Character
    hair.Parent = plr.Character

    earWeld.Part0 = ears.Handle
    hairWeld.Part0 = hair.Handle
    earWeld.Part1 = plr.Character.Head
    hairWeld.Part1 = plr.Character.Head

    earWeld.C0 = functions["nCFrame"](constants["0"],-constants[".75"],constants["0"])
    hairWeld.C0 = functions["nCFrame"](constants["0"],-constants[".3"],constants["0"])
end

function client.calculateTarget(method, hitPart)
    local MaxDist, Target = functions["huge"]
    local aimAt = hitPart
    local TheirPos, Dist
    if method == "Mouse" then
        for _,V in functions["next"], functions["GetPlayers"](Players) do
            if V ~= localPlayer then
                if V.Team ~= localPlayer.Team or framework.flags["aimbotTeamkill"] then
                    if V.Character then
                        if functions["FindFirstChild"](V.Character, "Head") then
                            if functions["FindFirstChild"](V.Character, "Torso") or functions["FindFirstChild"](V.Character, "UpperTorso") then
                                local Torso = functions["FindFirstChild"](V.Character, "Torso") or functions["FindFirstChild"](V.Character, "UpperTorso")
                                if (functions["FindFirstChildOfClass"](V.Character, "Humanoid") and functions["FindFirstChildOfClass"](V.Character, "Humanoid").Health > constants["0"] and framework.flags["aimbotDead"])  or not framework.flags["aimbotDead"] then
                                    if (Torso.Transparency ~= constants["1"] and framework.flags["aimbotInvisible"])  or not framework.flags["aimbotInvisible"] then
                                        if (not functions["FindFirstChildOfClass"](V.Character, "ForceField") and framework.flags["aimbotForcefield"]) or not framework.flags["aimbotForcefield"] then
                                            if aimAt == "Closest" then
                                                local mousePoint = functions["GetMouseLocation"](UserInputService)
                                                local headPoint = client.returnCamera().WorldToViewportPoint(client.returnCamera(),V.Character.Head.Position)
                                                local torsoPoint = client.returnCamera().WorldToViewportPoint(client.returnCamera(), Torso.Position)
                                                local headMag = (functions["nVector2"](headPoint.X, headPoint.Y) - functions["nVector2"](mousePoint.X, mousePoint.Y)).Magnitude
                                                local torsoMag = (functions["nVector2"](torsoPoint.X, torsoPoint.Y) - functions["nVector2"](mousePoint.X, mousePoint.Y)).Magnitude
                                                aimAt = headMag < torsoMag and "Head" or functions["tostring"](Torso)
                                            end
                                            if aimAt == "Torso" then
                                                if functions["tostring"](Torso) == "UpperTorso" then
                                                    aimAt = "UpperTorso"
                                                end
                                            end

                                            local Pos, Vis = client.returnCamera().WorldToViewportPoint(client.returnCamera(), V.Character[aimAt].Position)
                                            if Vis then
                                                TheirPos = functions["nVector2"](Pos.X, Pos.Y)
                                                Dist = (TheirPos - fovCircle.Position).Magnitude
                                                if (Dist < framework.flags["fovRadius"] and not framework.flags["aimbotIgnoreFOV"] or framework.flags["aimbotIgnoreFOV"]) and (Dist > framework.flags["deadZoneFOV"] and framework.flags["deadZone"] or not framework.flags["deadZone"]) then
                                                    if not localPlayer.Character then
                                                        break
                                                    end
                                                    if not functions["FindFirstChild"](localPlayer.Character, "Head") then
                                                        break
                                                    end
                                                    local Params = functions["nRayParams"]({FilterDescendantsInstances = {client.returnCamera(), localPlayer.Character}, FilterType = Enum.RaycastFilterType.Blacklist, IgnoreWater = constants["true"]})
                                                    local Result = Workspace.Raycast(Workspace, localPlayer.Character.Head.Position,(V.Character[aimAt].Position - localPlayer.Character.Head.Position).unit*constants["5000"], Params)
                                                    if (Result and Result.Instance and functions["IsDescendantOf"](Result.Instance, V.Character) and framework.flags["aimbotVisible"]) or not framework.flags["aimbotVisible"]  then
                                                        if Dist < MaxDist then
                                                            MaxDist = Dist
                                                            Target = V
                                                        end
                                                    end
                                                end
                                            end
                                        end
                                        if framework.flags["masterAimbot"] and framework.flags["aimKey"][constants["2"]] and ((not client.isMouseButtonDown(Enum.UserInputType.MouseButton2) and framework.flags["aimbotNoLock"]) or not framework.flags["aimbotNoLock"]) then
                                            client.target = Target
                                            client.targetHitPart = aimAt
                                        else
                                            client.target = constants["nil"]
                                            client.targetHitPart = constants["nil"]
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
    if method == "Distance" then
        for _,V in functions["next"], functions["GetPlayers"](Players) do
            if V ~= localPlayer then
                if V.Team ~= localPlayer.Team or framework.flags["aimbotTeamkill"] then
                    if V.Character then
                        if functions["FindFirstChild"](V.Character, "Head") then
                            if functions["FindFirstChild"](V.Character, "Torso") or functions["FindFirstChild"](V.Character, "UpperTorso") then
                                local Torso = functions["FindFirstChild"](V.Character, "Torso") or functions["FindFirstChild"](V.Character, "UpperTorso")
                                if (functions["FindFirstChildOfClass"](V.Character, "Humanoid") and functions["FindFirstChildOfClass"](V.Character, "Humanoid").Health > constants["0"] and framework.flags["aimbotDead"])  or not framework.flags["aimbotDead"] then
                                    if (Torso.Transparency ~= constants["1"] and framework.flags["aimbotInvisible"])  or not framework.flags["aimbotInvisible"] then
                                        if (not functions["FindFirstChildOfClass"](V.Character, "ForceField") and framework.flags["aimbotForcefield"]) or not framework.flags["aimbotForcefield"] then
                                            if aimAt == "Closest" then
                                                local mousePoint = functions["GetMouseLocation"](UserInputService)
                                                local headPoint = client.returnCamera().WorldToViewportPoint(client.returnCamera(),V.Character.Head.Position)
                                                local torsoPoint = client.returnCamera().WorldToViewportPoint(client.returnCamera(), Torso.Position)
                                                local headMag = (functions["nVector2"](headPoint.X, headPoint.Y) - functions["nVector2"](mousePoint.X, mousePoint.Y)).Magnitude
                                                local torsoMag = (functions["nVector2"](torsoPoint.X, torsoPoint.Y) - functions["nVector2"](mousePoint.X, mousePoint.Y)).Magnitude
                                                aimAt = headMag < torsoMag and "Head" or functions["tostring"](Torso)
                                            end
                                            if aimAt == "Torso" then
                                                if functions["tostring"](Torso) == "UpperTorso" then
                                                    aimAt = "UpperTorso"
                                                end
                                            end

                                            local Pos, Vis = client.returnCamera().WorldToViewportPoint(client.returnCamera(), V.Character[aimAt].Position)
                                            if Vis then
                                                TheirPos = functions["nVector2"](Pos.X, Pos.Y)
                                                Dist = localPlayer.DistanceFromCharacter(localPlayer, V.Character[aimAt].Position)
                                                local Mag = (TheirPos - fovCircle.Position).Magnitude
                                                if (Mag < framework.flags["fovRadius"] and not framework.flags["aimbotIgnoreFOV"] or framework.flags["aimbotIgnoreFOV"]) and (Mag > framework.flags["deadZoneFOV"] and framework.flags["deadZone"] or not framework.flags["deadZone"]) then
                                                    if not localPlayer.Character then
                                                        break
                                                    end
                                                    if not functions["FindFirstChild"](localPlayer.Character, "Head") then
                                                        break
                                                    end
                                                    local Params = functions["nRayParams"]({FilterDescendantsInstances = {client.returnCamera(), localPlayer.Character}, FilterType = Enum.RaycastFilterType.Blacklist, IgnoreWater = constants["true"]})
                                                    local Result = Workspace.Raycast(Workspace, localPlayer.Character.Head.Position,(V.Character[aimAt].Position - localPlayer.Character.Head.Position).unit*constants["5000"], Params)
                                                    if (Result and Result.Instance and functions["IsDescendantOf"](Result.Instance, V.Character) and framework.flags["aimbotVisible"]) or not framework.flags["aimbotVisible"]  then
                                                        if Dist < MaxDist then
                                                            MaxDist = Dist
                                                            Target = V
                                                        end
                                                    end
                                                end
                                            end
                                        end
                                        if framework.flags["masterAimbot"] and framework.flags["aimKey"][constants["2"]] and ((not client.isMouseButtonDown(Enum.UserInputType.MouseButton2) and framework.flags["aimbotNoLock"]) or not framework.flags["aimbotNoLock"]) then
                                            client.target = Target
                                            client.targetHitPart = aimAt
                                        else
                                            client.target = constants["nil"]
                                            client.targetHitPart = constants["nil"]
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
    if method == "Health" then
        for _,V in functions["next"], functions["GetPlayers"](Players) do
            if V ~= localPlayer then
                if V.Team ~= localPlayer.Team or framework.flags["aimbotTeamkill"] then
                    if V.Character then
                        if functions["FindFirstChild"](V.Character, "Head") then
                            if functions["FindFirstChild"](V.Character, "Torso") or functions["FindFirstChild"](V.Character, "UpperTorso") then
                                local Torso = functions["FindFirstChild"](V.Character, "Torso") or functions["FindFirstChild"](V.Character, "UpperTorso")
                                if (functions["FindFirstChildOfClass"](V.Character, "Humanoid") and functions["FindFirstChildOfClass"](V.Character, "Humanoid").Health > constants["0"] and framework.flags["aimbotDead"])  or not framework.flags["aimbotDead"] then
                                    if (Torso.Transparency ~= constants["1"] and framework.flags["aimbotInvisible"])  or not framework.flags["aimbotInvisible"] then
                                        if (not functions["FindFirstChildOfClass"](V.Character, "ForceField") and framework.flags["aimbotForcefield"]) or not framework.flags["aimbotForcefield"] then
                                            if aimAt == "Closest" then
                                                local mousePoint = functions["GetMouseLocation"](UserInputService)
                                                local headPoint = client.returnCamera().WorldToViewportPoint(client.returnCamera(),V.Character.Head.Position)
                                                local torsoPoint = client.returnCamera().WorldToViewportPoint(client.returnCamera(), Torso.Position)
                                                local headMag = (functions["nVector2"](headPoint.X, headPoint.Y) - functions["nVector2"](mousePoint.X, mousePoint.Y)).Magnitude
                                                local torsoMag = (functions["nVector2"](torsoPoint.X, torsoPoint.Y) - functions["nVector2"](mousePoint.X, mousePoint.Y)).Magnitude
                                                aimAt = headMag < torsoMag and "Head" or functions["tostring"](Torso)
                                            end
                                            if aimAt == "Torso" then
                                                if functions["tostring"](Torso) == "UpperTorso" then
                                                    aimAt = "UpperTorso"
                                                end
                                            end

                                            local Pos, Vis = client.returnCamera().WorldToViewportPoint(client.returnCamera(), V.Character[aimAt].Position)
                                            if Vis then
                                                TheirPos = functions["nVector2"](Pos.X, Pos.Y)
                                                Dist = functions["FindFirstChildOfClass"](V.Character, "Humanoid").Health
                                                local Mag = (TheirPos - fovCircle.Position).Magnitude
                                                if (Mag < framework.flags["fovRadius"] and not framework.flags["aimbotIgnoreFOV"] or framework.flags["aimbotIgnoreFOV"]) and (Mag > framework.flags["deadZoneFOV"] and framework.flags["deadZone"] or not framework.flags["deadZone"]) then
                                                    if not localPlayer.Character then
                                                        break
                                                    end
                                                    if not functions["FindFirstChild"](localPlayer.Character, "Head") then
                                                        break
                                                    end
                                                    local Params = functions["nRayParams"]({FilterDescendantsInstances = {client.returnCamera(), localPlayer.Character}, FilterType = Enum.RaycastFilterType.Blacklist, IgnoreWater = constants["true"]})
                                                    local Result = Workspace.Raycast(Workspace, localPlayer.Character.Head.Position,(V.Character[aimAt].Position - localPlayer.Character.Head.Position).unit*constants["5000"], Params)
                                                    if (Result and Result.Instance and functions["IsDescendantOf"](Result.Instance, V.Character) and framework.flags["aimbotVisible"]) or not framework.flags["aimbotVisible"]  then
                                                        if Dist < MaxDist then
                                                            MaxDist = Dist
                                                            Target = V
                                                        end
                                                    end
                                                end
                                            end
                                        end
                                        if framework.flags["masterAimbot"] and framework.flags["aimKey"][constants["2"]] and ((not client.isMouseButtonDown(Enum.UserInputType.MouseButton2) and framework.flags["aimbotNoLock"]) or not framework.flags["aimbotNoLock"]) then
                                            client.target = Target
                                            client.targetHitPart = aimAt
                                        else
                                            client.target = constants["nil"]
                                            client.targetHitPart = constants["nil"]
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
end

function client.renderCircle(Point, Radius)
    local Circle = {}

    local points = {}
    local lines = {}

    function Circle.Destroy()
        Circle.Stepped:Disconnect()
        for i,v in functions["ipairs"](lines) do
            if functions["rawget"](v, "__OBJECT_EXISTS") then
                v:Remove()
            end
        end
        for i,v in functions["ipairs"](points) do
            points[i] = constants["nil"]
        end
    end

    local ixAxis = Point.X
    local iyAxis = Point.Y
    local izAxis = Point.Z

    for i = constants["0"], constants['360'], constants["10"] do
        local xOffset = ixAxis + Radius * functions["cos"](functions["rad"](i))
        local zOffset = izAxis + Radius * functions["sin"](functions["rad"](i))
        local Result = functions["nVector3"](xOffset, iyAxis, zOffset)

        functions["insert"](points, Result)
    end

    for _,v in functions["ipairs"](points) do
        local line = framework("draw", {hidden = constants["true"], class = "Line", properties = {
            Visible = constants["true"],
            Transparency = constants["1"],
            Color = functions["nColor3"](constants["1"],constants["1"],constants["1"]),
            Thickness = constants["1"],
        }})
        functions["insert"](lines, line)
    end

    Circle.Stepped = RunService.RenderStepped:Connect(function()
        local xAxis = Point.X
        local yAxis = Point.Y
        local zAxis = Point.Z

        for i,v in functions["ipairs"](points) do
            points[i] = constants["nil"]
        end

        for i = constants["0"], constants['360'], constants["10"] do
            local xOffset = xAxis + Radius * functions["cos"](functions["rad"](i))
            local zOffset = zAxis + Radius * functions["sin"](functions["rad"](i))
            local Result = functions["nVector3"](xOffset, yAxis, zOffset)

            functions["insert"](points, Result)
        end

        for i,v in functions["ipairs"](lines) do
            local nextPoint = points[i+constants["1"]]
            if nextPoint ~= constants["nil"] then
                local currentPointPosition,isCurrentVisible = client.returnCamera().WorldToViewportPoint(client.returnCamera(),points[i])
                local nextPointPosition,isNextVisible = client.returnCamera().WorldToViewportPoint(client.returnCamera(),nextPoint)
                if not isCurrentVisible and not isNextVisible then
                    if functions["rawget"](v, "__OBJECT_EXISTS") then
                        v.Visible = constants["false"]
                    end
                else
                    if functions["rawget"](v, "__OBJECT_EXISTS") then
                        v.Visible = constants["true"]
                        v.From = functions["nVector2"](currentPointPosition.X,currentPointPosition.Y)
                        v.To = functions["nVector2"](nextPointPosition.X,nextPointPosition.Y)
                    end
                end
            end
        end
    end)
    return Circle
end

function client.isMouseButtonDown(inputType)
	for _,button in pairs(UserInputService:GetMouseButtonsPressed()) do
		if button.UserInputType == inputType then
			return constants["true"]
		end
	end
	return constants["false"]
end

function client.drawPlayerESP(requestedPlayer)
    local ESP = {name = requestedPlayer.Name, drawings = {}}

    ESP.drawings.inline = framework("draw", {hidden = constants["true"], class = "Square", properties = {
        Transparency = constants["1"],
        Thickness = constants["1"],
        Color = functions["nRGB"](constants["0"], constants["0"], constants["0"]),
    }})

    ESP.drawings.box = framework("draw", {hidden = constants["true"], class = "Square", properties = {
        Transparency = constants["1"],
        Thickness = constants["1"],
        Color = functions["nRGB"](constants["255"], constants["255"], constants["255"]),
    }})

    ESP.drawings.outline = framework("draw", {hidden = constants["true"], class = "Square", properties = {
        Transparency = constants["1"],
        Thickness = constants["1"],
        Color = functions["nRGB"](constants["0"], constants["0"], constants["0"]),
    }})

    ESP.drawings.healthBar = framework("draw", {hidden = constants["true"], class = "Square", properties = {
        Transparency = constants["1"],
        Thickness = constants["1"],
        Filled = constants["true"],
        Color = functions["nRGB"](constants["0"], constants["0"], constants["0"]),
    }})

    ESP.drawings.healthBarColor = framework("draw", {hidden = constants["true"], class = "Square", properties = {
        Transparency = constants["1"],
        Thickness = constants["1"],
        Filled = constants["true"],
        Color = functions["nRGB"](constants["0"], constants["255"], constants["0"]),
    }})

    ESP.drawings.nameShadow = framework("draw", {hidden = constants["true"], class = "Text", properties = {
        Transparency = constants["1"],
        Color = functions["nColor3"](constants["0"],constants["0"],constants["0"]),
        Text = ESP.name,
        Center = constants["true"],
        Font = framework.theme.font,
        Size = framework.theme.fontSize,
    }})

    ESP.drawings.name = framework("draw", {hidden = constants["true"], class = "Text", properties = {
        Transparency = constants["1"],
        Color = functions["nColor3"](constants["255"],constants["255"],constants["255"]),
        Text = ESP.name,
        Center = constants["true"],
        Font = framework.theme.font,
        Size = framework.theme.fontSize,
    }})

    ESP.drawings.healthTextShadow = framework("draw", {hidden = constants["true"], class = "Text", properties = {
        Transparency = constants["1"],
        Color = functions["nColor3"](constants["0"],constants["0"],constants["0"]),
        Text = ESP.name,
        Center = constants["true"],
        Font = framework.theme.font,
        Size = framework.theme.fontSize,
    }})

    ESP.drawings.healthText = framework("draw", {hidden = constants["true"], class = "Text", properties = {
        Transparency = constants["1"],
        Color = functions["nColor3"](constants["255"],constants["255"],constants["255"]),
        Text = ESP.name,
        Center = constants["true"],
        Font = framework.theme.font,
        Size = framework.theme.fontSize,
    }})

    function ESP.Destroy()
        ESP.Stepped:Disconnect()
        for i,v in functions["next"], ESP.drawings do
            if functions["type"](v) == 'table' and functions["rawget"](v, '__OBJECT_EXISTS') then
                v.Remove()
            end
        end
    end

    ESP.Stepped = RunService.RenderStepped:Connect(function()
        if not requestedPlayer then
            ESP.Destroy()
            return
        end

        if not (requestedPlayer.Character and functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid") and functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid").Health > constants["0"]) then
            for i,v in functions["next"], ESP.drawings do
                if functions["rawget"](v, "__OBJECT_EXISTS") then
                    v.Visible = constants["false"]
                end
            end
            return
        end

        local pos, size = client.returnBoundingBox(requestedPlayer.Character)
        if pos then
            local boxvis = size.x+size.y > constants["8"]
            if functions["rawget"](ESP.drawings.name, '__OBJECT_EXISTS') and functions["rawget"](ESP.drawings.nameShadow, '__OBJECT_EXISTS') and functions["rawget"](ESP.drawings.box, '__OBJECT_EXISTS') and functions["rawget"](ESP.drawings.outline, '__OBJECT_EXISTS') and functions["rawget"](ESP.drawings.healthBar, '__OBJECT_EXISTS') and functions["rawget"](ESP.drawings.healthBarColor, '__OBJECT_EXISTS') and functions["rawget"](ESP.drawings.healthTextShadow, '__OBJECT_EXISTS') and functions["rawget"](ESP.drawings.healthText, '__OBJECT_EXISTS') then
                ESP.drawings.name.Visible = (framework.flags["masterESP"] and framework.flags["nameESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.nameShadow.Visible = (framework.flags["masterESP"] and framework.flags["nameESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.box.Visible = boxvis and (framework.flags["masterESP"] and framework.flags["boxESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.outline.Visible = boxvis and (framework.flags["masterESP"] and framework.flags["boxESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.inline.Visible = boxvis and (framework.flags["masterESP"] and framework.flags["boxESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.healthBar.Visible = boxvis and (framework.flags["masterESP"] and framework.flags["healthESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.healthBarColor.Visible = boxvis and (framework.flags["masterESP"] and framework.flags["healthESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.healthTextShadow.Visible = boxvis and functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid").Health < functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid").MaxHealth and (framework.flags["masterESP"] and framework.flags["healthESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])
                ESP.drawings.healthText.Visible = boxvis and functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid").Health < functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid").MaxHealth and (framework.flags["masterESP"] and framework.flags["healthESP"]) and (framework.flags["teamESP"] and requestedPlayer.Team ~= localPlayer.Team or not framework.flags["teamESP"])

                ESP.drawings.box.Size = size
                ESP.drawings.box.Position = pos
                ESP.drawings.outline.Size = size+functions["nVector2"](constants["2"],constants["2"])
                ESP.drawings.outline.Position = pos-functions["nVector2"](constants["1"], constants["1"])
                ESP.drawings.inline.Size = size-functions["nVector2"](constants["2"],constants["2"])
                ESP.drawings.inline.Position = pos+functions["nVector2"](constants["1"], constants["1"])
                ESP.drawings.name.Position = pos+functions["nVector2"](size.x/constants["2"], -constants["20"])
                ESP.drawings.nameShadow.Position = ESP.drawings.name.Position + functions["nVector2"](constants["1"],constants["1"])

                ESP.drawings.box.Color = client.target == requestedPlayer and functions["nRGB"](constants["255"],constants["0"],constants["0"]) or functions["nRGB"](constants["255"],constants["255"],constants["255"])
                ESP.drawings.name.Color = client.target == requestedPlayer and functions["nRGB"](constants["255"],constants["0"],constants["0"]) or functions["nRGB"](constants["255"],constants["255"],constants["255"])
                ESP.drawings.healthText.Color = client.target == requestedPlayer and functions["nRGB"](constants["255"],constants["0"],constants["0"]) or functions["nRGB"](constants["255"],constants["255"],constants["255"])

                ESP.drawings.healthBar.Size = functions["nVector2"](constants["4"], size.y+constants["2"])
                ESP.drawings.healthBar.Position = functions["nVector2"](ESP.drawings.box.Position.x-constants["6"], ESP.drawings.outline.Position.y)
                ESP.drawings.healthBarColor.Size = functions["nVector2"](ESP.drawings.healthBar.Size.x-constants["2"], (ESP.drawings.healthBar.Size.y-constants["2"])*(requestedPlayer.Character:FindFirstChildOfClass("Humanoid").Health/requestedPlayer.Character:FindFirstChildOfClass("Humanoid").MaxHealth))
                ESP.drawings.healthBarColor.Position = (ESP.drawings.healthBar.Position+functions["nVector2"](constants["1"], ESP.drawings.healthBar.Size.y-constants["1"]))-functions["nVector2"](constants["0"], ESP.drawings.healthBarColor.Size.y)
                if ESP.drawings.healthText.Visible then
                    ESP.drawings.healthText.Position = ESP.drawings.healthBarColor.Position-functions["nVector2"](constants["0"], ESP.drawings.healthText.Size/constants["2"])
                    ESP.drawings.healthText.Text = functions["tostring"](functions["floor"](functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid").Health))
                    ESP.drawings.healthTextShadow.Position = ESP.drawings.healthText.Position + functions["nVector2"](constants["1"],constants["1"])
                    ESP.drawings.healthTextShadow.Text = functions["tostring"](functions["floor"](functions["FindFirstChildOfClass"](requestedPlayer.Character, "Humanoid").Health))
                end
            end
        else
            for i,v in functions["next"], ESP.drawings do
                if functions["rawget"](v, "__OBJECT_EXISTS") then
                    v.Visible = constants["false"]
                end
            end
        end
    end)

    framework.esp[ESP.name] = ESP
end

local window = framework:createWindow({name = ""})

local aimbotToggle = window:createToggle({text = "Aimbot", flag = "masterAimbot"})
local aimKey = window:createKeybind({text = "AimKey", defaultKey = Enum.UserInputType.MouseButton1, trackType = "Hold", flag = "aimKey", callback = function(tbl)
    if tbl.state then
        if framework.flags["aimbotSticky"] then
            repeat
                client.calculateTarget(framework.flags["aimbotMethod"], framework.flags["hitPart"])
                RunService.Heartbeat:Wait()
            until client.target
        end
    else
        client.target = constants["nil"]
        client.targetHitPart = constants["nil"]
    end
end})
local fovSlider = window:createInt({text = "FOV", default = constants["100"], offset = constants["10"], flag = "fovRadius"})
local sensitivitySlider = window:createInt({text = "Sensitivity", default = constants["1"], offset = constants[".1"], flag = "aimbotSensitivity"})
local smoothnessSlider = window:createInt({text = "Smoothness", default = constants["1"], offset = constants["1"], flag = "aimbotSmoothness"})
local fovToggle = window:createToggle({text = "Show FOV", default = constants["true"], flag = "showFOV"})
local deadzoneToggle = window:createToggle({text = "Dead Zone", flag = "deadZone"})
local deadzonefovSlider = window:createInt({text = "Dead Zone FOV", default = constants["20"], offset = constants["10"], flag = "deadZoneFOV"})
local deadzonefovToggle = window:createToggle({text = "Show Dead Zone", default = constants["true"], flag = "showDeadZone"})
local hitPartList = window:createList({text = "Hitbox", default = "Head", list = {"Head", "Torso", "Closest"}, flag = "hitPart"})
local deadToggle = window:createToggle({text = "Dead Check", default = constants["true"], flag = "aimbotDead"})
local teamkillToggle = window:createToggle({text = "Teamkill", flag = "aimbotTeamkill"})
local forcefieldToggle = window:createToggle({text = "ForceField Check", flag = "aimbotForcefield"})
local InvisToggle = window:createToggle({text = "Invisible Check", default = constants["false"], flag = "aimbotInvisible"})
local visibleToggle = window:createToggle({text = "Visible Check", flag = "aimbotVisible"})
local nonStickyToggle = window:createToggle({text = "Non-Sticky Aim", flag = "aimbotSticky"})
local ignoreFOVToggle = window:createToggle({text = "Ignore FOV", flag = "aimbotIgnoreFOV"})
local methodList = window:createList({text = "Method", default = "Mouse", list = {"Mouse", "Distance", "Health"}, flag = "aimbotMethod"})
local dontLockToggle = window:createToggle({text = "Don't Lock when Right Click", flag = "aimbotNoLock"})
local cursorCalibrationKey = window:createKeybind({text = "Cursor Calibration Key", defaultKey = Enum.KeyCode.F1, flag = "cursorCalibrationKey", callback = function(tbl)
    if not tbl.state then
        local mousePosition = functions["GetMouseLocation"](UserInputService)
        if functions["type"](client.offsetVisualizer) == 'table' and functions["rawget"](client.offsetVisualizer, '__OBJECT_EXISTS') then
            client.offsetVisualizer:Remove()
            client.offsetVisualizer = constants["nil"]
        end
        client.cursorOffset = functions["nVector2"](screenCenter.X-mousePosition.X,screenCenter.Y-mousePosition.Y)
    else
        client.offsetVisualizer = framework("draw", {class = "Circle", hidden = constants["true"], properties = {
            Transparency = constants[".5"],
            Radius = constants["10"],
            Color = functions["nRGB"](constants["255"], constants["0"], constants["0"]),
            Filled = constants["true"],
            Visible = constants["true"],
            Position = screenCenter
        }})
    end
end})

local triggerbotToggle = window:createToggle({text = "Triggerbot", flag = "masterTriggerbot"})
local delaySlider = window:createInt({text = "Delay", offset = constants["10"], flag = "triggerbotDelay"})
local durationSlider = window:createInt({text = "Duration", offset = constants["10"], flag = "triggerbotDuration"})
local triggerTeamKillToggle = window:createToggle({text = "Teamkill", flag = "triggerbotTeamkill"})
local triggerDeadCheckToggle = window:createToggle({text = "Dead Check", flag = "triggerbotDead"})
local triggerDeadCheckToggle = window:createToggle({text = "Forcefield Check", flag = "triggerbotForcefield"})
local triggerInvisToggle = window:createToggle({text = "Invisible Check", default = constants["true"], flag = "triggerbotInvisible"})
local triggerKey = window:createKeybind({text = "TriggerKey", defaultKey = Enum.KeyCode.LeftAlt, trackType = "Hold", flag = "triggerKey"})

local espToggle = window:createToggle({text = "ESP", flag = "masterESP"})
local boxToggle = window:createToggle({text = "Boxes", flag = "boxESP"})
local healthToggle = window:createToggle({text = "Health", flag = "healthESP"})
local nameToggle = window:createToggle({text = "Name", flag = "nameESP"})
local hideTeamToggle = window:createToggle({text = "Hide Team", flag = "teamESP"})

local catBoyKey = window:createKeybind({text = "Catboy", defaultKey = Enum.KeyCode.F2, flag = "catBoyKey", callback = function()
    for _,v in functions["next"], functions["GetPlayers"](Players) do
        if v.Character and functions["FindFirstChild"](v.Character, "HumanoidRootPart") then
            if not functions["FindFirstChild"](v.Character, "catboyed") then
                client.catBoy(v)
            end
        end
    end
end})
local packetChokeOnKey = window:createKeybind({text = "Packet Choke", defaultKey = Enum.KeyCode.LeftControl, flag = "packetChokeKey", callback = function(tbl) -- Exploits
    if tbl.state then
        if localPlayer.Character and functions["FindFirstChild"](localPlayer.Character, "HumanoidRootPart") then
            NetworkClient:SetOutgoingKBPSLimit(constants["1"])
            client.packetVisualizer = client.renderCircle(functions["FindFirstChild"](localPlayer.Character, "HumanoidRootPart").Position, constants["5"])
        end
    else
        if client.packetVisualizer then
            NetworkClient:SetOutgoingKBPSLimit(constants["9e9"])
            client.packetVisualizer.Destroy()
            client.packetVisualizer = constants["nil"]
        end
    end
end})
local clickTpOnKey = window:createKeybind({text = "Click Tp", defaultKey = Enum.KeyCode.F3, flag = "tpKey", callback = function(tbl) -- Exploits
    if localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") and mouse.Hit then
        localPlayer.Character.HumanoidRootPart.CFrame = functions["nCFrame"](mouse.Hit.p.X, mouse.Hit.p.Y, mouse.Hit.p.Z)
    end
end})
local flyToggle = window:createToggle({text = "Fly", flag = "Fly"})
local flySlider = window:createInt({text = "Speed", default = constants["70"], offset = constants["10"], flag = "flySpeed"})
local spinbotToggle = window:createToggle({text = "Spinbot", flag = "Spinbot"})

framework("createConnection", {name = "aimbotStepped", connection = RunService.Heartbeat, callback = function()
    local mousePosition = functions["GetMouseLocation"](UserInputService)
    fovCircle.Radius = framework.flags["fovRadius"]
    fovCircle.Visible = framework.flags["showFOV"]
    fovCircle.Position = mousePosition + client.cursorOffset
    deadZoneCircle.Radius = framework.flags["deadZoneFOV"]
    deadZoneCircle.Visible = framework.flags["showDeadZone"] and framework.flags["deadZone"]
    deadZoneCircle.Position = mousePosition + client.cursorOffset
    if framework.flags["aimbotSticky"] and client.target and client.targetHitPart and client.target.Character then
        if client.target == localPlayer then
            return
        end
        if client.target.TeamColor == localPlayer.TeamColor and not framework.flags["aimbotTeamkill"] then
            return
        end
        if not functions["FindFirstChild"](client.target.Character, "Head") then
            return
        end
        if not functions["FindFirstChild"](client.target.Character, "Torso") and not functions["FindFirstChild"](client.target.Character, "UpperTorso") then
            return
        end
        local Torso = functions["FindFirstChild"](client.target.Character, "Torso") or functions["FindFirstChild"](client.target.Character, "UpperTorso")
        if Torso.Transparency == constants["1"] and framework.flags["aimbotInvisible"] then
            return
        end
        if functions["FindFirstChildOfClass"](client.target.Character, "Humanoid") and functions["FindFirstChildOfClass"](client.target.Character, "Humanoid").Health <= constants["0"] and framework.flags["aimbotDead"] then
            return
        end
        if functions["FindFirstChildOfClass"](client.target.Character, "ForceField") and framework.flags["aimbotForcefield"] then
            return
        end
        local Pos, Vis = client.returnCamera().WorldToViewportPoint(client.returnCamera(), client.target.Character[client.targetHitPart].Position)
        if not Vis then
            return
        end
        if not localPlayer.Character then
            return
        end
        if not functions["FindFirstChild"](localPlayer.Character, "Head") then
            return
        end
        if client.isMouseButtonDown(Enum.UserInputType.MouseButton2) and framework.flags["aimbotNoLock"] then
            return
        end
        local Params = functions["nRayParams"]({FilterDescendantsInstances = {client.returnCamera(), localPlayer.Character}, FilterType = Enum.RaycastFilterType.Blacklist, IgnoreWater = constants["true"]})
        local Result = Workspace.Raycast(Workspace, localPlayer.Character.Head.Position, (client.target.Character[client.targetHitPart].Position - localPlayer.Character.Head.Position).unit*constants["5000"], Params)
        if (not Result.Instance or not functions["IsDescendantOf"](Result.Instance, client.target.Character)) and framework.flags["aimbotVisible"] then
            return
        end
        local TheirPos = functions["nVector2"](Pos.X, Pos.Y)
        local Mag = (TheirPos - fovCircle.Position).Magnitude
        if (Mag <= framework.flags["fovRadius"] and not framework.flags["aimbotIgnoreFOV"] or framework.flags["aimbotIgnoreFOV"]) then
            if (Mag >= framework.flags["deadZoneFOV"] and framework.flags["deadZone"] or not framework.flags["deadZone"]) then
                mousemoverel(((Pos.X - fovCircle.Position.X)*framework.flags["aimbotSensitivity"])/framework.flags["aimbotSmoothness"], ((Pos.Y - fovCircle.Position.Y)*framework.flags["aimbotSensitivity"])/framework.flags["aimbotSmoothness"])
            end
        end
    else
        client.calculateTarget(framework.flags["aimbotMethod"], framework.flags["hitPart"])
        if client.target then
            local Pos, Vis = client.returnCamera().WorldToViewportPoint(client.returnCamera(), client.target.Character[client.targetHitPart].Position)
            mousemoverel(((Pos.X - fovCircle.Position.X)* framework.flags["aimbotSensitivity"])/framework.flags["aimbotSmoothness"], ((Pos.Y - fovCircle.Position.Y)*framework.flags["aimbotSensitivity"])/framework.flags["aimbotSmoothness"])
        end
    end
end})

framework("createConnection", {name = "triggerbotStepped", connection = RunService.Heartbeat, callback = function()
    if framework.flags["masterTriggerbot"] and framework.flags["triggerKey"][constants["2"]] then
        local unitRay = client.returnCamera().ViewportPointToRay(client.returnCamera(), fovCircle.Position.X, fovCircle.Position.Y)
        local Params = functions["nRayParams"]({FilterDescendantsInstances = {client.returnCamera(), localPlayer.Character}, FilterType = Enum.RaycastFilterType.Blacklist, IgnoreWater = constants["true"]})
        local Result = Workspace.Raycast(Workspace, unitRay.Origin, unitRay.Direction * constants["5000"], Params)
        if Result then
            for _,V in functions["next"], functions["GetPlayers"](Players) do
                if V == localPlayer then
                    continue
                end
                if V.Team == localPlayer.Team and not framework.flags["triggerbotTeamkill"] then
                    continue
                end
                if not V.Character then
                    continue
                end
                if functions["FindFirstChildOfClass"](V.Character, "Humanoid") and functions["FindFirstChildOfClass"](V.Character, "Humanoid").Health <= constants["0"] and framework.flags["triggerbotDead"] then
                    continue
                end
                if not functions["FindFirstChild"](V.Character, "Torso") and not functions["FindFirstChild"](V.Character, "UpperTorso") then
                    continue
                end
                local Torso = functions["FindFirstChild"](V.Character, "Torso") or functions["FindFirstChild"](V.Character, "UpperTorso")
                if Torso.Transparency == constants["1"] and framework.flags["triggerbotInvisible"] then
                    continue
                end
                if functions["FindFirstChildOfClass"](V.Character, "ForceField") and framework.flags["triggerbotForcefield"] then
                    continue
                end
                if functions["IsDescendantOf"](Result.Instance, V.Character) then
                    if framework.flags["triggerbotDelay"] > constants["0"] then
                        functions["wait"](framework.flags["triggerbotDelay"]/constants["1000"])
                    end
                     mouse1press()
                     wait(framework.flags["triggerbotDuration"])
                     mouse1release()
                 end
            end
        end
    end
end})

framework("createConnection", {name = "movementStepped", connection = RunService.Heartbeat, callback = function()
    if localPlayer.Character and functions["FindFirstChild"](localPlayer.Character, "HumanoidRootPart") and functions["FindFirstChildOfClass"](localPlayer.Character, "Humanoid") then
        local camCFrame = client.returnCamera().CFrame
        local humanoid = functions["FindFirstChildOfClass"](localPlayer.Character, "Humanoid")
        local rootPart = functions["FindFirstChild"](localPlayer.Character, "HumanoidRootPart")
        if framework.flags["Fly"] then
            if not functions["GetFocusedTextBox"](UserInputService) then
                local eVector = functions["nVector3"]()
                local rVector, lVector, uVector = camCFrame.RightVector, camCFrame.LookVector, camCFrame.UpVector
                if functions["IsKeyDown"](UserInputService, "W") then
                    eVector = eVector + lVector
                end
                if functions["IsKeyDown"](UserInputService, "S") then
                    eVector = eVector - lVector
                end
                if functions["IsKeyDown"](UserInputService, "D") then
                    eVector = eVector + rVector
                end
                if functions["IsKeyDown"](UserInputService, "A") then
                    eVector = eVector - rVector
                end
                if functions["IsKeyDown"](UserInputService, "Space") then
                    eVector = eVector + uVector
                end
                if functions["IsKeyDown"](UserInputService, "LeftShift") then
                    eVector = eVector - uVector
                end
                if eVector.Unit.X == eVector.Unit.X then
                    rootPart.AssemblyLinearVelocity  = eVector.Unit * framework.flags["flySpeed"]
                end
                rootPart.Anchored = eVector == functions["nVector3"]()
            end
        else
            rootPart.Anchored = constants["false"]
        end
        if framework.flags["Spinbot"] then
            client.Spin = functions["clamp"](client.Spin + constants["10"], constants["0"], constants["360"])
            if client.Spin == constants["360"] then
                client.Spin = constants["0"]
            end
            humanoid.AutoRotate = constants["false"]
            local Angle = constants["0"]
            Angle = Angle + functions["rad"](client.Spin)
            local CFramePos = functions["nCFrame"](rootPart.Position) * functions["nAngles"](constants["0"], Angle, constants["0"])
            rootPart.CFrame = client.rotateYaw(CFramePos)
        else
            humanoid.AutoRotate = constants["true"]
        end
    end
end})

for _,v in functions["next"], functions["GetPlayers"](Players) do
    if v ~= constants["nil"] and v ~= localPlayer then
        client.drawPlayerESP(v)
    end
end

framework("createConnection", {name = "ConfigPlayerAdded", connection = Players.PlayerAdded, callback = function(Player)
    if Player ~= constants["nil"] and Player ~= localPlayer then
        client.drawPlayerESP(Player)
    end
end})

⚠️ Warning: Do not download any extensions or anything other than .txt/.lua file, because script will download only in .txt/.lua format or It will redirect you to a pastebin link.

📋 Notice: If you find any of the scripts patched or not working, please report it to Forever4D through Discord. The script will be removed or marked as patched!