Comabt HUB
Key RequiredUniversal

Comabt HUB

Universal Scriptliterallymymail1234literallymymail1234 16.4K views 83 executesUpdated Jun 20, 2025
1.7/ 5(3 votes)
1233% Positive
Lua Script•753 lines (25506 chars)
--it is all open source and marware free

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local TweenService = game:GetService("TweenService")
local lp = Players.LocalPlayer
local camera = workspace.CurrentCamera

-- Settings
local settings = {
    ESP = true,
    ESPBoxes = true,
    ESPNames = true,
    ESPDistance = true,
    ESPHealth = true,
    ESPDistanceValue = 1000,
    Aimbot = true,
    FOVCircle = true,
    AimbotFOV = 150,
    AimbotSmoothness = 0,
    Fullbright = true,
    FOV = 70,
    AntiAFK = true,
    RageMode = false,
    Wallbang = false,
    SilentAim = false,
    AutoShoot = false,
    TargetPart = "Head",
    PenetrationDepth = math.huge
}

-- UI Creation
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "CheatUI"
ScreenGui.Parent = game:GetService("CoreGui")

local MainContainer = Instance.new("Frame")
MainContainer.Name = "MainContainer"
MainContainer.Size = UDim2.new(0, 400, 0, 450)
MainContainer.Position = UDim2.new(0.5, -200, 0.5, -225)
MainContainer.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
MainContainer.BackgroundTransparency = 0.2
MainContainer.BorderSizePixel = 0
MainContainer.Parent = ScreenGui

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 12)
MainCorner.Parent = MainContainer

-- Title bar
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 30)
TitleBar.Position = UDim2.new(0, 0, 0, 0)
TitleBar.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainContainer

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "TitleLabel"
TitleLabel.Size = UDim2.new(1, -80, 1, 0)
TitleLabel.Position = UDim2.new(0, 15, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "SYSTEM HUB"
TitleLabel.TextColor3 = Color3.fromRGB(0, 255, 255)
TitleLabel.TextScaled = true
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TitleBar

-- Draggable
local dragging, dragInput, dragStart, startPos
local function updateInput(input)
    local Delta = input.Position - dragStart
    local Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + Delta.X, startPos.Y.Scale, startPos.Y.Offset + Delta.Y)
    MainContainer.Position = Position
end

TitleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = MainContainer.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

TitleBar.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        updateInput(input)
    end
end)

-- Control buttons
local CloseButton = Instance.new("TextButton")
CloseButton.Name = "CloseButton"
CloseButton.Size = UDim2.new(0, 25, 0, 25)
CloseButton.Position = UDim2.new(1, -30, 0.5, -12.5)
CloseButton.BackgroundColor3 = Color3.fromRGB(220, 20, 60)
CloseButton.BorderSizePixel = 0
CloseButton.Text = "×"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextScaled = true
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Parent = TitleBar

local MinimizeButton = Instance.new("TextButton")
MinimizeButton.Name = "MinimizeButton"
MinimizeButton.Size = UDim2.new(0, 25, 0, 25)
MinimizeButton.Position = UDim2.new(1, -60, 0.5, -12.5)
MinimizeButton.BackgroundColor3 = Color3.fromRGB(255, 165, 0)
MinimizeButton.BorderSizePixel = 0
MinimizeButton.Text = "−"
MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeButton.TextScaled = true
MinimizeButton.Font = Enum.Font.GothamBold
MinimizeButton.Parent = TitleBar

-- Tab system
local TabContainer = Instance.new("Frame")
TabContainer.Name = "TabContainer"
TabContainer.Size = UDim2.new(0, 120, 1, -40)
TabContainer.Position = UDim2.new(0, 0, 0, 40)
TabContainer.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
TabContainer.BorderSizePixel = 0
TabContainer.Parent = MainContainer

