local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Config = { AimbotEnabled = false, SilentAim = false, ESPEnabled = false, TeamCheck = true, NoSpread = false, FOV = 130, Smoothness = 0.15, AimPart = "Head" } local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "FlanutsMenu" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 260, 0, 220) MainFrame.Position = UDim2.new(0.5, -130, 0.5, -110) MainFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 28) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Text = "Arsenal Smol Hub" Title.Size = UDim2.new(1, 0, 0, 30) Title.BackgroundTransparency = 1 Title.Font = Enum.Font.GothamBold Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 18 Title.Parent = MainFrame local Minimize = Instance.new("TextButton") Minimize.Text = "-" Minimize.Size = UDim2.new(0, 30, 0, 30) Minimize.Position = UDim2.new(1, -30, 0, 0) Minimize.BackgroundColor3 = Color3.fromRGB(45, 45, 45) Minimize.TextColor3 = Color3.fromRGB(255, 255, 255) Minimize.Font = Enum.Font.Gotham Minimize.TextSize = 16 Minimize.Parent = MainFrame local ButtonsFrame = Instance.new("Frame") ButtonsFrame.Size = UDim2.new(1, -20, 1, -40) ButtonsFrame.Position = UDim2.new(0, 10, 0, 35) ButtonsFrame.BackgroundTransparency = 1 ButtonsFrame.Parent = MainFrame local function makeToggleButton(text, yPosition, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 30) btn.Position = UDim2.new(0, 0, 0, yPosition) btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.Gotham btn.TextSize = 14 btn.Text = text .. ": OFF" btn.Parent = ButtonsFrame local enabled = false btn.MouseButton1Click:Connect(function() enabled = not enabled callback(enabled) btn.Text = text .. ": " .. (enabled and "ON" or "OFF") end) end makeToggleButton("Aimbot", 0, function(state) Config.AimbotEnabled = state end) makeToggleButton("Silent Aim", 35, function(state) Config.SilentAim = state end) makeToggleButton("ESP", 70, function(state) Config.ESPEnabled = state end) makeToggleButton("No Spread", 105, function(state) Config.NoSpread = state end) local guiVisible = true Minimize.MouseButton1Click:Connect(function() guiVisible = false MainFrame.Visible = false end) UserInputService.InputBegan:Connect(function(input) if input.KeyCode == Enum.KeyCode.RightShift then guiVisible = not guiVisible MainFrame.Visible = guiVisible end end) local FOVCircle = Drawing.new("Circle") FOVCircle.Radius = Config.FOV FOVCircle.Thickness = 2 FOVCircle.Filled = false FOVCircle.Color = Color3.fromRGB(0, 255, 0) FOVCircle.Transparency = 1 FOVCircle.Visible = true local ESPFolder = {} local function UpdateESP() for _, drawing in pairs(ESPFolder) do drawing:Remove() end table.clear(ESPFolder) for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then if not Config.TeamCheck or player.Team ~= LocalPlayer.Team then local tag = Drawing.new("Text") tag.Size = 16 tag.Center = true tag.Outline = true tag.Font = 2 tag.Color = Color3.fromRGB(255, 0, 0) tag.Visible = false ESPFolder[player] = tag end end end end local Holding = false UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then Holding = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then Holding = false end end) local function GetClosestTarget() local mousePos = UserInputService:GetMouseLocation() local closest, closestDist = nil, Config.FOV for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(Config.AimPart) then if not Config.TeamCheck or player.Team ~= LocalPlayer.Team then local part = player.Character[Config.AimPart] local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(mousePos.X, mousePos.Y)).Magnitude if dist <= closestDist then closest = player closestDist = dist end end end end end return closest end RunService.RenderStepped:Connect(function() local mousePos = UserInputService:GetMouseLocation() FOVCircle.Position = Vector2.new(mousePos.X, mousePos.Y) if Config.ESPEnabled then UpdateESP() for player, tag in pairs(ESPFolder) do if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local hrp = player.Character.HumanoidRootPart local screenPos, onScreen = Camera:WorldToViewportPoint(hrp.Position) tag.Position = Vector2.new(screenPos.X, screenPos.Y - 25) tag.Visible = onScreen tag.Text = player.Name else tag.Visible = false end end end if Config.AimbotEnabled and Holding then local target = GetClosestTarget() if target then local part = target.Character and target.Character:FindFirstChild(Config.AimPart) if part then local dir = CFrame.new(Camera.CFrame.Position, part.Position) Camera.CFrame = Camera.CFrame:Lerp(dir, Config.Smoothness) end end end end) UserInputService.InputBegan:Connect(function(input, gpe) if input.UserInputType == Enum.UserInputType.MouseButton1 and Config.SilentAim and not gpe then local mousePos = UserInputService:GetMouseLocation() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild(Config.AimPart) then if not Config.TeamCheck or player.Team ~= LocalPlayer.Team then local part = player.Character[Config.AimPart] local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(mousePos.X, mousePos.Y)).Magnitude if dist <= Config.FOV then print("[Silent Aim] Hit: " .. player.Name) end end end end end end end) if Config.NoSpread then local mt = getrawmetatable(game) local old = mt.__namecall setreadonly(mt, false) mt.__namecall = newcclosure(function(self, ...) local args = {...} local method = getnamecallmethod() if method == "FireServer" and tostring(self):lower():find("shoot") then end return old(self, unpack(args)) end) end --Credits-- --flanut--