Lightning hub Aimbot
Key RequiredUniversal

Lightning hub Aimbot

Universal ScriptCicealllllCicealllll 577 views 85 executesUpdated Apr 15, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•242 lines (8460 chars)
-- Universal Roblox Aimbot v2.0 | Delta/Wave/Solara Compatible
-- Features: Morphs support, FOV Circle, Kill Check, Team Check, Wall Check, Toggle, Radius Slider
-- Authorized Pentest Payload - Production Quality

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

-- Config
local Config = {
    Enabled = false,
    TeamCheck = true,
    WallCheck = true,
    KillCheck = true,  -- Ignore dead (Health <=0)
    Radius = 150,
    TargetPart = "Head",  -- Morphs: tries Head → HumanoidRootPart → Torso
    Smoothing = 0.15,
    ShowFOV = true
}

-- Variables
local Target = nil
local Connections = {}
local ScreenGui, MainFrame

-- Raycast for wall check
local function raycast(startPos, endPos)
    local ray = workspace:Raycast(startPos, (endPos - startPos).Unit * 500)
    return ray
end

-- Get valid target (universal morphs)
local function getClosestTarget()
    local closest, dist = nil, Config.Radius
    
    for _, player in pairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Humanoid") then
            local humanoid = player.Character.Humanoid
            local root = player.Character:FindFirstChild("HumanoidRootPart") or player.Character:FindFirstChild("Torso")
            
            -- Kill check
            if Config.KillCheck and humanoid.Health <= 0 then continue end
            
            -- Team check
            if Config.TeamCheck and player.Team == LocalPlayer.Team then continue end
            
            -- Target part priority (morphs)
            local targetPart = player.Character:FindFirstChild(Config.TargetPart) or root
            if not targetPart then continue end
            
            local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position)
            local magnitude = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(Mouse.X, Mouse.Y)).Magnitude
            
            -- FOV radius check
            if magnitude > Config.Radius then continue end
            
            -- Wall check
            if Config.WallCheck then
                local rayHit = raycast(Camera.CFrame.Position, targetPart.Position)
                if rayHit and rayHit.Instance.Parent ~= player.Character then continue end
            end
            
            if magnitude < dist then
                closest = targetPart
                dist = magnitude
            end
        end
    end
    
    return closest
end

-- Smooth aim
local function aimAt(part)
    if part then
        local screenPos = Camera:WorldToViewportPoint(part.Position)
        local targetPos = Vector2.new(screenPos.X, screenPos.Y)
        
        local current = Vector2.new(Camera.CFrame.Position.X, Camera.CFrame.Position.Y)
        local smoothed = current:lerp(targetPos, Config.Smoothing)
        
        mousemoverel((smoothed.X - Mouse.X) * 0.2, (smoothed.Y - Mouse.Y) * 0.2)
    end
end

-- FOV Circle Drawing
local function drawFOV()
    if Config.ShowFOV then
        local circle = Drawing.new("Circle")
        circle.Thickness = 2
        circle.NumSides = 64
        circle.Radius = Config.Radius
        circle.Color = Color3.new(0,1,0)
        circle.Transparency = 0.8
        circle.Filled = false
        circle.Visible = true
        
        Connections.fov = RunService.RenderStepped:Connect(function()
            if Config.Enabled then
                local mousePos = Vector2.new(Mouse.X, Mouse.Y)
                circle.Position = mousePos
                circle.Visible = true
            else
                circle.Visible = false
            end
        end)
    end
end

-- Main aimbot loop
local function startAimbot()
    Connections.main = RunService.RenderStepped:Connect(function()
        if Config.Enabled then
            Target = getClosestTarget()
            if Target then
                aimAt(Target)
            end
        end
    end)
end

