local fov, RunService, UserInputService, Players, Cam, CoreGui, isAimbotActive,
dragging, dragInput, dragStart, startPos, toggleButton = 100,
game:GetService("RunService"), game:GetService("UserInputService"),
game:GetService("Players"), game.Workspace.CurrentCamera,
game:FindService("CoreGui"), false, false, nil, nil, nil,
Instance.new("TextButton")
local FOVring, playerNameText = Drawing.new("Circle"), Drawing.new("Text")
FOVring.Visible, FOVring.Thickness, FOVring.Color, FOVring.Filled, FOVring.Radius,
FOVring.Position = true, 2, Color3.fromRGB(128, 0, 128), false, fov,
Cam.ViewportSize / 2
playerNameText.Visible, playerNameText.Center, playerNameText.Outline,
playerNameText.Color, playerNameText.Size, playerNameText.Position = false, true,
true, Color3.fromRGB(255, 255, 255), 18, Vector2.new(FOVring.Position.X,
FOVring.Position.Y - FOVring.Radius - 20)
local function updateDrawings()
FOVring.Position, playerNameText.Position = Cam.ViewportSize / 2,
Vector2.new(FOVring.Position.X, FOVring.Position.Y - FOVring.Radius - 20)
end
local function onKeyDown(input)
if input.KeyCode == Enum.KeyCode.Delete then
RunService:UnbindFromRenderStep("FOVUpdate")
FOVring:Remove()
playerNameText:Remove()
elseif input.KeyCode == Enum.KeyCode.F5 then
toggleButton.Visible = not toggleButton.Visible
end
end
UserInputService.InputBegan:Connect(onKeyDown)
local function lookAt(target)
Cam.CFrame = CFrame.new(Cam.CFrame.Position, Cam.CFrame.Position + (target -
Cam.CFrame.Position).unit)
end
local function getClosestPlayerInFOV(trg_part)
local nearest, last = nil, math.huge
for _, player in ipairs(Players:GetPlayers()) do
if player ~= Players.LocalPlayer and player.Team ~=
Players.LocalPlayer.Team then
local part = player.Character and
player.Character:FindFirstChild(trg_part)
if part then
local ePos, isVisible = Cam:WorldToViewportPoint(part.Position)
if (Vector2.new(ePos.x, ePos.y) - Cam.ViewportSize / 2).Magnitude <
last and isVisible and ePos.Z < fov and not workspace:Raycast(Cam.CFrame.Position,
part.Position - Cam.CFrame.Position) then
last, nearest = (Vector2.new(ePos.x, ePos.y) - Cam.ViewportSize
/ 2).Magnitude, player
end
end
end
end
return nearest
end
local player, screenGui = Players.LocalPlayer, Instance.new("ScreenGui")
screenGui.Name, screenGui.Parent = "AimbotGui", player:WaitForChild("PlayerGui")
toggleButton.Name, toggleButton.Size, toggleButton.Position, toggleButton.Text,
toggleButton.BackgroundTransparency, toggleButton.TextColor3, toggleButton.Parent =
"ToggleButton", UDim2.new(0, 150, 0, 50), UDim2.new(0.1, 0, 0.1, 0), "ON", 1,
Color3.fromRGB(0, 255, 0), screenGui
local function toggleAimbot()
isAimbotActive = not isAimbotActive
toggleButton.Text, toggleButton.TextColor3, FOVring.Visible,
playerNameText.Visible = isAimbotActive and "OFF" or "ON", Color3.fromRGB(0, 255,
0), isAimbotActive, isAimbotActive
end
local function updateInput(input)
local delta = input.Position - dragStart
toggleButton.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset +
delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
local function onDragStart(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging, dragStart, startPos = true, input.Position, toggleButton.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end
local function onDrag(input)
if dragging then
updateInput(input)
end
end
UserInputService.InputBegan:Connect(onDragStart)
UserInputService.InputChanged:Connect(onDrag)
toggleButton.MouseButton1Click:Connect(toggleAimbot)
local closeButton = Instance.new("TextButton")
closeButton.Name, closeButton.Size, closeButton.Position, closeButton.Text,
closeButton.TextColor3, closeButton.BackgroundTransparency, closeButton.Parent =
"CloseButton", UDim2.new(0, 30, 0, 30), UDim2.new(0, toggleButton.Size.X.Offset -
15, 0, -15), "X", Color3.fromRGB(255, 255, 255), 1, toggleButton
local function closeToggleButton()
toggleButton.Visible, FOVring, playerNameText = false, FOVring:Remove(),
playerNameText:Remove()
end
closeButton.MouseButton1Click:Connect(closeToggleButton)
RunService.RenderStepped:Connect(function()
if isAimbotActive then
updateDrawings()
local closest = getClosestPlayerInFOV("Head")
if closest and closest.Character:FindFirstChild("Head") then
lookAt(closest.Character.Head.Position)
playerNameText.Text, playerNameText.Visible = closest.Name, true
else
playerNameText.Visible = false
end
end
end)