-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] if getgenv()._arsenal_loaded then return end getgenv()._arsenal_loaded = true local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer getgenv().Aimbot = getgenv().Aimbot or false getgenv().TeamCheck = getgenv().TeamCheck or true getgenv().ESP = getgenv().ESP or false getgenv().AimFOV = getgenv().AimFOV or 180 getgenv().AimSmooth = getgenv().AimSmooth or 4 getgenv().AimKey = getgenv().AimKey or Enum.UserInputType.MouseButton2 local ENEMY = Color3.fromRGB(239, 68, 68) local FRIEND = Color3.fromRGB(80, 200, 120) local ACCENT = Color3.fromRGB(124, 58, 237) local function isEnemy(p) if not p then return false end if not p:IsA("Player") then return false end if p == LocalPlayer then return false end if getgenv().TeamCheck and p.Team and LocalPlayer.Team and p.Team == LocalPlayer.Team then return false end return true end local function getCharacter(p) local c = p.Character if not c then return nil end local hum = c:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then return c end return nil end local aimTarget = nil local aimPart = "Head" local holding = false local function pickTarget() local best = nil local bestDist = getgenv().AimFOV local center = Camera.ViewportSize / 2 for _, p in ipairs(Players:GetPlayers()) do if isEnemy(p) then local char = getCharacter(p) if char then local part = char:FindFirstChild(aimPart) if not part then part = char:FindFirstChild("HumanoidRootPart") end if part then local pos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude if dist < bestDist then best = part bestDist = dist end end end end end end return best end RunService.RenderStepped:Connect(function(dt) if not getgenv().Aimbot then aimTarget = nil return end if not holding then aimTarget = nil return end local newTarget = pickTarget() if newTarget then aimTarget = newTarget end if not aimTarget or not aimTarget.Parent then return end Camera.CFrame = CFrame.lookAt(Camera.CFrame.Position, aimTarget.Position) end) -- ===================== ESP ===================== local espFolder = Instance.new("Folder") espFolder.Name = "_ArsenalESP" espFolder.Parent = game:GetService("CoreGui") local highlights = {} local function clearESP(p) local hl = highlights[p] if hl then hl:Destroy() highlights[p] = nil end end local function applyESP(p) if not getgenv().ESP then clearESP(p) return end local char = p.Character if not char then clearESP(p) return end local shouldShow = false if isEnemy(p) then shouldShow = true end if not getgenv().TeamCheck and p ~= LocalPlayer then shouldShow = true end if not shouldShow then clearESP(p) return end local hl = highlights[p] if not hl or not hl.Parent then hl = Instance.new("Highlight") hl.Name = "_ESP_" .. p.Name hl.FillTransparency = 0.5 hl.OutlineTransparency = 0 hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Parent = espFolder highlights[p] = hl end hl.Adornee = char local color if isEnemy(p) then color = ENEMY else color = FRIEND end hl.FillColor = color hl.OutlineColor = color end RunService.RenderStepped:Connect(function() for _, p in ipairs(Players:GetPlayers()) do applyESP(p) end end) Players.PlayerRemoving:Connect(clearESP) -- ===================== GUI ===================== do local cg = game:GetService("CoreGui") for _, n in ipairs(cg:GetChildren()) do if n.Name == "_arsenal_gui" then n:Destroy() end end end local gui = Instance.new("ScreenGui") gui.Name = "_arsenal_gui" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = game:GetService("CoreGui") local function corner(p, r) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r or 8) c.Parent = p end local function pad(p, t, b, l, r) local u = Instance.new("UIPadding") u.PaddingTop = UDim.new(0, t or 0) u.PaddingBottom = UDim.new(0, b or 0) u.PaddingLeft = UDim.new(0, l or 0) u.PaddingRight = UDim.new(0, r or 0) u.Parent = p end local main = Instance.new("Frame") main.Name = "Main" main.Size = UDim2.new(0, 300, 0, 300) main.Position = UDim2.new(0, 40, 0, 60) main.BackgroundColor3 = Color3.fromRGB(15, 15, 18) main.BorderSizePixel = 0 main.Active = true main.Parent = gui corner(main, 8) local title = Instance.new("Frame") title.Size = UDim2.new(1, 0, 0, 32) title.BackgroundTransparency = 1 title.Parent = main local titleLbl = Instance.new("TextLabel") titleLbl.BackgroundTransparency = 1 titleLbl.Font = Enum.Font.GothamBold titleLbl.TextSize = 13 titleLbl.TextColor3 = Color3.fromRGB(229, 229, 234) titleLbl.TextXAlignment = Enum.TextXAlignment.Left titleLbl.Size = UDim2.new(1, -32, 1, 0) titleLbl.Position = UDim2.new(0, 12, 0, 0) titleLbl.Text = "Arsenal Cheat" titleLbl.Parent = title local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 24, 1, 0) closeBtn.Position = UDim2.new(1, -28, 0, 0) closeBtn.BackgroundTransparency = 1 closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 14 closeBtn.TextColor3 = Color3.fromRGB(107, 107, 117) closeBtn.Text = "X" closeBtn.Parent = title local body = Instance.new("Frame") body.BackgroundTransparency = 1 body.Size = UDim2.new(1, 0, 1, -32) body.Position = UDim2.new(0, 0, 0, 32) body.Parent = main pad(body, 8, 8, 12, 12) local list = Instance.new("UIListLayout") list.Padding = UDim.new(0, 6) list.SortOrder = Enum.SortOrder.LayoutOrder list.Parent = body local function makeRow() local row = Instance.new("Frame") row.BackgroundTransparency = 1 row.Size = UDim2.new(1, 0, 0, 24) row.Parent = body return row end local function makeToggle(label, init, onChange) local row = makeRow() local lbl = Instance.new("TextLabel") lbl.BackgroundTransparency = 1 lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextColor3 = Color3.fromRGB(229, 229, 234) lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Size = UDim2.new(1, -50, 1, 0) lbl.Text = label lbl.Parent = row local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 40, 0, 22) btn.Position = UDim2.new(1, -40, 0.5, -11) btn.BackgroundColor3 = init and ACCENT or Color3.fromRGB(42, 42, 51) btn.BorderSizePixel = 0 btn.Font = Enum.Font.GothamBold btn.TextSize = 11 btn.TextColor3 = Color3.fromRGB(229, 229, 234) btn.Text = init and "ON" or "OFF" btn.Parent = row corner(btn, 4) btn.MouseButton1Click:Connect(function() local s = (btn.Text == "ON") s = not s if s then btn.BackgroundColor3 = ACCENT btn.Text = "ON" else btn.BackgroundColor3 = Color3.fromRGB(42, 42, 51) btn.Text = "OFF" end if onChange then onChange(s) end end) end local function makeDropdown(label, options, init, onChange) local row = makeRow() local lbl = Instance.new("TextLabel") lbl.BackgroundTransparency = 1 lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextColor3 = Color3.fromRGB(229, 229, 234) lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Size = UDim2.new(0.5, -6, 1, 0) lbl.Text = label lbl.Parent = row local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.5, 0, 0, 22) btn.Position = UDim2.new(0.5, 0, 0.5, -11) btn.BackgroundColor3 = Color3.fromRGB(42, 42, 51) btn.BorderSizePixel = 0 btn.Font = Enum.Font.GothamBold btn.TextSize = 11 btn.TextColor3 = ACCENT btn.Text = init btn.Parent = row corner(btn, 4) btn.MouseButton1Click:Connect(function() local i = 1 for idx, opt in ipairs(options) do if opt == btn.Text then i = idx break end end i = i + 1 if i > #options then i = 1 end btn.Text = options[i] if onChange then onChange(options[i]) end end) end local function makeSlider(label, mn, mx, init, onChange) local wrap = Instance.new("Frame") wrap.BackgroundTransparency = 1 wrap.Size = UDim2.new(1, 0, 0, 32) wrap.Parent = body local top = Instance.new("Frame") top.BackgroundTransparency = 1 top.Size = UDim2.new(1, 0, 0, 14) top.Parent = wrap local lbl = Instance.new("TextLabel") lbl.BackgroundTransparency = 1 lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextColor3 = Color3.fromRGB(229, 229, 234) lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Size = UDim2.new(1, -40, 1, 0) lbl.Text = label lbl.Parent = top local valLbl = Instance.new("TextLabel") valLbl.BackgroundTransparency = 1 valLbl.Font = Enum.Font.GothamBold valLbl.TextSize = 12 valLbl.TextColor3 = ACCENT valLbl.TextXAlignment = Enum.TextXAlignment.Right valLbl.Size = UDim2.new(0, 40, 1, 0) valLbl.Position = UDim2.new(1, -40, 0, 0) valLbl.Text = tostring(init) valLbl.Parent = top local bar = Instance.new("Frame") bar.Size = UDim2.new(1, 0, 0, 4) bar.Position = UDim2.new(0, 0, 1, -6) bar.BackgroundColor3 = Color3.fromRGB(42, 42, 51) bar.BorderSizePixel = 0 bar.Parent = wrap corner(bar, 2) local fill = Instance.new("Frame") fill.BackgroundColor3 = ACCENT fill.BorderSizePixel = 0 fill.Parent = bar corner(fill, 2) local function setVal(v) v = math.clamp(v, mn, mx) local pct = (v - mn) / (mx - mn) fill.Size = UDim2.new(pct, 0, 1, 0) valLbl.Text = tostring(math.floor(v * 10) / 10) if onChange then onChange(v) end end setVal(init) local inputBtn = Instance.new("TextButton") inputBtn.Size = UDim2.new(1, 0, 0, 14) inputBtn.Position = UDim2.new(0, 0, 1, -14) inputBtn.BackgroundTransparency = 1 inputBtn.Text = "" inputBtn.Parent = wrap local dragging = false local function update(input) local ax = bar.AbsolutePosition.X local aw = bar.AbsoluteSize.X if aw <= 0 then return end local rel = math.clamp((input.Position.X - ax) / aw, 0, 1) local v = mn + (mx - mn) * rel setVal(v) end inputBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true update(input) end end) inputBtn.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then update(input) end end) end makeToggle("Aimbot", getgenv().Aimbot, function(v) getgenv().Aimbot = v end) makeToggle("Team Check", getgenv().TeamCheck, function(v) getgenv().TeamCheck = v end) makeToggle("ESP", getgenv().ESP, function(v) getgenv().ESP = v end) makeDropdown("Aim Part", {"Head","HumanoidRootPart","UpperTorso"}, aimPart, function(v) aimPart = v end) local aimKeyLabel = "RMB" if getgenv().AimKey == Enum.UserInputType.MouseButton1 then aimKeyLabel = "LMB" elseif getgenv().AimKey == Enum.KeyCode.X then aimKeyLabel = "X" end makeDropdown("Aim Key", {"RMB","LMB","X"}, aimKeyLabel, function(v) if v == "RMB" then getgenv().AimKey = Enum.UserInputType.MouseButton2 elseif v == "LMB" then getgenv().AimKey = Enum.UserInputType.MouseButton1 else getgenv().AimKey = Enum.KeyCode.X end end) makeSlider("FOV", 10, 360, getgenv().AimFOV, function(v) getgenv().AimFOV = v end) makeSlider("Smooth", 1, 20, getgenv().AimSmooth, function(v) getgenv().AimSmooth = v end) -- Drag do local dragging = false local dragStart = nil local startPos = nil title.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = main.Position end end) title.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local d = input.Position - dragStart main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end) end closeBtn.MouseButton1Click:Connect(function() gui:Destroy() espFolder:Destroy() getgenv()._arsenal_loaded = nil end) -- Aim key UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.UserInputType == getgenv().AimKey then holding = true end end) UIS.InputEnded:Connect(function(input) if input.UserInputType == getgenv().AimKey then holding = false end end)