local ContentContainer = Instance.new("Frame")
ContentContainer.Name = "ContentContainer"
ContentContainer.Size = UDim2.new(1, -130, 1, -50)
ContentContainer.Position = UDim2.new(0, 130, 0, 40)
ContentContainer.BackgroundColor3 = Color3.fromRGB(18, 18, 18)
ContentContainer.BorderSizePixel = 0
ContentContainer.Parent = MainContainer

-- Create tabs
local tabs = {"ESP", "Aimbot", "Rage", "Visuals", "Misc"}
local currentTab = "ESP"
local tabButtons = {}
local tabContents = {}

local function createTab(name, index)
    local TabButton = Instance.new("TextButton")
    TabButton.Name = name .. "Tab"
    TabButton.Size = UDim2.new(1, -10, 0, 25)
    TabButton.Position = UDim2.new(0, 5, 0, 5 + (index-1) * 30)
    TabButton.BackgroundColor3 = index == 1 and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(30, 30, 30)
    TabButton.BorderSizePixel = 0
    TabButton.Text = name
    TabButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    TabButton.TextScaled = true
    TabButton.Font = Enum.Font.Gotham
    TabButton.Parent = TabContainer
    
    local TabContent = Instance.new("ScrollingFrame")
    TabContent.Name = name .. "Content"
    TabContent.Size = UDim2.new(1, -10, 1, -10)
    TabContent.Position = UDim2.new(0, 5, 0, 5)
    TabContent.BackgroundTransparency = 1
    TabContent.BorderSizePixel = 0
    TabContent.ScrollBarThickness = 3
    TabContent.ScrollBarImageColor3 = Color3.fromRGB(0, 255, 255)
    TabContent.Visible = index == 1
    TabContent.Parent = ContentContainer
    
    local UIListLayout = Instance.new("UIListLayout")
    UIListLayout.Padding = UDim.new(0, 8)
    UIListLayout.Parent = TabContent
    
    tabButtons[name] = TabButton
    tabContents[name] = TabContent
    
    TabButton.MouseButton1Click:Connect(function()
        currentTab = name
        for tabName, content in pairs(tabContents) do
            content.Visible = (tabName == name)
        end
        for tabName, button in pairs(tabButtons) do
            button.BackgroundColor3 = (tabName == name) and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(30, 30, 30)
        end
    end)
    
    return TabContent
end

-- Create toggle function
local function createToggle(name, parent, description)
    local ToggleFrame = Instance.new("Frame")
    ToggleFrame.Name = name .. "Toggle"
    ToggleFrame.Size = UDim2.new(1, 0, 0, 35)
    ToggleFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
    ToggleFrame.BorderSizePixel = 0
    ToggleFrame.Parent = parent
    
    local ToggleLabel = Instance.new("TextLabel")
    ToggleLabel.Name = "Label"
    ToggleLabel.Size = UDim2.new(0.7, 0, 0.6, 0)
    ToggleLabel.Position = UDim2.new(0, 10, 0, 2)
    ToggleLabel.BackgroundTransparency = 1
    ToggleLabel.Text = name
    ToggleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    ToggleLabel.TextScaled = true
    ToggleLabel.Font = Enum.Font.Gotham
    ToggleLabel.TextXAlignment = Enum.TextXAlignment.Left
    ToggleLabel.Parent = ToggleFrame
    
    local ToggleButton = Instance.new("TextButton")
    ToggleButton.Name = "Button"
    ToggleButton.Size = UDim2.new(0, 35, 0, 20)
    ToggleButton.Position = UDim2.new(1, -40, 0.5, -10)
    ToggleButton.BackgroundColor3 = settings[name] and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(200, 50, 50)
    ToggleButton.BorderSizePixel = 0
    ToggleButton.Text = ""
    ToggleButton.Parent = ToggleFrame
    
    local ToggleIndicator = Instance.new("Frame")
    ToggleIndicator.Name = "Indicator"
    ToggleIndicator.Size = UDim2.new(0, 15, 0, 15)
    ToggleIndicator.Position = UDim2.new(settings[name] and 1 or 0, settings[name] and -17 or 2, 0.5, -7.5)
    ToggleIndicator.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    ToggleIndicator.BorderSizePixel = 0
    ToggleIndicator.Parent = ToggleButton
    
    ToggleButton.MouseButton1Click:Connect(function()
        settings[name] = not settings[name]
        local tween = TweenService:Create(ToggleButton, TweenInfo.new(0.2), {
            BackgroundColor3 = settings[name] and Color3.fromRGB(0, 255, 255) or Color3.fromRGB(200, 50, 50)
        })
        tween:Play()
        
        local indicatorTween = TweenService:Create(ToggleIndicator, TweenInfo.new(0.2), {
            Position = UDim2.new(settings[name] and 1 or 0, settings[name] and -17 or 2, 0.5, -7.5)
        })
        indicatorTween:Play()
    end)
    
    return ToggleFrame
