Futuretops basic Aimbot
Key Required

Futuretops basic Aimbot

Futuretops: ReworkRichardFlpRichardFlp 315 views 501 executesUpdated Aug 15, 2026
Unrated
00
Lua Script•197 lines (7632 chars)
-- Services
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()

-- Settings
local Settings = {
    Enabled = false,
    FOV = 200,
    Smoothness = 0.3,          -- 0 = instant, 1 = very smooth
    TeamCheck = true,          -- Will only aim at enemies (different team)
    VisibleCheck = true,       -- Will only aim if head is visible (raycast)
}

-- Function to create the UI
local function CreateUI()
    local screenGui = Instance.new("ScreenGui")
    screenGui.Name = "LUBV_AimbotUI"
    screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
    
    local mainFrame = Instance.new("Frame")
    mainFrame.Size = UDim2.new(0, 270, 0, 250)
    mainFrame.Position = UDim2.new(0.5, -135, 0.5, -125)
    mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    mainFrame.BackgroundTransparency = 0.15
    mainFrame.BorderSizePixel = 0
    mainFrame.Active = true
    mainFrame.Draggable = true
    mainFrame.Parent = screenGui
    
    -- Title
    local title = Instance.new("TextLabel")
    title.Size = UDim2.new(1, 0, 0, 30)
    title.BackgroundTransparency = 1
    title.Text = "LUBV Aimbot"
    title.TextColor3 = Color3.fromRGB(255, 255, 255)
    title.TextScaled = true
    title.Font = Enum.Font.GothamBold
    title.Parent = mainFrame
    
    local yOffset = 0.2
    
    -- Toggle button
    local toggleBtn = Instance.new("TextButton")
    toggleBtn.Size = UDim2.new(0.8, 0, 0, 30)
    toggleBtn.Position = UDim2.new(0.1, 0, yOffset, 0)
    toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    toggleBtn.Text = "Aimbot: OFF"
    toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
    toggleBtn.Font = Enum.Font.Gotham
    toggleBtn.Parent = mainFrame
    toggleBtn.MouseButton1Click:Connect(function()
        Settings.Enabled = not Settings.Enabled
        toggleBtn.Text = "Aimbot: " .. (Settings.Enabled and "ON" or "OFF")
        toggleBtn.BackgroundColor3 = Settings.Enabled and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(60, 60, 60)
    end)
    
    yOffset = yOffset + 0.15
    
    -- FOV Slider
    local fovLabel = Instance.new("TextLabel")
    fovLabel.Size = UDim2.new(0.4, 0, 0, 20)
    fovLabel.Position = UDim2.new(0.05, 0, yOffset, 0)
    fovLabel.BackgroundTransparency = 1
    fovLabel.Text = "FOV: 200"
    fovLabel.TextColor3 = Color3.fromRGB(255,255,255)
    fovLabel.Font = Enum.Font.Gotham
    fovLabel.TextScaled = true
    fovLabel.Parent = mainFrame
    
    local fovSlider = Instance.new("TextButton")
    fovSlider.Size = UDim2.new(0.5, 0, 0, 20)
    fovSlider.Position = UDim2.new(0.45, 0, yOffset, 0)
    fovSlider.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
    fovSlider.Text = ""
    fovSlider.Parent = mainFrame
    
    local dragging = false
    fovSlider.MouseButton1Down:Connect(function() dragging = true end)
    UserInputService.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
    RunService.RenderStepped:Connect(function()
        if dragging then
            local mousePos = UserInputService:GetMouseLocation()
            local framePos = fovSlider.AbsolutePosition
            local frameSize = fovSlider.AbsoluteSize
            local newX = math.clamp(mousePos.X - framePos.X, 0, frameSize.X)
            local percent = newX / frameSize.X
            Settings.FOV = math.floor(percent * 400 + 50) -- range 50-450
            fovLabel.Text = "FOV: " .. Settings.FOV
        end
    end)
    
    yOffset = yOffset + 0.15
    
    -- Team Check checkbox (text button as checkbox)
    local teamCheckBtn = Instance.new("TextButton")
    teamCheckBtn.Size = UDim2.new(0.4, 0, 0, 25)
    teamCheckBtn.Position = UDim2.new(0.05, 0, yOffset, 0)
    teamCheckBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    teamCheckBtn.Text = "Team: ON"
    teamCheckBtn.TextColor3 = Color3.fromRGB(255,255,255)
    teamCheckBtn.Font = Enum.Font.Gotham
    teamCheckBtn.Parent = mainFrame
    teamCheckBtn.MouseButton1Click:Connect(function()
        Settings.TeamCheck = not Settings.TeamCheck
        teamCheckBtn.Text = "Team: " .. (Settings.TeamCheck and "ON" or "OFF")
        teamCheckBtn.BackgroundColor3 = Settings.TeamCheck and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(60, 60, 60)
    end)
    
    -- Visible Check checkbox
    local visCheckBtn = Instance.new("TextButton")
    visCheckBtn.Size = UDim2.new(0.4, 0, 0, 25)
    visCheckBtn.Position = UDim2.new(0.55, 0, yOffset, 0)
    visCheckBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    visCheckBtn.Text = "Visible: ON"
    visCheckBtn.TextColor3 = Color3.fromRGB(255,255,255)
    visCheckBtn.Font = Enum.Font.Gotham
    visCheckBtn.Parent = mainFrame
    visCheckBtn.MouseButton1Click:Connect(function()
        Settings.VisibleCheck = not Settings.VisibleCheck
        visCheckBtn.Text = "Visible: " .. (Settings.VisibleCheck and "ON" or "OFF")
        visCheckBtn.BackgroundColor3 = Settings.VisibleCheck and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(60, 60, 60)
    end)
