Catnap aimbot
Key RequiredUniversal

Catnap aimbot

Universal ScriptCatnap_hackerCatnap_hacker 83 views 3.5K executesUpdated Aug 4, 2026
Unrated
00
Lua Script•583 lines (17686 chars)
--[[
    ⭐ AIMBOT RAYFIELD - SEM BUGS
    Foco contínuo na pessoa com círculo FOV
    Sistema de travamento persistente
]]

local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

local Window = Rayfield:CreateWindow({
    Name = "⭐ Aimbot Pro",
    LoadingTitle = "Carregando Aimbot...",
    LoadingSubtitle = "Sem Bugs - Foco Contínuo",
    ConfigurationSaving = {
        Enabled = true,
        FolderName = "AimbotProConfig",
        FileName = "AimbotSettings"
    },
    KeySystem = false,
})

-- ═══════════════════════════════════════════════════
-- VARIÁVEIS PRINCIPAIS
-- ═══════════════════════════════════════════════════

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()

-- Estado do Aimbot
local aimbotActive = false
local targetLocked = false
local currentTarget = nil
local fovRadius = 120
local aimPart = "Head"
local smoothness = 0.2
local aimSpeed = 1.0

-- ═══════════════════════════════════════════════════
-- CRIAÇÃO DO CÍRCULO FOV (SEM BUGS)
-- ═══════════════════════════════════════════════════

local function CreateFOVCircle()
    local gui = Instance.new("ScreenGui")
    gui.Name = "FOVCircle"
    gui.ResetOnSpawn = false
    gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
    gui.Parent = LocalPlayer.PlayerGui
    
    -- Container principal
    local container = Instance.new("Frame")
    container.Name = "Container"
    container.Size = UDim2.new(0, fovRadius * 2, 0, fovRadius * 2)
    container.Position = UDim2.new(0.5, -fovRadius, 0.5, -fovRadius)
    container.BackgroundTransparency = 1
    container.ZIndex = 10
    container.Parent = gui
    
    -- Círculo externo (glow)
    local glow = Instance.new("Frame")
    glow.Name = "Glow"
    glow.Size = UDim2.new(1.8, 0, 1.8, 0)
    glow.Position = UDim2.new(-0.4, 0, -0.4, 0)
    glow.BackgroundTransparency = 0.85
    glow.BackgroundColor3 = Color3.fromRGB(0, 200, 255)
    glow.ZIndex = 8
    glow.Parent = container
    
    local glowCorner = Instance.new("UICorner")
    glowCorner.CornerRadius = UDim.new(1, 0)
    glowCorner.Parent = glow
    
    -- Borda do círculo
    local border = Instance.new("Frame")
    border.Name = "Border"
    border.Size = UDim2.new(1, 0, 1, 0)
    border.BackgroundTransparency = 1
    border.BorderSizePixel = 3
    border.BorderColor3 = Color3.fromRGB(0, 255, 255)
    border.ZIndex = 11
    border.Parent = container
    
    -- Pontos cardeais
    local function CreateCardinalDot(posX, posY)
        local dot = Instance.new("Frame")
        dot.Size = UDim2.new(0, 4, 0, 4)
        dot.Position = UDim2.new(posX, -2, posY, -2)
        dot.BackgroundColor3 = Color3.fromRGB(0, 255, 255)
        dot.BackgroundTransparency = 0
        dot.ZIndex = 12
        dot.Parent = container
        
        local dotCorner = Instance.new("UICorner")
        dotCorner.CornerRadius = UDim.new(1, 0)
        dotCorner.Parent = dot
        return dot
    end
    
    CreateCardinalDot(0.5, 0.02)  -- Topo
    CreateCardinalDot(0.5, 0.98)  -- Baixo
    CreateCardinalDot(0.02, 0.5)  -- Esquerda
    CreateCardinalDot(0.98, 0.5)  -- Direita
    
    -- Ponto central (mira)
    local dot = Instance.new("Frame")
    dot.Name = "Dot"
    dot.Size = UDim2.new(0, 8, 0, 8)
    dot.Position = UDim2.new(0.5, -4, 0.5, -4)
    dot.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
    dot.BackgroundTransparency = 0
    dot.ZIndex = 12
    dot.Parent = container
    
    local dotCorner = Instance.new("UICorner")
    dotCorner.CornerRadius = UDim.new(1, 0)
    dotCorner.Parent = dot
    
    -- Anel interno (indicador de travamento)
    local lockRing = Instance.new("Frame")
    lockRing.Name = "LockRing"
    lockRing.Size = UDim2.new(0.5, 0, 0.5, 0)
    lockRing.Position = UDim2.new(0.25, 0, 0.25, 0)
    lockRing.BackgroundTransparency = 1
    lockRing.BorderSizePixel = 2
    lockRing.BorderColor3 = Color3.fromRGB(255, 200, 50)
    lockRing.ZIndex = 9
    lockRing.Visible = false
    lockRing.Parent = container
    
    local lockCorner = Instance.new("UICorner")
    lockCorner.CornerRadius = UDim.new(1, 0)
    lockCorner.Parent = lockRing
    
    return gui, container, lockRing
