-- [[ 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 ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6aca22ee2ae64bf803d9a113"))() end) end) --[[rscripts:analytics:end]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local playerGui = LocalPlayer:WaitForChild("PlayerGui") local Camera = workspace.CurrentCamera local GuiParent pcall(function() GuiParent = gethui() end) if not GuiParent then pcall(function() GuiParent = CoreGui end) end if not GuiParent then GuiParent = playerGui end local IS_MOBILE = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled local CONFIG = { DiscordInvite = "https://discord.gg/q5zCjU4kNM", } local C = { panel = Color3.fromRGB(10, 22, 22), border = Color3.fromRGB(0, 188, 168), teal = Color3.fromRGB(0, 188, 168), tealDim = Color3.fromRGB(0, 110, 100), text = Color3.fromRGB(180, 210, 205), textDim = Color3.fromRGB(90, 130, 125), dark = Color3.fromRGB(6, 14, 14), white = Color3.fromRGB(255, 255, 255), discord = Color3.fromRGB(88, 101, 242), } local function corner(p, r) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r or 4) c.Parent = p end local function stroke(p, col, t, tr) local s = Instance.new("UIStroke") s.Color = col or C.border s.Thickness = t or 1 s.Transparency = tr or 0.6 s.Parent = p return s end local State = { Aimbot = false, AimbotFOV = 120, AimbotSmooth = 0.15, AimbotPart = "Head", TeamCheck = true, Triggerbot = false, AutoFire = false, Chams = false, ShowFOV = true, } local GUI_NAME = "MunkeArsenal_" .. math.random(1000, 9999) for _, v in pairs(GuiParent:GetChildren()) do if v:IsA("ScreenGui") and v.Name:match("^MunkeArsenal_") then v:Destroy() end end local gui = Instance.new("ScreenGui") gui.Name = GUI_NAME gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling gui.IgnoreGuiInset = true pcall(function() if syn and syn.protect_gui then syn.protect_gui(gui) elseif protectgui then protectgui(gui) end end) gui.Parent = GuiParent local fovGui = Instance.new("ScreenGui", GuiParent) fovGui.Name = "MunkeFOV_" .. math.random(1000, 9999) fovGui.ResetOnSpawn = false fovGui.IgnoreGuiInset = true pcall(function() if syn and syn.protect_gui then syn.protect_gui(fovGui) end end) local fovCircle = Instance.new("Frame", fovGui) fovCircle.AnchorPoint = Vector2.new(0.5, 0.5) fovCircle.Position = UDim2.fromScale(0.5, 0.5) fovCircle.BackgroundTransparency = 1 fovCircle.BorderSizePixel = 0 fovCircle.Visible = false corner(fovCircle, 999) stroke(fovCircle, C.teal, 1.5, 0.3) local panelW = IS_MOBILE and 320 or 360 local panelH = 480 local panel = Instance.new("Frame", gui) panel.Size = UDim2.fromOffset(panelW, panelH) panel.Position = UDim2.new(0.5, -panelW/2, 0.5, -panelH/2) panel.BackgroundColor3 = C.panel panel.BorderSizePixel = 0 panel.ClipsDescendants = true panel.Active = true corner(panel, 6) stroke(panel, C.border, 1, 0.5) do local dragging, dragStart, startPos panel.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then dragging = true; dragStart = inp.Position; startPos = panel.Position end end) UserInputService.InputChanged:Connect(function(inp) if dragging and (inp.UserInputType == Enum.UserInputType.MouseMovement or inp.UserInputType == Enum.UserInputType.Touch) then local d = inp.Position - dragStart panel.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end) UserInputService.InputEnded:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end local header = Instance.new("TextLabel", panel) header.Size = UDim2.new(1, -40, 0, 32) header.Position = UDim2.fromOffset(12, 8) header.BackgroundTransparency = 1 header.Font = Enum.Font.GothamBold header.TextSize = IS_MOBILE and 14 or 16 header.TextColor3 = C.teal header.TextXAlignment = Enum.TextXAlignment.Left header.Text = "MUNKEHUB · OpenSource" local closeBtn = Instance.new("TextButton", panel) closeBtn.Size = UDim2.fromOffset(24, 24) closeBtn.Position = UDim2.new(1, -32, 0, 12) closeBtn.BackgroundColor3 = C.dark closeBtn.BorderSizePixel = 0 closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 12 closeBtn.TextColor3 = C.white closeBtn.Text = "×" closeBtn.AutoButtonColor = false corner(closeBtn, 4) stroke(closeBtn, C.tealDim, 1, 0.5) closeBtn.MouseButton1Click:Connect(function() gui:Destroy(); fovGui:Destroy() end) local div = Instance.new("Frame", panel) div.Size = UDim2.new(1, -24, 0, 1) div.Position = UDim2.fromOffset(12, 46) div.BackgroundColor3 = C.border div.BackgroundTransparency = 0.75 div.BorderSizePixel = 0 local scroll = Instance.new("ScrollingFrame", panel) scroll.Size = UDim2.new(1, -20, 1, -58) scroll.Position = UDim2.fromOffset(10, 52) scroll.BackgroundTransparency = 1 scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 4 scroll.ScrollBarImageColor3 = C.teal scroll.CanvasSize = UDim2.fromOffset(0, 0) scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y scroll.ScrollingDirection = Enum.ScrollingDirection.Y local scrollLayout = Instance.new("UIListLayout", scroll) scrollLayout.Padding = UDim.new(0, 6) scrollLayout.SortOrder = Enum.SortOrder.LayoutOrder scrollLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scroll.CanvasSize = UDim2.fromOffset(0, scrollLayout.AbsoluteContentSize.Y + 20) end) local order = 0 local function nextOrder() order = order + 1; return order end local function sectionHeader(text) local h = Instance.new("TextLabel", scroll) h.Size = UDim2.new(1, 0, 0, 18) h.BackgroundTransparency = 1 h.LayoutOrder = nextOrder() h.Font = Enum.Font.GothamBold h.TextSize = 10 h.TextColor3 = C.tealDim h.TextXAlignment = Enum.TextXAlignment.Left h.Text = text end local function toggle(label, default, callback) local row = Instance.new("Frame", scroll) row.Size = UDim2.new(1, 0, 0, IS_MOBILE and 46 or 42) row.BackgroundColor3 = C.dark row.BackgroundTransparency = 0.15 row.BorderSizePixel = 0 row.LayoutOrder = nextOrder() corner(row, 4) stroke(row, C.tealDim, 1, 0.5) local l = Instance.new("TextLabel", row) l.Size = UDim2.new(1, -80, 1, 0) l.Position = UDim2.fromOffset(12, 0) l.BackgroundTransparency = 1 l.Font = Enum.Font.GothamMedium l.TextSize = IS_MOBILE and 13 or 12 l.TextColor3 = C.text l.TextXAlignment = Enum.TextXAlignment.Left l.Text = label local btn = Instance.new("TextButton", row) btn.Size = UDim2.fromOffset(46, 24) btn.Position = UDim2.new(1, -58, 0.5, -12) btn.BackgroundColor3 = default and C.teal or Color3.fromRGB(24, 45, 45) btn.BorderSizePixel = 0 btn.Text = "" btn.AutoButtonColor = false corner(btn, 4) local knob = Instance.new("Frame", btn) knob.Size = UDim2.fromOffset(18, 18) knob.Position = default and UDim2.fromOffset(25, 3) or UDim2.fromOffset(3, 3) knob.BackgroundColor3 = C.white knob.BorderSizePixel = 0 corner(knob, 3) local state = default btn.MouseButton1Click:Connect(function() state = not state btn.BackgroundColor3 = state and C.teal or Color3.fromRGB(24, 45, 45) knob.Position = state and UDim2.fromOffset(25, 3) or UDim2.fromOffset(3, 3) if callback then pcall(callback, state) end end) end local function slider(label, default, mn, mx, step, callback) local row = Instance.new("Frame", scroll) row.Size = UDim2.new(1, 0, 0, 62) row.BackgroundColor3 = C.dark row.BackgroundTransparency = 0.15 row.BorderSizePixel = 0 row.LayoutOrder = nextOrder() corner(row, 4) stroke(row, C.tealDim, 1, 0.5) local l = Instance.new("TextLabel", row) l.Size = UDim2.new(0.65, 0, 0, 20) l.Position = UDim2.fromOffset(12, 6) l.BackgroundTransparency = 1 l.Font = Enum.Font.GothamMedium l.TextSize = IS_MOBILE and 13 or 12 l.TextColor3 = C.text l.TextXAlignment = Enum.TextXAlignment.Left l.Text = label local vLbl = Instance.new("TextLabel", row) vLbl.Size = UDim2.new(0.3, 0, 0, 20) vLbl.Position = UDim2.new(0.68, -10, 0, 6) vLbl.BackgroundTransparency = 1 vLbl.Font = Enum.Font.Code vLbl.TextSize = IS_MOBILE and 13 or 12 vLbl.TextColor3 = C.teal vLbl.TextXAlignment = Enum.TextXAlignment.Right vLbl.Text = tostring(default) local barBg = Instance.new("Frame", row) barBg.Size = UDim2.new(1, -24, 0, 8) barBg.Position = UDim2.fromOffset(12, 42) barBg.BackgroundColor3 = Color3.fromRGB(30, 46, 44) barBg.BorderSizePixel = 0 corner(barBg, 4) local fill = Instance.new("Frame", barBg) local pctInit = math.clamp((default - mn) / (mx - mn), 0, 1) fill.Size = UDim2.fromScale(pctInit, 1) fill.BackgroundColor3 = C.teal fill.BorderSizePixel = 0 corner(fill, 4) local hit = Instance.new("TextButton", barBg) hit.Size = UDim2.new(1, 0, 1, 26) hit.Position = UDim2.fromOffset(0, -9) hit.BackgroundTransparency = 1 hit.Text = "" local value = default local dragging = false local function updateFromX(x) local pct = math.clamp((x - barBg.AbsolutePosition.X) / barBg.AbsoluteSize.X, 0, 1) fill.Size = UDim2.fromScale(pct, 1) local raw = mn + (mx - mn) * pct local snapped = math.floor(raw / step + 0.5) * step value = math.clamp(snapped, mn, mx) vLbl.Text = step < 1 and string.format("%.2f", value) or tostring(math.floor(value)) if callback then pcall(callback, value) end end hit.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true updateFromX(i.Position.X) end end) hit.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then updateFromX(i.Position.X) end end) hit.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end local function dropdown(label, options, default, callback) local row = Instance.new("Frame", scroll) row.Size = UDim2.new(1, 0, 0, IS_MOBILE and 46 or 42) row.BackgroundColor3 = C.dark row.BackgroundTransparency = 0.15 row.BorderSizePixel = 0 row.LayoutOrder = nextOrder() corner(row, 4) stroke(row, C.tealDim, 1, 0.5) local l = Instance.new("TextLabel", row) l.Size = UDim2.new(0.55, 0, 1, 0) l.Position = UDim2.fromOffset(12, 0) l.BackgroundTransparency = 1 l.Font = Enum.Font.GothamMedium l.TextSize = IS_MOBILE and 13 or 12 l.TextColor3 = C.text l.TextXAlignment = Enum.TextXAlignment.Left l.Text = label local btn = Instance.new("TextButton", row) btn.Size = UDim2.fromOffset(90, 26) btn.Position = UDim2.new(1, -102, 0.5, -13) btn.BackgroundColor3 = Color3.fromRGB(16, 30, 28) btn.BorderSizePixel = 0 btn.Font = Enum.Font.GothamMedium btn.TextSize = 11 btn.TextColor3 = C.teal btn.Text = default btn.AutoButtonColor = false corner(btn, 4) stroke(btn, C.tealDim, 1, 0.6) local listFrame btn.MouseButton1Click:Connect(function() if listFrame then listFrame:Destroy(); listFrame = nil; return end listFrame = Instance.new("Frame", row) listFrame.Size = UDim2.fromOffset(100, #options * 28) listFrame.Position = UDim2.new(1, -102, 1, 2) listFrame.BackgroundColor3 = C.panel listFrame.BorderSizePixel = 0 listFrame.ZIndex = 50 corner(listFrame, 4) stroke(listFrame, C.teal, 1, 0.4) for i, opt in ipairs(options) do local ob = Instance.new("TextButton", listFrame) ob.Size = UDim2.new(1, 0, 0, 28) ob.Position = UDim2.fromOffset(0, (i-1) * 28) ob.BackgroundTransparency = 1 ob.Text = opt ob.Font = Enum.Font.GothamMedium ob.TextSize = 11 ob.TextColor3 = C.text ob.ZIndex = 51 ob.MouseEnter:Connect(function() ob.BackgroundTransparency = 0.8 end) ob.MouseLeave:Connect(function() ob.BackgroundTransparency = 1 end) ob.MouseButton1Click:Connect(function() btn.Text = opt if listFrame then listFrame:Destroy(); listFrame = nil end if callback then pcall(callback, opt) end end) end end) end local function button(label, bgColor, textColor, callback) local b = Instance.new("TextButton", scroll) b.Size = UDim2.new(1, 0, 0, IS_MOBILE and 42 or 38) b.BackgroundColor3 = bgColor or C.dark b.BackgroundTransparency = 0.15 b.BorderSizePixel = 0 b.LayoutOrder = nextOrder() b.Font = Enum.Font.GothamBold b.TextSize = IS_MOBILE and 13 or 12 b.TextColor3 = textColor or C.text b.Text = label b.AutoButtonColor = false corner(b, 4) stroke(b, bgColor or C.tealDim, 1, 0.6) b.MouseButton1Click:Connect(function() b.BackgroundTransparency = 0 task.delay(0.12, function() b.BackgroundTransparency = 0.15 end) if callback then pcall(callback) end end) return b end local function getTargets() local out = {} for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local hum = p.Character:FindFirstChildOfClass("Humanoid") local hrp = p.Character:FindFirstChild("HumanoidRootPart") local head = p.Character:FindFirstChild("Head") if hum and hum.Health > 0 then local sameTeam = (p.Team and LocalPlayer.Team and p.Team == LocalPlayer.Team) if not (State.TeamCheck and sameTeam) then local part = (State.AimbotPart == "Head" and head) or hrp if part then table.insert(out, { player = p, part = part, hum = hum }) end end end end end return out end local function worldToScreen(pos) local sp, onScreen = Camera:WorldToViewportPoint(pos) if not onScreen or sp.Z <= 0 then return nil end return Vector2.new(sp.X, sp.Y) end local function closestToCursor() local mouse = UserInputService:GetMouseLocation() local best, bestD for _, t in ipairs(getTargets()) do local sp = worldToScreen(t.part.Position) if sp then local d = (sp - mouse).Magnitude if d <= State.AimbotFOV and (not bestD or d < bestD) then best, bestD = t, d end end end return best end RunService.RenderStepped:Connect(function() if State.ShowFOV and (State.Aimbot or State.Triggerbot) then fovCircle.Visible = true local size = State.AimbotFOV * 2 fovCircle.Size = UDim2.fromOffset(size, size) else fovCircle.Visible = false end if not State.Aimbot then return end local target = closestToCursor() if target and target.part then local goal = CFrame.new(Camera.CFrame.Position, target.part.Position) Camera.CFrame = Camera.CFrame:Lerp(goal, State.AimbotSmooth) end end) task.spawn(function() while task.wait(0.05) do if State.Triggerbot then local target = closestToCursor() if target and target.part then local mouse = UserInputService:GetMouseLocation() local sp = worldToScreen(target.part.Position) if sp and (sp - mouse).Magnitude < 40 then local char = LocalPlayer.Character local tool = char and char:FindFirstChildOfClass("Tool") if tool then pcall(function() tool:Activate() end) end end end end end end) task.spawn(function() while task.wait(0.1) do if State.AutoFire then local char = LocalPlayer.Character local tool = char and char:FindFirstChildOfClass("Tool") if tool then pcall(function() tool:Activate() end) end end end end) local chamsCache = {} local function applyCham(plr) if plr == LocalPlayer then return end local char = plr.Character if not char then return end local existing = char:FindFirstChild("MunkeChams") if existing then existing:Destroy() end local hl = Instance.new("Highlight") hl.Name = "MunkeChams" hl.FillColor = C.teal hl.OutlineColor = C.white hl.FillTransparency = 0.5 hl.OutlineTransparency = 0 hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Adornee = char hl.Parent = char chamsCache[plr] = hl end local function removeCham(plr) local hl = chamsCache[plr] if hl then pcall(function() hl:Destroy() end); chamsCache[plr] = nil end local char = plr.Character if char then local existing = char:FindFirstChild("MunkeChams") if existing then existing:Destroy() end end end RunService.Heartbeat:Connect(function() if not State.Chams then return end for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then local char = p.Character if char then local existing = char:FindFirstChild("MunkeChams") if not existing or existing.Adornee ~= char then if existing then existing:Destroy() end applyCham(p) end end end end for plr, hl in pairs(chamsCache) do if not plr.Parent or not hl.Parent then chamsCache[plr] = nil end end end) Players.PlayerAdded:Connect(function(p) if State.Chams then p.CharacterAdded:Connect(function() task.wait(0.5) if State.Chams then applyCham(p) end end) end end) Players.PlayerRemoving:Connect(function(p) removeCham(p) end) sectionHeader("COMBAT · AIMBOT") toggle("Aimbot", false, function(v) State.Aimbot = v end) slider("FOV", 120, 10, 500, 1, function(v) State.AimbotFOV = v end) slider("Smoothness", 0.15, 0.01, 1, 0.01, function(v) State.AimbotSmooth = v end) dropdown("Target Part", {"Head", "HumanoidRootPart", "UpperTorso"}, "Head", function(v) State.AimbotPart = v end) toggle("Team Check", true, function(v) State.TeamCheck = v end) toggle("Show FOV Circle", true, function(v) State.ShowFOV = v end) sectionHeader("COMBAT · OTHER") toggle("Triggerbot", false, function(v) State.Triggerbot = v end) toggle("Auto Fire", false, function(v) State.AutoFire = v end) sectionHeader("VISUALS") toggle("Chams", false, function(v) State.Chams = v if not v then for plr in pairs(chamsCache) do removeCham(plr) end for _, p in ipairs(Players:GetPlayers()) do removeCham(p) end end end) sectionHeader("COMMUNITY") button("Copy Discord Invite", C.discord, C.white, function() local copied = false if setclipboard then copied = pcall(setclipboard, CONFIG.DiscordInvite) end if not copied and toclipboard then copied = pcall(toclipboard, CONFIG.DiscordInvite) end end) UserInputService.InputBegan:Connect(function(i, g) if g then return end if i.KeyCode == Enum.KeyCode.Insert or i.KeyCode == Enum.KeyCode.K then panel.Visible = not panel.Visible end end) panel.Visible = true