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() -- Inicializa opções globais com valores padrão getgenv().Options = getgenv().Options or {} getgenv().Options.Aimbot = getgenv().Options.Aimbot or false getgenv().Options.TeamCheck = getgenv().Options.TeamCheck or false getgenv().Options.WallCheck = getgenv().Options.WallCheck or false getgenv().Options.ShowFOV = getgenv().Options.ShowFOV or false getgenv().Options.FOV = getgenv().Options.FOV or 150 getgenv().Options.Smoothness = getgenv().Options.Smoothness or 0.1 getgenv().Options.AimPart = getgenv().Options.AimPart or "Head" -- ESP CONFIG getgenv().ESPEnabled = getgenv().ESPEnabled or { Name = false, Health = false, Box = false, Tracer = false, Distance = false } getgenv().ESPColors = getgenv().ESPColors or { Name = Color3.fromRGB(0, 255, 255), Health = Color3.fromRGB(0, 255, 0), Box = Color3.fromRGB(0, 255, 255), Tracer = Color3.fromRGB(0, 255, 255), Distance = Color3.fromRGB(255, 255, 255) } getgenv().ShowTeamESP = getgenv().ShowTeamESP or false -- Círculo do FOV local FOVCircle = Drawing.new("Circle") FOVCircle.Color = Color3.new(1, 1, 1) FOVCircle.Thickness = 1 FOVCircle.Radius = getgenv().Options.FOV FOVCircle.Filled = false FOVCircle.Transparency = 1 FOVCircle.NumSides = 150 FOVCircle.Visible = false RunService.RenderStepped:Connect(function() FOVCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) FOVCircle.Radius = getgenv().Options.FOV FOVCircle.Visible = getgenv().Options.Aimbot and getgenv().Options.ShowFOV end) -- Função para verificar se o alvo está visível (sem parede na frente) local function isVisible(targetPart) local origin = Camera.CFrame.Position local direction = (targetPart.Position - origin) local ray = Ray.new(origin, direction) local hitPart = workspace:FindPartOnRayWithIgnoreList(ray, {LocalPlayer.Character}, false, true) return hitPart == nil or hitPart:IsDescendantOf(targetPart.Parent) end -- Função para encontrar inimigo mais próximo dentro do FOV e visível local function getClosestEnemy() local closest = nil local shortestDist = getgenv().Options.FOV for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(getgenv().Options.AimPart) then if getgenv().Options.TeamCheck and player.Team == LocalPlayer.Team then continue end local partPos = player.Character[getgenv().Options.AimPart].Position local screenPos, onScreen = Camera:WorldToViewportPoint(partPos) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)).Magnitude if dist <= shortestDist then if getgenv().Options.WallCheck then if isVisible(player.Character[getgenv().Options.AimPart]) then closest = player shortestDist = dist end else closest = player shortestDist = dist end end end end end return closest end -- Aimbot loop RunService.RenderStepped:Connect(function() if getgenv().Options.Aimbot then local target = getClosestEnemy() if target and target.Character and target.Character:FindFirstChild(getgenv().Options.AimPart) then local targetPos = target.Character[getgenv().Options.AimPart].Position local currentCF = Camera.CFrame local direction = (targetPos - currentCF.Position).Unit local newCF = CFrame.new(currentCF.Position, currentCF.Position + direction) Camera.CFrame = currentCF:Lerp(newCF, getgenv().Options.Smoothness) end end end) -- WindUI local WindUI = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))() local Window = WindUI:CreateWindow({ Title = "Arsenal", Icon = "check", Author = "By Elton", Folder = "EltonsHub", Size = UDim2.fromOffset(580, 460), Transparent = true, Theme = "Dark", Resizable = true, SideBarWidth = 200, Background = "rbxassetid://116498441103707", BackgroundImageTransparency = 0.95, HideSearchBar = true, ScrollBarEnabled = true, User = { Enabled = true, Anonymous = false, }, }) local TabMain = Window:Tab({ Title = "Main", Icon = "house", Locked = false}) local TabGun = Window:Tab({ Title = "Guns", Icon = "crosshair", Locked = false}) local TabEsp = Window:Tab({ Title = "ESP", Icon = "eye", Locked = false}) local TabEspcolor = Window:Tab({ Title = "ESP Color", Icon = "palette", Locked = false}) -- ESP local ESPObjects = {} local NAME_SIZE, HEALTH_SIZE, DIST_SIZE = 16, 14, 14 local BOX_THICKNESS, TRACER_THICKNESS = 2, 2 TabEsp:Toggle({ Title = "Show Team ESP", Default = getgenv().ShowTeamESP, Callback = function(val) getgenv().ShowTeamESP = val end }) for name, _ in pairs(getgenv().ESPEnabled) do TabEsp:Toggle({ Title = name .. " ESP", Default = getgenv().ESPEnabled[name], Callback = function(val) getgenv().ESPEnabled[name] = val end }) end for name, _ in pairs(getgenv().ESPColors) do TabEspcolor:Colorpicker({ Title = name .. " Color", Default = getgenv().ESPColors[name], Callback = function(color) getgenv().ESPColors[name] = color end }) end local function CreatePlayerESP(player) if ESPObjects[player] then return end ESPObjects[player] = { Name = Drawing.new("Text"), Health = Drawing.new("Text"), Distance = Drawing.new("Text"), Box = Drawing.new("Square"), Tracer = Drawing.new("Line") } local esp = ESPObjects[player] for _, text in ipairs({esp.Name, esp.Health, esp.Distance}) do text.Center = true text.Outline = true text.Font = 2 text.OutlineColor = Color3.new(0, 0, 0) end esp.Name.Size = NAME_SIZE esp.Health.Size = HEALTH_SIZE esp.Distance.Size = DIST_SIZE esp.Box.Thickness = BOX_THICKNESS esp.Box.Transparency = 0.8 esp.Box.Filled = false esp.Tracer.Thickness = TRACER_THICKNESS esp.Tracer.Transparency = 0.8 end local function RemovePlayerESP(player) if ESPObjects[player] then for _, obj in pairs(ESPObjects[player]) do obj:Remove() end ESPObjects[player] = nil end end RunService.RenderStepped:Connect(function() for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then if not ESPObjects[player] then CreatePlayerESP(player) end local char = player.Character local esp = ESPObjects[player] local show = getgenv().ShowTeamESP or (player.Team ~= LocalPlayer.Team) if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Head") and char:FindFirstChildOfClass("Humanoid") and show then local hrp, head, hum = char.HumanoidRootPart, char.Head, char:FindFirstChildOfClass("Humanoid") local pos, onScreen = Camera:WorldToViewportPoint(hrp.Position) local headPos = Camera:WorldToViewportPoint(head.Position) local size = math.max(Camera.ViewportSize.Y / pos.Z * 2, 4) esp.Box.Color = getgenv().ESPColors.Box esp.Tracer.Color = getgenv().ESPColors.Tracer esp.Name.Color = getgenv().ESPColors.Name esp.Distance.Color = getgenv().ESPColors.Distance esp.Box.Visible = getgenv().ESPEnabled.Box and onScreen if esp.Box.Visible then esp.Box.Size = Vector2.new(size * 0.8, size * 1.2) esp.Box.Position = Vector2.new(pos.X - size * 0.4, pos.Y - size * 0.6) end esp.Name.Visible = getgenv().ESPEnabled.Name and onScreen if esp.Name.Visible then esp.Name.Text = player.Name esp.Name.Position = Vector2.new(headPos.X, headPos.Y - 30) end esp.Health.Visible = getgenv().ESPEnabled.Health and onScreen if esp.Health.Visible then local hp = math.floor((hum.Health / hum.MaxHealth) * 100) esp.Health.Text = hp .. "%" esp.Health.Color = Color3.fromRGB(255 - hp * 2.55, hp * 2.55, 0) esp.Health.Position = Vector2.new(headPos.X, headPos.Y - 50) end esp.Distance.Visible = getgenv().ESPEnabled.Distance and onScreen if esp.Distance.Visible then local dist = (LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")) and (LocalPlayer.Character.HumanoidRootPart.Position - hrp.Position).Magnitude or 0 esp.Distance.Text = string.format("%.0f studs", dist) esp.Distance.Position = Vector2.new(headPos.X + esp.Name.TextBounds.X / 2 + esp.Distance.TextBounds.X / 2 + 5, headPos.Y - 30) end esp.Tracer.Visible = getgenv().ESPEnabled.Tracer and onScreen if esp.Tracer.Visible then local scr = Camera.ViewportSize esp.Tracer.From = Vector2.new(scr.X / 2, scr.Y) esp.Tracer.To = Vector2.new(pos.X, pos.Y) end else for _, v in pairs(esp) do v.Visible = false end end end end for player, _ in pairs(ESPObjects) do if not Players:FindFirstChild(player.Name) then RemovePlayerESP(player) end end end) Players.PlayerAdded:Connect(CreatePlayerESP) Players.PlayerRemoving:Connect(RemovePlayerESP) -- RESTANTE DO SEU SCRIPT (Aimbot, Guns, etc) ABAIXO -- Toggle Aimbot TabMain:Toggle({ Title = "Aimbot", Icon = "check", Default = getgenv().Options.Aimbot, Callback = function(state) getgenv().Options.Aimbot = state end }) -- Toggle TeamCheck TabMain:Toggle({ Title = "Team Check", Icon = "check", Default = getgenv().Options.TeamCheck, Callback = function(state) getgenv().Options.TeamCheck = state end }) -- Toggle WallCheck TabMain:Toggle({ Title = "WallCheck", Icon = "check", Default = getgenv().Options.WallCheck, Callback = function(state) getgenv().Options.WallCheck = state end }) -- Toggle ShowFOV TabMain:Toggle({ Title = "Show FOV", Icon = "check", Default = getgenv().Options.ShowFOV, Callback = function(state) getgenv().Options.ShowFOV = state end }) local HoldClick = true local Players = game:GetService('Players') local RunService = game:GetService('RunService') local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() local Pressing = false local Toggle = false -- Toggle da Interface TabMain:Toggle({ Title = "Triggerbot", Icon = "check", Type = "Toggle", Default = false, Callback = function(state) Toggle = state print("Triggerbot Ativado: " .. tostring(state)) -- Se desligar enquanto segurando clique, solta imediatamente if not state and Pressing then mouse1release() Pressing = false end end }) -- Loop principal RunService.RenderStepped:Connect(function() if not Toggle then return end local target = Mouse.Target local model = target and target:FindFirstAncestorWhichIsA("Model") local isHumanoid = model and model:FindFirstChild("Humanoid") if isHumanoid then if HoldClick then if not Pressing then mouse1press() Pressing = true end else mouse1press() mouse1release() end else if Pressing then mouse1release() Pressing = false end end end) TabMain:Dropdown({ Title = "AimPart", Values = {"Head", "HumanoidRootPart"}, Value = getgenv().Options.AimPart, Callback = function(option) getgenv().Options.AimPart = option end }) -- Slider FOV TabMain:Slider({ Title = "FOV", Step = 1, Value = { Min = 10, Max = 500, Default = getgenv().Options.FOV, }, Callback = function(value) local numValue = tonumber(value) or 150 getgenv().Options.FOV = numValue FOVCircle.Radius = numValue end }) -- Slider Smoothness TabMain:Slider({ Title = "Smoothness", Step = 0.01, Value = { Min = 0.01, Max = 1, Default = getgenv().Options.Smoothness, }, Callback = function(value) local numValue = tonumber(value) or 0.1 getgenv().Options.Smoothness = numValue end }) -- Guns Tab - Sliders corrigidos TabGun:Slider({ Title = "Ammo", Step = 1, Value = { Min = 20, Max = 999, Default = 70, }, Callback = function(value) local numValue = tonumber(value) or 70 local weaponsFolder = game:GetService("ReplicatedStorage"):WaitForChild("Weapons") for _, weapon in pairs(weaponsFolder:GetChildren()) do if weapon:FindFirstChild("Ammo") and weapon.Ammo:IsA("IntValue") then weapon.Ammo.Value = numValue end end end }) TabGun:Slider({ Title = "FireRate", Step = 1, Value = { Min = 0, Max = 10, Default = 1, }, Callback = function(value) local numValue = tonumber(value) or 1 local weaponsFolder = game:GetService("ReplicatedStorage"):WaitForChild("Weapons") for _, weapon in pairs(weaponsFolder:GetChildren()) do local fireRate = weapon:FindFirstChild("FireRate") if fireRate and (fireRate:IsA("NumberValue") or fireRate:IsA("IntValue")) then fireRate.Value = numValue end end end }) TabGun:Slider({ Title = "Spread", Step = 1, Value = { Min = 0, Max = 10, Default = 1, }, Callback = function(value) local numValue = tonumber(value) or 1 local weaponsFolder = game:GetService("ReplicatedStorage"):WaitForChild("Weapons") for _, weapon in pairs(weaponsFolder:GetChildren()) do local Spread = weapon:FindFirstChild("Spread") if Spread and (Spread:IsA("NumberValue") or Spread:IsA("IntValue")) then Spread.Value = numValue end end end }) TabGun:Slider({ Title = "ReloadTime", Step = 1, Value = { Min = 0, Max = 10, Default = 1, }, Callback = function(value) local numValue = tonumber(value) or 1 local weaponsFolder = game:GetService("ReplicatedStorage"):WaitForChild("Weapons") for _, weapon in pairs(weaponsFolder:GetChildren()) do local ReloadTime = weapon:FindFirstChild("ReloadTime") if ReloadTime and (ReloadTime:IsA("NumberValue") or ReloadTime:IsA("IntValue")) then ReloadTime.Value = numValue end end end }) TabGun:Slider({ Title = "Recoil", Step = 1, Value = { Min = 0, Max = 10, Default = 1, }, Callback = function(value) local numValue = tonumber(value) or 1 local weaponsFolder = game:GetService("ReplicatedStorage"):WaitForChild("Weapons") for _, weapon in pairs(weaponsFolder:GetChildren()) do local RecoilControl = weapon:FindFirstChild("RecoilControl") if RecoilControl and (RecoilControl:IsA("NumberValue") or RecoilControl:IsA("IntValue")) then RecoilControl.Value = numValue end end end }) TabGun:Slider({ Title = "Range", Step = 1, Value = { Min = 1, Max = 5000, Default = 1, }, Callback = function(value) local numValue = tonumber(value) or 1 local weaponsFolder = game:GetService("ReplicatedStorage"):WaitForChild("Weapons") for _, weapon in pairs(weaponsFolder:GetChildren()) do local Range = weapon:FindFirstChild("Range") if Range and (Range:IsA("NumberValue") or Range:IsA("IntValue")) then Range.Value = numValue end end end }) TabGun:Toggle({ Title = "Automatic", Default = false, Type = "Checkbox", Icon = "check", Callback = function(state) local weaponsFolder = game:GetService("ReplicatedStorage"):WaitForChild("Weapons") for _, weapon in pairs(weaponsFolder:GetChildren()) do local auto = weapon:FindFirstChild("Auto") if auto and auto:IsA("BoolValue") then auto.Value = state end end end })