end

local fovGUI, fovContainer, lockRing = CreateFOVCircle()
fovGUI.Enabled = false

-- ═══════════════════════════════════════════════════
-- UI DE STATUS PROFISSIONAL
-- ═══════════════════════════════════════════════════

local function CreateStatusUI()
    local gui = Instance.new("ScreenGui")
    gui.Name = "StatusUI"
    gui.ResetOnSpawn = false
    gui.Parent = LocalPlayer.PlayerGui
    
    -- Fundo
    local bg = Instance.new("Frame")
    bg.Name = "Background"
    bg.Size = UDim2.new(0, 300, 0, 50)
    bg.Position = UDim2.new(0.5, -150, 0.93, 0)
    bg.BackgroundColor3 = Color3.fromRGB(10, 15, 30)
    bg.BackgroundTransparency = 0.15
    bg.BorderSizePixel = 1
    bg.BorderColor3 = Color3.fromRGB(40, 50, 80)
    bg.ZIndex = 15
    bg.Parent = gui
    
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 12)
    corner.Parent = bg
    
    -- LED
    local led = Instance.new("Frame")
    led.Name = "LED"
    led.Size = UDim2.new(0, 10, 0, 10)
    led.Position = UDim2.new(0.04, 0, 0.5, -5)
    led.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    led.BackgroundTransparency = 0
    led.ZIndex = 16
    led.Parent = bg
    
    local ledCorner = Instance.new("UICorner")
    ledCorner.CornerRadius = UDim.new(1, 0)
    ledCorner.Parent = led
    
    -- Status
    local status = Instance.new("TextLabel")
    status.Name = "Status"
    status.Size = UDim2.new(0.45, 0, 0.5, 0)
    status.Position = UDim2.new(0.12, 0, 0, 0)
    status.BackgroundTransparency = 1
    status.Text = "⏸️ Desativado"
    status.TextColor3 = Color3.fromRGB(200, 210, 230)
    status.TextSize = 13
    status.TextXAlignment = Enum.TextXAlignment.Left
    status.TextYAlignment = Enum.TextYAlignment.Bottom
    status.Font = Enum.Font.GothamSemibold
    status.ZIndex = 16
    status.Parent = bg
    
    -- Alvo
    local target = Instance.new("TextLabel")
    target.Name = "Target"
    target.Size = UDim2.new(0.55, 0, 0.4, 0)
    target.Position = UDim2.new(0.12, 0, 0.5, 0)
    target.BackgroundTransparency = 1
    target.Text = ""
    target.TextColor3 = Color3.fromRGB(255, 200, 50)
    target.TextSize = 11
    target.TextXAlignment = Enum.TextXAlignment.Left
    target.TextYAlignment = Enum.TextYAlignment.Top
    target.Font = Enum.Font.Gotham
    target.ZIndex = 16
    target.Parent = bg
    
    -- Distância
    local dist = Instance.new("TextLabel")
    dist.Name = "Distance"
    dist.Size = UDim2.new(0.35, 0, 0.4, 0)
    dist.Position = UDim2.new(0.65, 0, 0.5, 0)
    dist.BackgroundTransparency = 1
    dist.Text = ""
    dist.TextColor3 = Color3.fromRGB(150, 200, 255)
    dist.TextSize = 11
    dist.TextXAlignment = Enum.TextXAlignment.Right
    dist.TextYAlignment = Enum.TextYAlignment.Top
    dist.Font = Enum.Font.Gotham
    dist.ZIndex = 16
    dist.Parent = bg
    
    return gui, led, status, target, dist
end

local statusGUI, statusLED, statusText, targetText, distText = CreateStatusUI()

-- ═══════════════════════════════════════════════════
-- FUNÇÕES DE ATUALIZAÇÃO
-- ═══════════════════════════════════════════════════

