M
Description
Open source for the skids enjoy
GAMEArsenal
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. 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 BloxScripts 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 = trueReview the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place