end

-- Create slider function
local function createSlider(name, parent, min, max, default, description)
    local SliderFrame = Instance.new("Frame")
    SliderFrame.Name = name .. "Slider"
    SliderFrame.Size = UDim2.new(1, 0, 0, 50)
    SliderFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
    SliderFrame.BorderSizePixel = 0
    SliderFrame.Parent = parent
    
    local SliderLabel = Instance.new("TextLabel")
    SliderLabel.Name = "Label"
    SliderLabel.Size = UDim2.new(1, -30, 0, 25)
    SliderLabel.Position = UDim2.new(0, 15, 0, 5)
    SliderLabel.BackgroundTransparency = 1
    SliderLabel.Text = name .. ": " .. default
    SliderLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    SliderLabel.TextScaled = true
    SliderLabel.Font = Enum.Font.Gotham
    SliderLabel.TextXAlignment = Enum.TextXAlignment.Left
    SliderLabel.Parent = SliderFrame
    
    local SliderBar = Instance.new("Frame")
    SliderBar.Name = "Bar"
    SliderBar.Size = UDim2.new(1, -30, 0, 6)
    SliderBar.Position = UDim2.new(0, 15, 0, 35)
    SliderBar.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
    SliderBar.BorderSizePixel = 0
    SliderBar.Parent = SliderFrame
    
    local SliderFill = Instance.new("Frame")
    SliderFill.Name = "Fill"
    SliderFill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0)
    SliderFill.Position = UDim2.new(0, 0, 0, 0)
    SliderFill.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
    SliderFill.BorderSizePixel = 0
    SliderFill.Parent = SliderBar
    
    local SliderButton = Instance.new("TextButton")
    SliderButton.Name = "Button"
    SliderButton.Size = UDim2.new(0, 16, 0, 16)
    SliderButton.Position = UDim2.new((default - min) / (max - min), -8, 0, -5)
    SliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    SliderButton.BorderSizePixel = 0
    SliderButton.Text = ""
    SliderButton.Parent = SliderBar
    
    local dragging = false
    
    local function updateSlider(input)
        local percent = math.clamp((input.Position.X - SliderBar.AbsolutePosition.X) / SliderBar.AbsoluteSize.X, 0, 1)
        local value = min + (max - min) * percent
        settings[name] = math.floor(value)
        
        local fillTween = TweenService:Create(SliderFill, TweenInfo.new(0.1), {
            Size = UDim2.new(percent, 0, 1, 0)
        })
        fillTween:Play()
        
        local buttonTween = TweenService:Create(SliderButton, TweenInfo.new(0.1), {
            Position = UDim2.new(percent, -8, 0, -5)
        })
        buttonTween:Play()
        
        SliderLabel.Text = name .. ": " .. settings[name]
    end
    
    SliderButton.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
        end
    end)
    
    SliderButton.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
    
    SliderBar.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            updateSlider(input)
        end
    end)
    
    UserInputService.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then
            updateSlider(input)
        end
    end)
    
    UserInputService.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
    
    return SliderFrame
end

-- Create tabs and content
local espTab = createTab("ESP", 1)
local aimbotTab = createTab("Aimbot", 2)
local rageTab = createTab("Rage", 3)
local visualsTab = createTab("Visuals", 4)
local miscTab = createTab("Misc", 5)

-- ESP tab content
createToggle("ESP", espTab, "Enable ESP features")
createToggle("ESPBoxes", espTab, "Show bounding boxes around players")
createToggle("ESPNames", espTab, "Display player names")
createToggle("ESPDistance", espTab, "Show distance to players")
createToggle("ESPHealth", espTab, "Display player health")
createSlider("ESPDistanceValue", espTab, 100, 2000, settings.ESPDistanceValue, "Maximum ESP render distance")

-- Aimbot tab content
createToggle("Aimbot", aimbotTab, "Enable aimbot assistance")
createToggle("FOVCircle", aimbotTab, "Show aimbot FOV circle")
createSlider("AimbotFOV", aimbotTab, 50, 300, settings.AimbotFOV, "Aimbot field of view")
createSlider("AimbotSmoothness", aimbotTab, 0, 20, settings.AimbotSmoothness, "Aimbot smoothness")

-- Rage tab content
createToggle("RageMode", rageTab, "Enable rage mode (overrides aimbot)")
createToggle("Wallbang", rageTab, "Shoot through walls")
createToggle("SilentAim", rageTab, "Silent aim (no visible crosshair movement)")
createToggle("AutoShoot", rageTab, "Automatically shoot when target acquired")

-- Visuals tab content
createToggle("Fullbright", visualsTab, "Remove darkness from the game")
createSlider("FOV", visualsTab, 50, 120, settings.FOV, "Camera field of view")

-- Misc tab content
createToggle("AntiAFK", miscTab, "Prevent AFK kick")

-- Minimize functionality
local minimized = false
MinimizeButton.MouseButton1Click:Connect(function()
    minimized = not minimized
    if minimized then
        MainContainer.Size = UDim2.new(0, 400, 0, 40)
        MinimizeButton.Text = "+"
        TabContainer.Visible = false
        ContentContainer.Visible = false
    else
        MainContainer.Size = UDim2.new(0, 400, 0, 450)
        MinimizeButton.Text = "−"
        TabContainer.Visible = true
        ContentContainer.Visible = true
    end
end)

-- K key toggle for UI
local uiVisible = true
UserInputService.InputBegan:Connect(function(input, gpe)
    if not gpe and input.KeyCode == Enum.KeyCode.K then
        uiVisible = not uiVisible
        MainContainer.Visible = uiVisible
    end
end)

CloseButton.MouseButton1Click:Connect(function()
    ScreenGui:Destroy()
end)

-- Core functionality
RunService.RenderStepped:Connect(function()
    camera.FieldOfView = settings.FOV
end)

-- Fullbright
local function enableFullbright()
    Lighting.Ambient = Color3.new(1, 1, 1)
    Lighting.OutdoorAmbient = Color3.new(1, 1, 1)
    Lighting.Brightness = 5
    Lighting.GlobalShadows = false
    Lighting.ClockTime = 14
    Lighting.FogEnd = 100000
end

local function disableFullbright()
    Lighting.Ambient = Color3.new(0.5, 0.5, 0.5)
    Lighting.OutdoorAmbient = Color3.new(0.5, 0.5, 0.5)
    Lighting.Brightness = 1
    Lighting.GlobalShadows = true
    Lighting.ClockTime = 12
    Lighting.FogEnd = 1000
end

RunService.RenderStepped:Connect(function()
    if settings.Fullbright then
        enableFullbright()
    else
        disableFullbright()
    end
end)

if settings.Fullbright then
    enableFullbright()
end

-- FOV Circle
local fovCircle = Drawing.new("Circle")
fovCircle.Radius = settings.AimbotFOV
fovCircle.Thickness = 1
fovCircle.Color = Color3.fromRGB(0, 150, 255)
fovCircle.Transparency = 1
fovCircle.NumSides = 100
fovCircle.Filled = false
fovCircle.Visible = settings.FOVCircle