local function UpdateStatus(active, locked, target)
    if active then
        if locked and target then
            statusLED.BackgroundColor3 = Color3.fromRGB(0, 255, 100)
            statusText.Text = "🔒 TRAVADO"
            targetText.Text = target.Name
            lockRing.Visible = true
            fovContainer.Border.BorderColor3 = Color3.fromRGB(255, 200, 50)
            fovContainer.Glow.BackgroundColor3 = Color3.fromRGB(255, 200, 50)
            fovContainer.Glow.BackgroundTransparency = 0.7
        else
            statusLED.BackgroundColor3 = Color3.fromRGB(0, 200, 255)
            statusText.Text = "🎯 Buscando..."
            targetText.Text = ""
            lockRing.Visible = false
            fovContainer.Border.BorderColor3 = Color3.fromRGB(0, 255, 255)
            fovContainer.Glow.BackgroundColor3 = Color3.fromRGB(0, 200, 255)
            fovContainer.Glow.BackgroundTransparency = 0.85
        end
    else
        statusLED.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
        statusText.Text = "⏸️ Desativado"
        targetText.Text = ""
        distText.Text = ""
        lockRing.Visible = false
        fovContainer.Border.BorderColor3 = Color3.fromRGB(0, 255, 255)
        fovContainer.Glow.BackgroundColor3 = Color3.fromRGB(0, 200, 255)
        fovContainer.Glow.BackgroundTransparency = 0.85
    end
end

-- ═══════════════════════════════════════════════════
-- AIMBOT CORE (SEM BUGS)
-- ═══════════════════════════════════════════════════

local function GetBestTarget()
    if not aimbotActive then return nil end
    
    local center = Camera.ViewportSize / 2
    local bestTarget = nil
    local bestDistance = math.huge
    
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(aimPart) then
            local part = player.Character[aimPart]
            local pos, onScreen = Camera:WorldToViewportPoint(part.Position)
            
            if onScreen then
                local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude
                
                if dist <= fovRadius then
                    if dist < bestDistance then
                        bestDistance = dist
                        bestTarget = player
                    end
                end
            end
        end
    end
    
    return bestTarget
end

-- Função principal de aim (sem bugs)
local function AimAtTarget(target)
    if not target or not target.Character then
        targetLocked = false
        currentTarget = nil
        UpdateStatus(aimbotActive, false)
        return false
    end
    
    local part = target.Character:FindFirstChild(aimPart)
    if not part then
        targetLocked = false
        currentTarget = nil
        UpdateStatus(aimbotActive, false)
        return false
    end
    
    local pos, onScreen = Camera:WorldToViewportPoint(part.Position)
    
    if not onScreen then
        targetLocked = false
        currentTarget = nil
        UpdateStatus(aimbotActive, false)
        return false
    end
    
    local center = Camera.ViewportSize / 2
    local targetPos = Vector2.new(pos.X, pos.Y)
    local offset = targetPos - center
    
    -- Verifica se está dentro do FOV
    if offset.Magnitude > fovRadius then
        targetLocked = false
        currentTarget = nil
        UpdateStatus(aimbotActive, false)
        return false
    end
    
    -- Movimento suave do mouse (sem bugs)
    local currentPos = Vector2.new(Mouse.X, Mouse.Y)
    local speedFactor = aimSpeed * 0.5
    local newPos = currentPos + offset * (1 - smoothness) * speedFactor
    
    -- Aplica o movimento
    pcall(function()
        if Mouse and Mouse.Move then
            Mouse.Move(newPos.X, newPos.Y)
        end
    end)
    
    -- Atualiza status
    targetLocked = true
    currentTarget = target
    UpdateStatus(aimbotActive, true, target)
    
    -- Atualiza distância
    local dist = (part.Position - Camera.CFrame.Position).Magnitude
    distText.Text = string.format("📏 %.1fm", dist)
    
    return true
end

-- ═══════════════════════════════════════════════════
-- LOOP PRINCIPAL (OTIMIZADO)
-- ═══════════════════════════════════════════════════

RunService.RenderStepped:Connect(function()
    if not aimbotActive then
        if targetLocked then
            targetLocked = false
            currentTarget = nil
            UpdateStatus(false, false)
        end
        return
    end
    
    -- Se já tem um alvo, tenta manter o foco
    if currentTarget and targetLocked then
        -- Verifica se o alvo ainda é válido
        if currentTarget.Character and currentTarget.Character:FindFirstChild(aimPart) then
            local success = AimAtTarget(currentTarget)
            if not success then
                -- Se falhou, procura um novo alvo
                local newTarget = GetBestTarget()
                if newTarget then
                    AimAtTarget(newTarget)
                else
                    targetLocked = false
                    currentTarget = nil
                    UpdateStatus(aimbotActive, false)
                end
            end
        else
            -- Alvo inválido, procura novo
            local newTarget = GetBestTarget()
            if newTarget then
                AimAtTarget(newTarget)
            else
                targetLocked = false
                currentTarget = nil
                UpdateStatus(aimbotActive, false)
            end
        end
    else
        -- Procura um novo alvo
        local newTarget = GetBestTarget()
        if newTarget then
            AimAtTarget(newTarget)
        else
            if targetLocked then
                targetLocked = false
                currentTarget = nil
                UpdateStatus(aimbotActive, false)
            end
        end
    end
end)

-- ═══════════════════════════════════════════════════
-- INTERFACE RAYFIELD
-- ═══════════════════════════════════════════════════