end

-- Aimbot core: get closest enemy player
local function GetClosestPlayer()
    local closest = nil
    local shortestDist = math.huge
    local center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)
    
    for _, player in ipairs(Players:GetPlayers()) do
        if player == LocalPlayer then continue end
        if not player.Character then continue end
        local humanoid = player.Character:FindFirstChild("Humanoid")
        if not humanoid or humanoid.Health <= 0 then continue end
        
        -- Team check: if enabled, skip same team (i.e., only aim at enemies)
        if Settings.TeamCheck and player.Team == LocalPlayer.Team then
            continue
        end
        
        local head = player.Character:FindFirstChild("Head")
        if not head then continue end
        
        local headPos, onScreen = Camera:WorldToScreenPoint(head.Position)
        if not onScreen then continue end
        
        -- Visibility check: raycast from camera to head
        if Settings.VisibleCheck then
            local rayOrigin = Camera.CFrame.Position
            local direction = (head.Position - rayOrigin).Unit * 1000
            local ray = Ray.new(rayOrigin, direction)
            local part, hitPos = workspace:FindPartOnRay(ray, LocalPlayer.Character)
            if part and not part:IsDescendantOf(player.Character) then
                -- obstructed by something else
                continue
            end
        end
        
        local screenPos = Vector2.new(headPos.X, headPos.Y)
        local dist = (screenPos - center).Magnitude
        if dist < Settings.FOV and dist < shortestDist then
            shortestDist = dist
            closest = player
        end
    end
    return closest
end

-- Main aimbot loop
RunService.RenderStepped:Connect(function()
    if not Settings.Enabled then return end
    
    local target = GetClosestPlayer()
    if not target then return end
    
    local head = target.Character.Head
    local headPos = head.Position
    local currentCF = Camera.CFrame
    local targetCF = CFrame.lookAt(currentCF.Position, headPos)
    -- Smooth interpolation
    local newCF = currentCF:Lerp(targetCF, Settings.Smoothness)
    Camera.CFrame = newCF
end)

-- Create UI
CreateUI()

print("LUBV Aimbot loaded with team filtering. It will only target enemies (different team). Use UI to toggle.")

Features & Information

Basic Open Source Aimbot for Futuretops
#aimbot

Community Comments (0)

No comments yet for this script.

More Scripts for Futuretops: Rework