RunService.RenderStepped:Connect(function()
    local mousePos = UserInputService:GetMouseLocation()
    fovCircle.Position = Vector2.new(mousePos.X, mousePos.Y)
    fovCircle.Radius = settings.AimbotFOV
    fovCircle.Visible = settings.FOVCircle
end)

-- Aimbot Logic (Extracted)
local Aimbot = {}
Aimbot.Enabled = true
Aimbot.AimRadius = 150
Aimbot.Aiming = false
Aimbot.CurrentTarget = nil

function Aimbot.GetClosestTarget()
	local mousePos = UserInputService:GetMouseLocation()
	local closest = nil
	local minDist = settings.AimbotFOV

	for _, model in ipairs(workspace:GetDescendants()) do
		if model:IsA("Model") and model ~= lp.Character then
			local humanoid = model:FindFirstChildOfClass("Humanoid")
			local head = model:FindFirstChild("Head")
			if humanoid and head and humanoid.Health > 0 then
				local screenPos, onScreen = camera:WorldToViewportPoint(head.Position)
				if onScreen then
					local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
					if dist < minDist then
						minDist = dist
						closest = head
					end
				end
			end
		end
	end
	return closest
end

function Aimbot.Update()
	if settings.Aimbot and Aimbot.Aiming then
		if Aimbot.CurrentTarget and Aimbot.CurrentTarget:IsDescendantOf(workspace) then
			local screenPos, onScreen = camera:WorldToViewportPoint(Aimbot.CurrentTarget.Position)
			local dist = (Vector2.new(screenPos.X, screenPos.Y) - UserInputService:GetMouseLocation()).Magnitude
			local char = Aimbot.CurrentTarget:FindFirstAncestorOfClass("Model")
			local humanoid = char and char:FindFirstChildOfClass("Humanoid")
			if not onScreen or dist > settings.AimbotFOV or not humanoid or humanoid.Health <= 0 then
				Aimbot.CurrentTarget = nil
			end
		else
			Aimbot.CurrentTarget = nil
		end

		if not Aimbot.CurrentTarget then
			Aimbot.CurrentTarget = Aimbot.GetClosestTarget()
		end

		if Aimbot.CurrentTarget and Aimbot.CurrentTarget:IsA("BasePart") then
			local targetPos = Aimbot.CurrentTarget.Position
			local currentPos = camera.CFrame.Position
			local newCFrame = CFrame.new(currentPos, targetPos)
			
			local smoothness = settings.AimbotSmoothness
			if smoothness > 0 then
				camera.CFrame = camera.CFrame:Lerp(newCFrame, 1/smoothness)
			else
				camera.CFrame = newCFrame
			end
		end
	end
end

function Aimbot.Init()
	RunService.RenderStepped:Connect(Aimbot.Update)

	UserInputService.InputBegan:Connect(function(input, gpe)
		if not gpe and input.UserInputType == Enum.UserInputType.MouseButton2 then
			Aimbot.Aiming = true
		end
	end)

	UserInputService.InputEnded:Connect(function(input, gpe)
		if not gpe and input.UserInputType == Enum.UserInputType.MouseButton2 then
			Aimbot.Aiming = false
			Aimbot.CurrentTarget = nil
		end
	end)
end

-- Initialize Aimbot
Aimbot.Init()

-- ESP Setup
local highlights = {}
local boxDrawings = {}
local nameLabels = {}
local distanceLabels = {}
local healthLabels = {}
local processedModels = {}