local MainTab = Window:CreateTab("🎯 Aimbot", 4483362458)

-- Seção Principal
local MainSection = MainTab:CreateSection("⚡ Controles")

-- Toggle Aimbot
MainTab:CreateToggle({
    Name = "🎯 Ativar Aimbot",
    CurrentValue = false,
    Flag = "AimbotToggle",
    Callback = function(Value)
        aimbotActive = Value
        fovGUI.Enabled = Value
        if not Value then
            targetLocked = false
            currentTarget = nil
            UpdateStatus(false, false)
        else
            UpdateStatus(true, false)
        end
    end,
})

-- Slider FOV
MainTab:CreateSlider({
    Name = "🔵 Raio do FOV",
    Min = 40,
    Max = 300,
    Increment = 5,
    CurrentValue = fovRadius,
    Flag = "FOVSlider",
    Callback = function(Value)
        fovRadius = Value
        fovContainer.Size = UDim2.new(0, fovRadius * 2, 0, fovRadius * 2)
        fovContainer.Position = UDim2.new(0.5, -fovRadius, 0.5, -fovRadius)
    end,
})

-- Seção de Ajustes
local AimSection = MainTab:CreateSection("🎯 Ajustes da Mira")

-- Slider Suavidade
MainTab:CreateSlider({
    Name = "🔄 Suavidade",
    Min = 0,
    Max = 0.8,
    Increment = 0.05,
    CurrentValue = smoothness,
    Flag = "SmoothnessSlider",
    Callback = function(Value)
        smoothness = Value
    end,
})

-- Slider Velocidade
MainTab:CreateSlider({
    Name = "🏃 Velocidade da Mira",
    Min = 0.2,
    Max = 2.0,
    Increment = 0.1,
    CurrentValue = aimSpeed,
    Flag = "AimSpeedSlider",
    Callback = function(Value)
        aimSpeed = Value
    end,
})

-- Dropdown Parte do Corpo
MainTab:CreateDropdown({
    Name = "🎯 Parte do Corpo",
    Options = {"Head", "HumanoidRootPart", "Torso", "UpperTorso"},
    CurrentOption = "Head",
    Flag = "BodyPartDropdown",
    Callback = function(Option)
        aimPart = Option
        targetLocked = false
        currentTarget = nil
        if aimbotActive then
            UpdateStatus(true, false)
        end
    end,
})

-- Seção de Informações
local InfoSection = MainTab:CreateSection("📊 Informações")

-- Textbox Status
MainTab:CreateInput({
    Name = "📝 Status do Sistema",
    PlaceholderText = "Aguardando...",
    RemoveTextAfterFocus = false,
    Flag = "StatusInput",
    Callback = function(Text)
        print("Status:", Text)
    end,
})

-- Botões
MainTab:CreateButton({
    Name = "🔄 Resetar Alvo",
    Callback = function()
        targetLocked = false
        currentTarget = nil
        UpdateStatus(aimbotActive, false)
    end,
})

-- Keybinds
MainTab:CreateKeybind({
    Name = "⌨️ Atalho Aimbot",
    CurrentKeybind = "F",
    HoldToInteract = false,
    Flag = "AimbotKeybind",
    Callback = function()
        aimbotActive = not aimbotActive
        fovGUI.Enabled = aimbotActive
        if not aimbotActive then
            targetLocked = false
            currentTarget = nil
            UpdateStatus(false, false)
        else
            UpdateStatus(true, false)
        end
    end,
})

-- ═══════════════════════════════════════════════════
-- ATUALIZAÇÃO EM TEMPO REAL
-- ═══════════════════════════════════════════════════

RunService.Heartbeat:Connect(function()
    local statusInput = Rayfield:GetInput("StatusInput")
    if statusInput then
        if aimbotActive and currentTarget then
            local dist = 0
            if currentTarget.Character and currentTarget.Character:FindFirstChild(aimPart) then
                local part = currentTarget.Character[aimPart]
                dist = (part.Position - Camera.CFrame.Position).Magnitude
            end
            statusInput:SetText(string.format(
                "🎯 %s | 📏 %.1fm | 🎯 %s",
                currentTarget.Name,
                dist,
                aimPart
            ))
        elseif aimbotActive then
            statusInput:SetText("🔍 Procurando alvo...")
        else
            statusInput:SetText("⏸️ Sistema desativado")
        end
    end
end)

-- ═══════════════════════════════════════════════════
-- INICIALIZAÇÃO
-- ═══════════════════════════════════════════════════

print("✅ Aimbot Pro carregado com sucesso!")
print("🎯 Foco contínuo na pessoa com círculo FOV")
print("📌 Tecla F para ativar/desativar")
print("🔒 Sistema de travamento persistente")

UpdateStatus(false, false)

Features & Information

Esse script funcionando em jogos de arma
#Oi

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts