Weird aimbot and esp
Key RequiredUniversal

Weird aimbot and esp

Universal ScriptUselessScripterUselessScripter 65.5K views 8 executesUpdated Jul 29, 2024
5.0/ 5(1 votes)
10100% Positive
Lua Script•1674 lines (88398 chars)
---UNIVERSAL
---uselessscripter:
 ---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})

Features & Information

Aimbot

Community Comments (2)

UselessScripterUselessScripterJul 29, 2024(edited)

I was bored so i made this weird aimbot and esp all controls are in the script please don't ask me about any controls or you will be ignored!

sorcusrandomsorcusrandomAug 20, 2024(edited)

Better then any aimbot Maybe some are better but Def top 5 best Aimbot.

More Scripts for Universal Scripts