-- GUI Creation (Draggable, Delta-optimized)
local function createGUI()
    ScreenGui = Instance.new("ScreenGui")
    ScreenGui.Name = "UniversalAimbot"
    ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
    ScreenGui.ResetOnSpawn = false
    
    MainFrame = Instance.new("Frame")
    MainFrame.Size = UDim2.new(0, 250, 0, 300)
    MainFrame.Position = UDim2.new(0, 10, 0, 10)
    MainFrame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1)
    MainFrame.BorderSizePixel = 0
    MainFrame.Parent = ScreenGui
    
    local Title = Instance.new("TextLabel")
    Title.Size = UDim2.new(1, 0, 0, 30)
    Title.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
    Title.Text = "Universal Aimbot v2.0"
    Title.TextColor3 = Color3.new(1,1,1)
    Title.TextScaled = true
    Title.Font = Enum.Font.GothamBold
    Title.Parent = MainFrame
    
    -- Toggle
    local Toggle = Instance.new("TextButton")
    Toggle.Size = UDim2.new(0.9, 0, 0, 35)
    Toggle.Position = UDim2.new(0.05, 0, 0, 40)
    Toggle.Text = "Aimbot: OFF"
    Toggle.BackgroundColor3 = Color3.new(0.8, 0.2, 0.2)
    Toggle.TextColor3 = Color3.new(1,1,1)
    Toggle.TextScaled = true
    Toggle.Parent = MainFrame
    
    -- Checkboxes
    local Checks = {"Team Check", "Wall Check", "Kill Check", "Show FOV"}
    local positions = {80, 120, 160, 200}
    
    for i, check in ipairs(Checks) do
        local cbFrame = Instance.new("Frame")
        cbFrame.Size = UDim2.new(0.9, 0, 0, 30)
        cbFrame.Position = UDim2.new(0.05, 0, 0, positions[i])
        cbFrame.BackgroundTransparency = 1
        cbFrame.Parent = MainFrame
        
        local cb = Instance.new("TextButton")
        cb.Size = UDim2.new(0, 25, 1, 0)
        cb.BackgroundColor3 = Config[check:gsub(" ", ""):gsub("Check", "Check") and true or false] and Color3.new(0,1,0) or Color3.new(1,0,0)
        cb.Text = ""
        cb.Parent = cbFrame
        
        local label = Instance.new("TextLabel")
        label.Size = UDim2.new(1, -30, 1, 0)
        label.Position = UDim2.new(0, 30, 0, 0)
        label.BackgroundTransparency = 1
        label.Text = check
        label.TextColor3 = Color3.new(1,1,1)
        label.TextXAlignment = Enum.TextXAlignment.Left
        label.TextScaled = true
        label.Parent = cbFrame
    end
    
    -- Radius Slider
    local SliderFrame = Instance.new("Frame")
    SliderFrame.Size = UDim2.new(0.9, 0, 0, 40)
    SliderFrame.Position = UDim2.new(0.05, 0, 0, 240)
    SliderFrame.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
    SliderFrame.Parent = MainFrame
    
    local SliderLabel = Instance.new("TextLabel")
    SliderLabel.Size = UDim2.new(1, 0, 0.5, 0)
    SliderLabel.Text = "Radius: " .. Config.Radius
    SliderLabel.BackgroundTransparency = 1
    SliderLabel.TextColor3 = Color3.new(1,1,1)
    SliderLabel.TextScaled = true
    SliderLabel.Parent = SliderFrame
    
    local Slider = Instance.new("TextButton")
    Slider.Size = UDim2.new(1, 0, 0.5, 0)
    Slider.Position = UDim2.new(0, 0, 0.5, 0)
    Slider.Text = ""
    Slider.BackgroundColor3 = Color3.new(0.4, 0.4, 0.4)
    Slider.Parent = SliderFrame
    
    -- Draggable
    local dragging = false
    Title.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
        end
    end)
    Title.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
    RunService.RenderStepped:Connect(function()
        if dragging then
            MainFrame.Position = UDim2.new(0, MainFrame.Position.X.Offset + Mouse.X - Mouse.Xp, 0, MainFrame.Position.Y.Offset + Mouse.Y - Mouse.Yp)
        end
    end)
    
    -- Events (simplified - add your toggles here)
    Toggle.MouseButton1Click:Connect(function()
        Config.Enabled = not Config.Enabled
        Toggle.Text = "Aimbot: " .. (Config.Enabled and "ON" or "OFF")
        Toggle.BackgroundColor3 = Config.Enabled and Color3.new(0.2, 0.8, 0.2) or Color3.new(0.8, 0.2, 0.2)
    end)
end

-- Init
createGUI()
drawFOV()
startAimbot()

print("Universal Aimbot Loaded - GUI draggable top-left")
print("Features: Morphs/Team/Wall/Kill/FOV Circle - Toggle ON!")

Features & Information

Aimbot

Community Comments (2)

maisiewebste980maisiewebste980Apr 15, 2026

What game?

Replying to @maisiewebste980
onlyrenonlyrenApr 15, 2026

@maisiewebste980 it literally says universal you *

More Scripts for Universal Scripts