local function setupESP(character)
    if processedModels[character] then return end
    processedModels[character] = true

    local humanoid = character:FindFirstChildOfClass("Humanoid")
    local head = character:FindFirstChild("Head")
    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not humanoid or not head or not hrp then return end

    local isPlayer = Players:GetPlayerFromCharacter(character) ~= nil
    local baseColor = isPlayer and Color3.fromRGB(0, 170, 255) or Color3.fromRGB(255, 0, 0)
    local visibleColor = Color3.fromRGB(255, 255, 0)

    local highlight = Instance.new("Highlight")
    highlight.Adornee = character
    highlight.FillColor = baseColor
    highlight.OutlineColor = Color3.new(0, 0, 0)
    highlight.Parent = character
    highlights[character] = highlight

    local box = Drawing.new("Square")
    box.Thickness = 1
    box.Transparency = 0
    box.Filled = false
    box.Color = baseColor
    boxDrawings[character] = box

    local nameLabel = Drawing.new("Text")
    nameLabel.Size = 8
    nameLabel.Center = true
    nameLabel.Outline = true
    nameLabel.Color = baseColor
    nameLabel.Text = character.Name
    nameLabels[character] = nameLabel

    local distanceLabel = Drawing.new("Text")
    distanceLabel.Size = 8
    distanceLabel.Center = true
    distanceLabel.Outline = true
    distanceLabel.Color = baseColor
    distanceLabels[character] = distanceLabel

    local healthLabel = Drawing.new("Text")
    healthLabel.Size = 8
    healthLabel.Center = true
    healthLabel.Outline = true
    healthLabel.Color = baseColor
    healthLabels[character] = healthLabel

    local function cleanup()
        if highlights[character] then highlights[character]:Destroy() end
        if box then box.Visible = false box:Remove() end
        if nameLabel then nameLabel.Visible = false nameLabel:Remove() end
        if distanceLabel then distanceLabel.Visible = false distanceLabel:Remove() end
        if healthLabel then healthLabel.Visible = false healthLabel:Remove() end
        highlights[character] = nil
        boxDrawings[character] = nil
        nameLabels[character] = nil
        distanceLabels[character] = nil
        healthLabels[character] = nil
    end

    character.AncestryChanged:Connect(function(_, parent)
        if not parent then cleanup() end
    end)

    humanoid.Died:Connect(cleanup)

    RunService.RenderStepped:Connect(function()
        if not settings.ESP then
            highlight.Enabled = false
            box.Visible = false
            nameLabel.Visible = false
            distanceLabel.Visible = false
            healthLabel.Visible = false
            return
        end

        if humanoid.Health <= 0 then 
            highlight.Enabled = false
            box.Visible = false
            nameLabel.Visible = false
            distanceLabel.Visible = false
            healthLabel.Visible = false
            return 
        end
        
        local dist = (lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") and (lp.Character.HumanoidRootPart.Position - hrp.Position).Magnitude) or 0
        if dist > settings.ESPDistanceValue then 
            highlight.Enabled = false
            box.Visible = false
            nameLabel.Visible = false
            distanceLabel.Visible = false
            healthLabel.Visible = false
            return 
        end
        
        local onscreen, visible = false, false
        local pos

        if hrp and head then
            pos, onscreen = camera:WorldToViewportPoint(hrp.Position)

            local origin = camera.CFrame.Position
            local direction = (head.Position - origin)
            local raycastParams = RaycastParams.new()
            raycastParams.FilterDescendantsInstances = {lp.Character}
            raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
            raycastParams.IgnoreWater = true

            local result = workspace:Raycast(origin, direction.Unit * direction.Magnitude, raycastParams)
            visible = result and (result.Instance:IsDescendantOf(head.Parent))
        end

        local col = visible and visibleColor or baseColor

        highlight.Enabled = true
        highlight.FillColor = col
        box.Color = col
        nameLabel.Color = col
        distanceLabel.Color = col
        healthLabel.Color = col

        if onscreen then
            -- Simple box calculation
            local size = 3
            local topLeft = camera:WorldToViewportPoint(hrp.Position + Vector3.new(-size, size * 1.5, 0))
            local bottomRight = camera:WorldToViewportPoint(hrp.Position + Vector3.new(size, -size, 0))

            box.Position = Vector2.new(topLeft.X, topLeft.Y)
            box.Size = Vector2.new(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y)
            box.Visible = settings.ESPBoxes

            nameLabel.Position = Vector2.new(pos.X, pos.Y - 20)
            nameLabel.Visible = settings.ESPNames

            distanceLabel.Position = Vector2.new(pos.X, pos.Y + 25)
            distanceLabel.Text = string.format("%.1fm", dist)
            distanceLabel.Visible = settings.ESPDistance

            healthLabel.Position = Vector2.new(pos.X, pos.Y + 40)
            healthLabel.Text = string.format("HP: %d", humanoid.Health)
            healthLabel.Visible = settings.ESPHealth
        else
            highlight.Enabled = false
            box.Visible = false
            nameLabel.Visible = false
            distanceLabel.Visible = false
            healthLabel.Visible = false
        end
    end)
end

-- Setup ESP for existing players
for _, model in ipairs(workspace:GetDescendants()) do
    if model:IsA("Model") and not processedModels[model] and model ~= lp.Character then
        if model:FindFirstChildOfClass("Humanoid") then
            setupESP(model)
        end
    end
end

workspace.DescendantAdded:Connect(function(desc)
    local model = desc:FindFirstAncestorOfClass("Model")
    if model and not processedModels[model] and model ~= lp.Character and model:FindFirstChildOfClass("Humanoid") then
        task.delay(0.1, function()
            setupESP(model)
        end)
    end
end)

local function onPlayer(player)
    local function onCharacterAdded(character)
        task.delay(0.2, function()
            if character and character:FindFirstChildOfClass("Humanoid") then
                setupESP(character)
            end
        end)
    end

    if player.Character then
        onCharacterAdded(player.Character)
    end

    player.CharacterAdded:Connect(onCharacterAdded)
end

for _, p in ipairs(Players:GetPlayers()) do
    if p ~= lp then
        onPlayer(p)
    end
end
Players.PlayerAdded:Connect(onPlayer)

Features & Information

ESP Features: Player Highlights ESP Boxes Player Names Distance Display Health Display Distance Limit configurable range (100-2000 studs) Aimbot Features: Aimbot FOV Circle - aimbot FOV Control - Adjustable aimbot range (50-300 pixels) Smoothness Control - Adjustable aim smoothness (0-20, 0 = instant snap) Target Priority - Automatically targets the closest player within FOV Visual Enhancements: Fullbright - Removes darkness and shadows from the game FOV Adjustment - Changes camera field of view (50-120 degrees) FOV Circle - Visual indicator for aimbot range UI Features: Modern Dark Interface - Sleek dark theme with cyan accents Tabbed Interface - Organized into ESP, Aimbot, Rage, Visuals, and Misc tabs Draggable Window - Can be moved around the screen Minimize/Close - Can minimize to title bar or close completely K Key Toggle - Press K to hide/show the UI Real-time Controls - Toggles and sliders that work instantly Rage Tab (UI Only): Rage Mode Toggle - Currently just a UI element (no functionality) Wallbang Toggle - Currently just a UI element (no functionality) Silent Aim Toggle - Currently just a UI element (no functionality) Auto Shoot Toggle - Currently just a UI element (no functionality) gonna add later cuz i am a lazy fuck Misc Features: AntiAFK - Prevents being kicked for inactivity (toggle in UI) How to Use: ESP: Enable in ESP tab, shows player info through walls Aimbot: Enable in Aimbot tab, hold right mouse button to aim Visuals: Adjust FOV and enable fullbright in Visuals tab UI: Press K to toggle visibility, drag title bar to move

Community Comments (5)

i need help testing this script on Project detla, and other games with weak anti-cheat

this script is very detectable so use at ur own risk

ZigmuhRag3B41trZigmuhRag3B41trJun 20, 2025

Thank you ChatGPT

its not chatgpt cant make scripts over 500 lines long

at least working scripts that are 500 lines long

More Scripts for Universal Scripts