M
Description
TOGGLE MENU IN SETTINGS Aimbot Esp Wallcheck Teamcheck Flight Speed lmk if there are any issues/ games you want me to make scripts for
GAMECold War
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
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=6ac1b184d2dd4538b853b981"))()
end)
end)
--[[rscripts:analytics:end]]
--=============================================================
-- COLD WAR | aimbot + esp + tracers + movement
--=============================================================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LP = Players.LocalPlayer
local Camera = workspace.CurrentCamera
--=============================================================
-- EXECUTOR FUNCTIONS
--=============================================================
local EX = {
mousemoverel = (function()
local ok, v = pcall(function() return mousemoverel end)
return ok and type(v) == "function" and v or nil
end)(),
gethui = (function()
local ok, v = pcall(function() return gethui end)
return ok and type(v) == "function" and v or nil
end)(),
getgenv = (function()
local ok, v = pcall(function() return getgenv end)
return ok and type(v) == "function" and v or nil
end)(),
}
--=============================================================
-- CONFIG
--=============================================================
local Config = {
aimbot = {
enabled = false,
keybind = Enum.UserInputType.MouseButton2,
teamCheck = true,
fov = 150,
smoothness = 4,
targetPart = "Head",
visibleOnly = false,
showFov = true,
},
esp = {
enabled = false,
boxes = true,
names = true,
health = true,
distance = true,
teamCheck = true,
tracers = true,
tracerFrom = "Bottom",
},
move = {
fly = { enabled = false, speed = 60 },
speed = { enabled = false, value = 32 },
jump = { enabled = false, value = 80 },
},
world = {
charactersFolder = "Characters",
},
ui = {
toggleKey = Enum.KeyCode.Home,
},
}
local TARGET_PARTS = {
"Head", "Torso", "UpperTorso", "LowerTorso",
"HumanoidRootPart", "Left Arm", "Right Arm",
"Left Leg", "Right Leg", "LeftUpperArm", "RightUpperArm",
}
--=============================================================
-- COLORS
--=============================================================
local COL = {
bg = Color3.fromRGB(16, 12, 22),
panel = Color3.fromRGB(22, 16, 30),
panel2 = Color3.fromRGB(30, 22, 40),
header = Color3.fromRGB(26, 18, 36),
accent = Color3.fromRGB(150, 85, 235),
accent2 = Color3.fromRGB(180, 120, 255),
gray = Color3.fromRGB(70, 62, 88),
gray2 = Color3.fromRGB(100, 92, 120),
text = Color3.fromRGB(232, 226, 245),
dim = Color3.fromRGB(155, 145, 175),
ok = Color3.fromRGB(120, 210, 150),
danger = Color3.fromRGB(215, 70, 100),
esp = Color3.fromRGB(180, 120, 255),
tracer = Color3.fromRGB(150, 85, 235),
scroll = Color3.fromRGB(140, 100, 210),
}
--=============================================================
-- GUI PARENT
--=============================================================
local GUI_PARENT = (function()
if EX.gethui then
local ok, hui = pcall(EX.gethui)
if ok and hui then return hui end
end
local ok, cg = pcall(function() return game:GetService("CoreGui") end)
if ok and cg then return cg end
return LP:WaitForChild("PlayerGui")
end)()
--=============================================================
-- HELPERS
--=============================================================
local function getCharactersFolder()
return workspace:FindFirstChild(Config.world.charactersFolder)
end
local function getCharacter(plr)
local folder = getCharactersFolder()
if folder then
local c = folder:FindFirstChild(plr.Name)
if c then return c end
end
if plr.Character and plr.Character.Parent then
return plr.Character
end
return nil
end
local function getPart(char, partName)
if not char then return nil end
local p = char:FindFirstChild(partName)
if p then return p end
local fallbacks = {
Head = { "Head" },
Torso = { "Torso", "UpperTorso" },
HumanoidRootPart = { "HumanoidRootPart", "Torso", "UpperTorso" },
}
local list = fallbacks[partName]
if list then
for _, n in ipairs(list) do
local f = char:FindFirstChild(n)
if f then return f end
end
end
return nil
end
local function getHealth(char)
local hum = char and char:FindFirstChildOfClass("Humanoid")
if hum then return hum.Health, hum.MaxHealth end
return 100, 100
end
local function isSameTeam(plr)
local myTeam = LP.Team
if not myTeam then return false end
local ok, other = pcall(function() return plr.Team end)
return ok and other == myTeam
end
local function isVisible(targetPart, ignoreChar)
if not targetPart then return false end
local origin = Camera.CFrame.Position
local dir = (targetPart.Position - origin)
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
local exclude = { LP.Character, ignoreChar }
if gui and gui.Parent then table.insert(exclude, gui) end
params.FilterDescendantsInstances = exclude
local hit = workspace:Raycast(origin, dir, params)
return hit == nil
end
local function worldToViewport(pos)
local v, onScreen = Camera:WorldToViewportPoint(pos)
return Vector2.new(v.X, v.Y), onScreen, v.Z
end
local function getMyRoot()
local char = LP.Character
if not char then return nil end
return char:FindFirstChild("HumanoidRootPart")
or char:FindFirstChild("Torso")
or char:FindFirstChild("UpperTorso")
end
--=============================================================
-- UI HELPERS
--=============================================================
local function make(class, props)
local inst = Instance.new(class)
for k, v in pairs(props or {}) do
if k ~= "Parent" then inst[k] = v end
end
if props and props.Parent then inst.Parent = props.Parent end
return inst
end
local function corner(parent, r)
return make("UICorner", { Parent = parent, CornerRadius = UDim.new(0, r or 6) })
end
local function stroke(parent, color, thickness)
return make("UIStroke", {
Parent = parent,
Color = color or COL.gray,
Thickness = thickness or 1,
ApplyStrokeMode = Enum.ApplyStrokeMode.Border,
})
end
--=============================================================
-- WINDOW
--=============================================================
local gui = make("ScreenGui", {
Name = "CW_Cheat", ResetOnSpawn = false,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
IgnoreGuiInset = true,
Parent = GUI_PARENT,
})
local window = make("Frame", {
Parent = gui,
Size = UDim2.new(0, 620, 0, 430),
Position = UDim2.new(0.5, -310, 0.5, -215),
BackgroundColor3 = COL.bg,
BorderSizePixel = 0,
Active = true,
})
corner(window, 10)
stroke(window, COL.gray, 1)
local header = make("Frame", {
Parent = window,
Size = UDim2.new(1, 0, 0, 34),
BackgroundColor3 = COL.header,
BorderSizePixel = 0,
})
corner(header, 10)
make("Frame", {
Parent = header, Size = UDim2.new(1, 0, 0, 10),
Position = UDim2.new(0, 0, 1, -10),
BackgroundColor3 = COL.header, BorderSizePixel = 0,
})
make("TextLabel", {
Parent = header, BackgroundTransparency = 1,
Size = UDim2.new(1, -80, 1, 0), Position = UDim2.new(0, 14, 0, 0),
Text = "COLD WAR", TextColor3 = COL.text,
Font = Enum.Font.GothamBold, TextSize = 13,
TextXAlignment = Enum.TextXAlignment.Left,
})
make("TextLabel", {
Parent = header, BackgroundTransparency = 1,
Size = UDim2.new(1, -80, 1, 0), Position = UDim2.new(0, 105, 0, 0),
Text = "| aimbot • esp • tracers", TextColor3 = COL.accent,
Font = Enum.Font.GothamMedium, TextSize = 11,
TextXAlignment = Enum.TextXAlignment.Left,
})
local closeBtn = make("TextButton", {
Parent = header,
Size = UDim2.new(0, 22, 0, 22),
Position = UDim2.new(1, -28, 0.5, -11),
BackgroundColor3 = COL.panel2,
BorderSizePixel = 0,
Text = "×", TextColor3 = COL.text,
Font = Enum.Font.GothamBold, TextSize = 16,
AutoButtonColor = false, ZIndex = 5,
})
corner(closeBtn, 5)
stroke(closeBtn, COL.gray, 1)
closeBtn.MouseEnter:Connect(function()
closeBtn.BackgroundColor3 = COL.danger
end)
closeBtn.MouseLeave:Connect(function()
closeBtn.BackgroundColor3 = COL.panel2
end)
local sidebar = make("Frame", {
Parent = window,
Size = UDim2.new(0, 130, 1, -70),
Position = UDim2.new(0, 10, 0, 42),
BackgroundColor3 = COL.panel,
BorderSizePixel = 0,
})
corner(sidebar, 8)
stroke(sidebar, COL.gray, 1)
make("UIListLayout", {
Parent = sidebar, Padding = UDim.new(0, 6),
SortOrder = Enum.SortOrder.LayoutOrder,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
})
make("UIPadding", {
Parent = sidebar,
PaddingTop = UDim.new(0, 10),
PaddingLeft = UDim.new(0, 8),
PaddingRight = UDim.new(0, 8),
})
local content = make("Frame", {
Parent = window,
Size = UDim2.new(1, -160, 1, -70),
Position = UDim2.new(0, 148, 0, 42),
BackgroundColor3 = COL.panel,
BorderSizePixel = 0,
})
corner(content, 8)
stroke(content, COL.gray, 1)
local footer = make("Frame", {
Parent = window,
Size = UDim2.new(1, -20, 0, 26),
Position = UDim2.new(0, 10, 1, -32),
BackgroundTransparency = 1,
})
--=============================================================
-- WIDGETS
--=============================================================
local function newPage(name)
local page = make("ScrollingFrame", {
Parent = content,
Size = UDim2.new(1, -16, 1, -16),
Position = UDim2.new(0, 8, 0, 8),
BackgroundTransparency = 1,
BorderSizePixel = 0,
CanvasSize = UDim2.new(0, 0, 0, 0),
AutomaticCanvasSize = Enum.AutomaticSize.Y,
ScrollingDirection = Enum.ScrollingDirection.Y,
ScrollBarThickness = 6,
ScrollBarImageColor3 = COL.scroll,
ScrollBarImageTransparency = 0.2,
ElasticBehavior = Enum.ElasticBehavior.WhenScrollable,
Visible = false,
Name = name,
})
make("UIListLayout", {
Parent = page, Padding = UDim.new(0, 8),
SortOrder = Enum.SortOrder.LayoutOrder,
})
make("UIPadding", {
Parent = page,
PaddingBottom = UDim.new(0, 12),
PaddingRight = UDim.new(0, 4),
})
return page
end
local function sectionLabel(parent, text, order)
local holder = make("Frame", {
Parent = parent, Size = UDim2.new(1, 0, 0, 20),
BackgroundTransparency = 1, LayoutOrder = order,
})
make("Frame", {
Parent = holder, Size = UDim2.new(0, 3, 1, 0),
BackgroundColor3 = COL.accent, BorderSizePixel = 0,
})
make("TextLabel", {
Parent = holder, BackgroundTransparency = 1,
Size = UDim2.new(1, -12, 1, 0), Position = UDim2.new(0, 10, 0, 0),
Text = string.upper(text), TextColor3 = COL.accent2,
Font = Enum.Font.GothamBold, TextSize = 11,
TextXAlignment = Enum.TextXAlignment.Left,
})
return holder
end
local function toggle(parent, label, default, order, onChange)
local state = default or false
local row = make("Frame", {
Parent = parent, Size = UDim2.new(1, 0, 0, 28),
BackgroundColor3 = COL.panel2, BorderSizePixel = 0,
LayoutOrder = order,
})
corner(row, 5)
stroke(row, COL.gray, 1)
make("TextLabel", {
Parent = row, BackgroundTransparency = 1,
Size = UDim2.new(1, -60, 1, 0), Position = UDim2.new(0, 10, 0, 0),
Text = label, TextColor3 = COL.text,
Font = Enum.Font.Gotham, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
})
local track = make("Frame", {
Parent = row, Size = UDim2.new(0, 36, 0, 18),
Position = UDim2.new(1, -46, 0.5, -9),
BackgroundColor3 = COL.gray, BorderSizePixel = 0,
})
corner(track, 9)
local knob = make("Frame", {
Parent = track, Size = UDim2.new(0, 14, 0, 14),
Position = UDim2.new(0, 2, 0.5, -7),
BackgroundColor3 = COL.text, BorderSizePixel = 0,
})
corner(knob, 7)
local btn = make("TextButton", {
Parent = row, Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1, Text = "",
})
local function apply()
if state then
track.BackgroundColor3 = COL.accent
knob.Position = UDim2.new(1, -16, 0.5, -7)
else
track.BackgroundColor3 = COL.gray
knob.Position = UDim2.new(0, 2, 0.5, -7)
end
end
apply()
btn.MouseButton1Click:Connect(function()
state = not state
apply()
if onChange then onChange(state) end
end)
return {
set = function(v) state = v; apply(); if onChange then onChange(v) end end,
get = function() return state end,
}
end
local function slider(parent, label, min, max, default, order, onChange)
local value = default
local row = make("Frame", {
Parent = parent, Size = UDim2.new(1, 0, 0, 44),
BackgroundColor3 = COL.panel2, BorderSizePixel = 0,
LayoutOrder = order,
})
corner(row, 5)
stroke(row, COL.gray, 1)
make("TextLabel", {
Parent = row, BackgroundTransparency = 1,
Size = UDim2.new(1, -80, 0, 20), Position = UDim2.new(0, 10, 0, 2),
Text = label, TextColor3 = COL.text,
Font = Enum.Font.Gotham, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
})
local valLabel = make("TextLabel", {
Parent = row, BackgroundTransparency = 1,
Size = UDim2.new(0, 70, 0, 20), Position = UDim2.new(1, -80, 0, 2),
Text = tostring(value), TextColor3 = COL.accent2,
Font = Enum.Font.GothamBold, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Right,
})
local track = make("Frame", {
Parent = row, Size = UDim2.new(1, -20, 0, 4),
Position = UDim2.new(0, 10, 0, 30),
BackgroundColor3 = COL.gray, BorderSizePixel = 0,
})
corner(track, 2)
local fill = make("Frame", {
Parent = track, Size = UDim2.new(0, 0, 1, 0),
BackgroundColor3 = COL.accent, BorderSizePixel = 0,
})
corner(fill, 2)
local knob = make("Frame", {
Parent = track, Size = UDim2.new(0, 12, 0, 12),
Position = UDim2.new(0, -6, 0.5, -6),
BackgroundColor3 = COL.text, BorderSizePixel = 0,
ZIndex = 2,
})
corner(knob, 6)
local function setValue(v, fire)
v = math.clamp(v, min, max)
value = v
local alpha = (v - min) / (max - min)
fill.Size = UDim2.new(alpha, 0, 1, 0)
knob.Position = UDim2.new(alpha, -6, 0.5, -6)
valLabel.Text = tostring(math.floor(v * 100 + 0.5) / 100)
if fire and onChange then onChange(v) end
end
setValue(default, false)
local dragging = false
local hit = make("TextButton", {
Parent = track, Size = UDim2.new(1, 0, 3, 0),
Position = UDim2.new(0, 0, -1, 0),
BackgroundTransparency = 1, Text = "",
})
local function updateFromInput(input)
local rel = math.clamp(
(input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X,
0, 1)
setValue(min + rel * (max - min), true)
end
hit.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
updateFromInput(input)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
updateFromInput(input)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
return {
set = function(v) setValue(v, true) end,
get = function() return value end,
}
end
local function dropdown(parent, label, options, default, order, onChange)
local value = default or options[1]
local open = false
local HEAD_H = 28
local ITEM_H = 20
local ITEM_GAP = 2
local PAD = 6
local fullHeight = #options * ITEM_H
+ math.max(0, #options - 1) * ITEM_GAP
+ PAD * 2
local MAX_LIST_H = 6 * ITEM_H + 5 * ITEM_GAP + PAD * 2
local listHeight = math.min(fullHeight, MAX_LIST_H)
local LIST_GAP = 6
local holder = make("Frame", {
Parent = parent,
Size = UDim2.new(1, 0, 0, HEAD_H),
BackgroundTransparency = 1,
LayoutOrder = order,
ClipsDescendants = false,
})
local head = make("Frame", {
Parent = holder,
Size = UDim2.new(1, 0, 0, HEAD_H),
Position = UDim2.new(0, 0, 0, 0),
BackgroundColor3 = COL.panel2,
BorderSizePixel = 0,
})
corner(head, 5)
stroke(head, COL.gray, 1)
make("TextLabel", {
Parent = head, BackgroundTransparency = 1,
Size = UDim2.new(1, -90, 1, 0), Position = UDim2.new(0, 10, 0, 0),
Text = label, TextColor3 = COL.text,
Font = Enum.Font.Gotham, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
})
local valLabel = make("TextLabel", {
Parent = head, BackgroundTransparency = 1,
Size = UDim2.new(0, 80, 1, 0), Position = UDim2.new(1, -80, 0, 0),
Text = tostring(value) .. " v", TextColor3 = COL.accent2,
Font = Enum.Font.GothamMedium, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Right,
})
local list = make("ScrollingFrame", {
Parent = holder,
Size = UDim2.new(1, 0, 0, listHeight),
Position = UDim2.new(0, 0, 0, HEAD_H + LIST_GAP),
BackgroundColor3 = COL.bg,
BorderSizePixel = 0,
Visible = false,
CanvasSize = UDim2.new(0, 0, 0, 0),
AutomaticCanvasSize = Enum.AutomaticSize.Y,
ScrollingDirection = Enum.ScrollingDirection.Y,
ScrollBarThickness = 5,
ScrollBarImageColor3 = COL.scroll,
ScrollBarImageTransparency = 0.2,
ElasticBehavior = Enum.ElasticBehavior.WhenScrollable,
})
corner(list, 5)
stroke(list, COL.accent, 1)
make("UIListLayout", {
Parent = list, Padding = UDim.new(0, ITEM_GAP),
SortOrder = Enum.SortOrder.LayoutOrder,
})
make("UIPadding", {
Parent = list,
PaddingTop = UDim.new(0, PAD),
PaddingBottom = UDim.new(0, PAD),
PaddingLeft = UDim.new(0, 4),
PaddingRight = UDim.new(0, 4),
})
for i, opt in ipairs(options) do
local ob = make("TextButton", {
Parent = list, Size = UDim2.new(1, 0, 0, ITEM_H),
BackgroundColor3 = COL.panel, BorderSizePixel = 0,
Text = opt, TextColor3 = COL.text,
Font = Enum.Font.Gotham, TextSize = 11,
AutoButtonColor = false,
LayoutOrder = i,
})
corner(ob, 4)
ob.MouseEnter:Connect(function() ob.BackgroundColor3 = COL.panel2 end)
ob.MouseLeave:Connect(function() ob.BackgroundColor3 = COL.panel end)
ob.MouseButton1Click:Connect(function()
value = opt
valLabel.Text = tostring(opt) .. " v"
setOpen(false)
if onChange then onChange(opt) end
end)
end
local function setOpen(v)
open = v
list.Visible = v
if v then
holder.Size = UDim2.new(1, 0, 0, HEAD_H + LIST_GAP + listHeight)
else
holder.Size = UDim2.new(1, 0, 0, HEAD_H)
end
end
local btn = make("TextButton", {
Parent = head, Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1, Text = "",
})
btn.MouseButton1Click:Connect(function()
setOpen(not open)
end)
return {
set = function(v)
value = v
valLabel.Text = tostring(v) .. " v"
if onChange then onChange(v) end
end,
get = function() return value end,
}
end
local function navButton(text, order, onClick)
local btn = make("TextButton", {
Parent = sidebar, Size = UDim2.new(1, 0, 0, 30),
BackgroundColor3 = COL.panel2, BorderSizePixel = 0,
Text = text, TextColor3 = COL.text,
Font = Enum.Font.GothamMedium, TextSize = 12,
AutoButtonColor = false, LayoutOrder = order,
})
corner(btn, 5)
stroke(btn, COL.gray, 1)
btn.MouseEnter:Connect(function() btn.BackgroundColor3 = COL.gray end)
btn.MouseLeave:Connect(function()
if not btn:GetAttribute("active") then
btn.BackgroundColor3 = COL.panel2
end
end)
btn.MouseButton1Click:Connect(function() onClick(btn) end)
return btn
end
--=============================================================
-- PAGES
--=============================================================
local pageAim = newPage("Aimbot")
local pageESP = newPage("ESP")
local pageMove = newPage("Movement")
local pageSettings = newPage("Settings")
local allPages = { pageAim, pageESP, pageMove, pageSettings }
local navButtons = {}
local function showPage(page, btn)
for _, p in ipairs(allPages) do p.Visible = (p == page) end
for _, b in ipairs(navButtons) do
b:SetAttribute("active", false)
b.BackgroundColor3 = COL.panel2
end
if btn then
btn:SetAttribute("active", true)
btn.BackgroundColor3 = COL.accent
end
end
--=============================================================
-- MOVEMENT WARNING MODAL (one-time)
--=============================================================
local movementWarningShown = false
local modal = make("Frame", {
Parent = window,
Size = UDim2.new(1, 0, 1, 0),
Position = UDim2.new(0, 0, 0, 0),
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
BackgroundTransparency = 0.55,
BorderSizePixel = 0,
Visible = false,
ZIndex = 50,
})
corner(modal, 10)
local modalPanel = make("Frame", {
Parent = modal,
Size = UDim2.new(0, 400, 0, 230),
Position = UDim2.new(0.5, -200, 0.5, -115),
BackgroundColor3 = COL.bg,
BorderSizePixel = 0,
ZIndex = 51,
})
corner(modalPanel, 8)
stroke(modalPanel, COL.accent, 1)
local modalStrip = make("Frame", {
Parent = modalPanel,
Size = UDim2.new(1, 0, 0, 4),
Position = UDim2.new(0, 0, 0, 0),
BackgroundColor3 = COL.danger,
BorderSizePixel = 0,
ZIndex = 52,
})
corner(modalStrip, 8)
make("TextLabel", {
Parent = modalPanel,
Size = UDim2.new(1, -24, 0, 26),
Position = UDim2.new(0, 14, 0, 12),
BackgroundTransparency = 1,
Text = "⚠ MOVEMENT WARNING",
TextColor3 = COL.danger,
Font = Enum.Font.GothamBold, TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
ZIndex = 52,
})
make("TextLabel", {
Parent = modalPanel,
Size = UDim2.new(1, -28, 0, 130),
Position = UDim2.new(0, 14, 0, 44),
BackgroundTransparency = 1,
Text = "Movement features (flight, speed, jump power) are the "
.. "easiest thing for anti-cheat systems to detect.\n\n"
.. "Server-side logs can still flag the abnormal positions and "
.. "velocities even after you toggle them off. Enabling these will "
.. "very likely get you banned.\n\n"
.. "Use them at your own risk.",
TextColor3 = COL.text,
Font = Enum.Font.Gotham, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
TextWrapped = true,
ZIndex = 52,
})
local understandBtn = make("TextButton", {
Parent = modalPanel,
Size = UDim2.new(0, 180, 0, 34),
Position = UDim2.new(0.5, -90, 1, -48),
BackgroundColor3 = COL.accent,
BorderSizePixel = 0,
Text = "I understand",
TextColor3 = COL.text,
Font = Enum.Font.GothamBold, TextSize = 12,
AutoButtonColor = false,
ZIndex = 52,
})
corner(understandBtn, 6)
understandBtn.MouseEnter:Connect(function()
understandBtn.BackgroundColor3 = COL.accent2
end)
understandBtn.MouseLeave:Connect(function()
understandButtonHoverReset()
end)
local function understandButtonHoverReset()
understandBtn.BackgroundColor3 = COL.accent
end
understandBtn.MouseButton1Click:Connect(function()
movementWarningShown = true
modal.Visible = false
end)
--=============================================================
-- NAVIGATION
--=============================================================
navButtons[1] = navButton("Aimbot", 1, function(b) showPage(pageAim, b) end)
navButtons[2] = navButton("ESP", 2, function(b) showPage(pageESP, b) end)
navButtons[3] = navButton("Movement", 3, function(b)
showPage(pageMove, b)
if not movementWarningShown then
modal.Visible = true
end
end)
navButtons[4] = navButton("Settings", 4, function(b) showPage(pageSettings, b) end)
--=============================================================
-- AIMBOT PAGE
--=============================================================
sectionLabel(pageAim, "Aimbot", 1)
toggle(pageAim, "Enable Aimbot", Config.aimbot.enabled, 2, function(v)
Config.aimbot.enabled = v
end)
toggle(pageAim, "Team Check", Config.aimbot.teamCheck, 3, function(v)
Config.aimbot.teamCheck = v
end)
toggle(pageAim, "Visible Only (Wall Check)", Config.aimbot.visibleOnly, 4, function(v)
Config.aimbot.visibleOnly = v
end)
toggle(pageAim, "Show FOV Circle", Config.aimbot.showFov, 5, function(v)
Config.aimbot.showFov = v
end)
slider(pageAim, "FOV Radius", 20, 600, Config.aimbot.fov, 6, function(v)
Config.aimbot.fov = v
end)
slider(pageAim, "Smoothness", 1, 20, Config.aimbot.smoothness, 7, function(v)
Config.aimbot.smoothness = v
end)
dropdown(pageAim, "Aim Part", TARGET_PARTS, Config.aimbot.targetPart, 8, function(v)
Config.aimbot.targetPart = v
end)
--=============================================================
-- ESP PAGE
--=============================================================
sectionLabel(pageESP, "ESP", 1)
toggle(pageESP, "Enable ESP", Config.esp.enabled, 2, function(v)
Config.esp.enabled = v
end)
toggle(pageESP, "Team Check", Config.esp.teamCheck, 3, function(v)
Config.esp.teamCheck = v
end)
toggle(pageESP, "Boxes", Config.esp.boxes, 4, function(v)
Config.esp.boxes = v
end)
toggle(pageESP, "Names", Config.esp.names, 5, function(v)
Config.esp.names = v
end)
toggle(pageESP, "Health", Config.esp.health, 6, function(v)
Config.esp.health = v
end)
toggle(pageESP, "Distance", Config.esp.distance, 7, function(v)
Config.esp.distance = v
end)
sectionLabel(pageESP, "Tracers", 8)
toggle(pageESP, "Show Tracers", Config.esp.tracers, 9, function(v)
Config.esp.tracers = v
end)
dropdown(pageESP, "Tracer Origin", { "Bottom", "Mouse" }, Config.esp.tracerFrom, 10, function(v)
Config.esp.tracerFrom = v
end)
--=============================================================
-- MOVEMENT PAGE
--=============================================================
sectionLabel(pageMove, "Flight", 1)
toggle(pageMove, "Enable Flight", Config.move.fly.enabled, 2, function(v)
Config.move.fly.enabled = v
end)
slider(pageMove, "Flight Speed", 5, 300, Config.move.fly.speed, 3, function(v)
Config.move.fly.speed = v
end)
sectionLabel(pageMove, "Speed", 4)
toggle(pageMove, "Enable Speed", Config.move.speed.enabled, 5, function(v)
Config.move.speed.enabled = v
end)
slider(pageMove, "Walk Speed", 16, 300, Config.move.speed.value, 6, function(v)
Config.move.speed.value = v
end)
sectionLabel(pageMove, "Jump", 7)
toggle(pageMove, "Enable Jump", Config.move.jump.enabled, 8, function(v)
Config.move.jump.enabled = v
end)
slider(pageMove, "Jump Power", 50, 500, Config.move.jump.value, 9, function(v)
Config.move.jump.value = v
end)
--=============================================================
-- SETTINGS PAGE
--=============================================================
sectionLabel(pageSettings, "Menu Keybind", 1)
local kbRow = make("Frame", {
Parent = pageSettings, Size = UDim2.new(1, 0, 0, 28),
BackgroundColor3 = COL.panel2, BorderSizePixel = 0,
LayoutOrder = 2,
})
corner(kbRow, 5)
stroke(kbRow, COL.gray, 1)
make("TextLabel", {
Parent = kbRow, BackgroundTransparency = 1,
Size = UDim2.new(1, -120, 1, 0), Position = UDim2.new(0, 10, 0, 0),
Text = "Toggle Menu", TextColor3 = COL.text,
Font = Enum.Font.Gotham, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
})
local kbValueLabel = make("TextLabel", {
Parent = kbRow, BackgroundTransparency = 1,
Size = UDim2.new(0, 110, 1, 0), Position = UDim2.new(1, -118, 0, 0),
Text = Config.ui.toggleKey.Name, TextColor3 = COL.accent2,
Font = Enum.Font.GothamBold, TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Right,
})
local kbBtn = make("TextButton", {
Parent = kbRow, Size = UDim2.new(1, 0, 1, 0),
BackgroundTransparency = 1, Text = "",
})
local awaitingKey = false
kbBtn.MouseButton1Click:Connect(function()
awaitingKey = true
kbValueLabel.Text = "press a key..."
kbValueLabel.TextColor3 = COL.dim
end)
sectionLabel(pageSettings, "About", 3)
local aboutLbl = make("TextLabel", {
Parent = pageSettings, Size = UDim2.new(1, 0, 0, 0),
BackgroundColor3 = COL.panel2, BorderSizePixel = 0,
AutomaticSize = Enum.AutomaticSize.Y,
Text = "",
TextColor3 = COL.dim,
Font = Enum.Font.Code, TextSize = 11,
TextXAlignment = Enum.TextXAlignment.Left,
TextWrapped = true, LayoutOrder = 4,
})
make("UIPadding", {
Parent = aboutLbl,
PaddingTop = UDim.new(0, 6),
PaddingBottom = UDim.new(0, 6),
})
corner(aboutLbl, 5)
stroke(aboutLbl, COL.gray, 1)
local function refreshAboutText()
aboutLbl.Text = " • Press " .. Config.ui.toggleKey.Name .. " to show/hide the menu\n"
.. " • The X in the corner hides the menu (features keep running)\n"
.. " • Use TERMINATE to fully unload the script\n"
.. " • Aimbot binds to RIGHT MOUSE (hold)\n"
.. " • Flight: WASD, Space = up, LeftCtrl = down"
end
refreshAboutText()
--=============================================================
-- MENU VISIBILITY
--=============================================================
local menuVisible = true
local function setMenuVisible(v)
menuVisible = v
if window and window.Parent then window.Visible = v end
end
local function setToggleKey(keyCode)
Config.ui.toggleKey = keyCode
kbValueLabel.Text = keyCode.Name
kbValueLabel.TextColor3 = COL.accent2
refreshAboutText()
end
closeBtn.MouseButton1Click:Connect(function()
setMenuVisible(false)
end)
UserInputService.InputBegan:Connect(function(input, gpe)
if gpe then return end
if awaitingKey then
if input.UserInputType == Enum.UserInputType.Keyboard then
awaitingKey = false
setToggleKey(input.KeyCode)
end
return
end
if input.UserInputType == Enum.UserInputType.Keyboard
and input.KeyCode == Config.ui.toggleKey then
setMenuVisible(not menuVisible)
end
end)
--=============================================================
-- DRAG
--=============================================================
do
local dragging, dragStart, startPos = false, nil, nil
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = window.Position
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if not dragging then return end
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
local d = input.Position - dragStart
window.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + d.X,
startPos.Y.Scale, startPos.Y.Offset + d.Y)
end
end)
end
--=============================================================
-- DRAWINGS
--=============================================================
local Drawings = {}
do
local fov = Drawing.new("Circle")
fov.Thickness = 1.5
fov.NumSides = 80
fov.Filled = false
fov.Color = COL.accent
fov.Transparency = 0.9
fov.Visible = false
Drawings.fov = fov
Drawings.players = {}
end
local function ensurePlayerDrawings(plr)
local set = Drawings.players[plr]
if set then return set end
set = {}
set.box = Drawing.new("Square")
set.box.Thickness = 1.5
set.box.Filled = false
set.box.Color = COL.esp
set.box.Transparency = 1
set.box.Visible = false
set.name = Drawing.new("Text")
set.name.Size = 14
set.name.Center = true
set.name.Outline = true
set.name.Color = COL.text
set.name.Font = 2
set.name.Visible = false
set.health = Drawing.new("Text")
set.health.Size = 13
set.health.Center = false
set.health.Outline = true
set.health.Color = COL.ok
set.health.Font = 2
set.health.Visible = false
set.dist = Drawing.new("Text")
set.dist.Size = 13
set.dist.Center = true
set.dist.Outline = true
set.dist.Color = COL.dim
set.dist.Font = 2
set.dist.Visible = false
set.tracer = Drawing.new("Line")
set.tracer.Thickness = 1.5
set.tracer.Color = COL.tracer
set.tracer.Transparency = 0.9
set.tracer.Visible = false
Drawings.players[plr] = set
return set
end
local function removePlayerDrawings(plr)
local set = Drawings.players[plr]
if not set then return end
for _, obj in pairs(set) do
pcall(function() obj:Remove() end)
end
Drawings.players[plr] = nil
end
--=============================================================
-- AIMBOT
--=============================================================
local aimHeld = false
UserInputService.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.UserInputType == Config.aimbot.keybind then
aimHeld = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Config.aimbot.keybind then
aimHeld = false
end
end)
local function findBestTarget()
if not Config.aimbot.enabled or not aimHeld then return nil end
local mouse = UserInputService:GetMouseLocation()
local best, bestDist = nil, math.huge
local fov = Config.aimbot.fov
for _, plr in ipairs(Players:GetPlayers()) do
if plr == LP then continue end
if Config.aimbot.teamCheck and isSameTeam(plr) then continue end
local char = getCharacter(plr)
if not char then continue end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then continue end
local part = getPart(char, Config.aimbot.targetPart)
if not part then continue end
if Config.aimbot.visibleOnly and not isVisible(part, char) then
continue
end
local sp, onScreen = worldToViewport(part.Position)
if not onScreen then continue end
local d = (sp - mouse).Magnitude
if d <= fov and d < bestDist then
bestDist = d
best = { part = part, screen = sp }
end
end
return best
end
--=============================================================
-- MOVEMENT (fixed: only touch humanoid when the toggle is on
-- or on the one frame it transitions off)
--=============================================================
local flyBV
-- Per-feature "was on last frame" and "value to restore to once disabled"
local speedWasOn = false
local speedPrev = 16
local jumpWasOn = false
local jumpPrev = {
JumpPower = 50,
JumpHeight = 7.2,
UseJumpPower = true,
}
local function cleanupFly()
if flyBV then
pcall(function() flyBV:Destroy() end)
flyBV = nil
end
end
-- Reset our "was on" tracking whenever the character respawns, so a fresh
-- humanoid is picked up cleanly on the next frame.
local function onCharacter()
cleanupFly()
speedWasOn = false
jumpWasOn = false
end
LP.CharacterAdded:Connect(onCharacter)
local function updateMovement()
local char = LP.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = getMyRoot()
if hum then
-----------------------------------------------------------------
-- SPEED
-- Only touch WalkSpeed when the toggle is ON, or on the exact
-- frame it goes from ON -> OFF (to restore the game's value).
-- Never overwrite the game's WalkSpeed while OFF, which is what
-- caused the freeze after the game set it back to 16.
-----------------------------------------------------------------
if Config.move.speed.enabled then
if not speedWasOn then
speedPrev = hum.WalkSpeed
speedWasOn = true
end
hum.WalkSpeed = Config.move.speed.value
elseif speedWasOn then
hum.WalkSpeed = speedPrev
speedWasOn = false
end
-----------------------------------------------------------------
-- JUMP
-- Same pattern: only act on transition or while ON.
-----------------------------------------------------------------
if Config.move.jump.enabled then
if not jumpWasOn then
jumpPrev.JumpPower = hum.JumpPower
jumpPrev.JumpHeight = hum.JumpHeight
jumpPrev.UseJumpPower = hum.UseJumpPower
jumpWasOn = true
end
hum.UseJumpPower = true
hum.JumpPower = Config.move.jump.value
elseif jumpWasOn then
hum.UseJumpPower = jumpPrev.UseJumpPower
hum.JumpPower = jumpPrev.JumpPower
hum.JumpHeight = jumpPrev.JumpHeight
jumpWasOn = false
end
end
-----------------------------------------------------------------
-- FLIGHT (unchanged)
-----------------------------------------------------------------
if Config.move.fly.enabled and root and hum then
if not flyBV or flyBV.Parent ~= root then
cleanupFly()
flyBV = Instance.new("BodyVelocity")
flyBV.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
flyBV.P = 1250
flyBV.Parent = root
end
local move = Vector3.zero
local camCF = Camera.CFrame
if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + camCF.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - camCF.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - camCF.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + camCF.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
move = move + Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
move = move - Vector3.new(0, 1, 0)
end
if move.Magnitude > 0 then
move = move.Unit * Config.move.fly.speed
end
flyBV.Velocity = move
else
cleanupFly()
end
end
--=============================================================
-- MAIN LOOP
--=============================================================
local renderConn
renderConn = RunService.RenderStepped:Connect(function()
if not gui or not gui.Parent then return end
updateMovement()
local mouse = UserInputService:GetMouseLocation()
Drawings.fov.Position = mouse
Drawings.fov.Radius = Config.aimbot.fov
Drawings.fov.Visible = Config.aimbot.showFov and Config.aimbot.enabled
local target = findBestTarget()
if target and EX.mousemoverel then
local dx = target.screen.X - mouse.X
local dy = target.screen.Y - mouse.Y
local smooth = math.max(1, Config.aimbot.smoothness)
if math.abs(dx) > 0.5 or math.abs(dy) > 0.5 then
pcall(EX.mousemoverel, dx / smooth, dy / smooth)
end
end
local viewportSize = Camera.ViewportSize
for _, plr in ipairs(Players:GetPlayers()) do
local set = Drawings.players[plr]
local shouldHide = (plr == LP)
or (Config.esp.teamCheck and isSameTeam(plr))
if not Config.esp.enabled or shouldHide then
if set then
for _, o in pairs(set) do o.Visible = false end
end
else
local char = getCharacter(plr)
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not char or not hum or hum.Health <= 0 then
if set then
for _, o in pairs(set) do o.Visible = false end
end
else
set = ensurePlayerDrawings(plr)
local head = char:FindFirstChild("Head")
local root = char:FindFirstChild("HumanoidRootPart")
or char:FindFirstChild("Torso")
or char:FindFirstChild("UpperTorso")
if head and root then
local headPos, on1 = worldToViewport(
head.Position + Vector3.new(0, 0.5, 0))
local rootPos, on2 = worldToViewport(
root.Position - Vector3.new(0, 2.5, 0))
if on1 or on2 then
local topY = math.min(headPos.Y, rootPos.Y)
local bottomY = math.max(headPos.Y, rootPos.Y)
local h = bottomY - topY
local w = h * 0.55
local centerX = (headPos.X + rootPos.X) / 2
if Config.esp.boxes then
set.box.Size = Vector2.new(w, h)
set.box.Position = Vector2.new(centerX - w/2, topY)
set.box.Visible = true
else
set.box.Visible = false
end
if Config.esp.names then
set.name.Position = Vector2.new(centerX, topY - 18)
set.name.Text = plr.Name
set.name.Visible = true
else
set.name.Visible = false
end
if Config.esp.health then
local hp, maxHp = getHealth(char)
local pct = math.clamp(hp / math.max(1, maxHp), 0, 1)
set.health.Position = Vector2.new(centerX + w/2 + 4, topY)
set.health.Text = string.format("%d", math.floor(hp + 0.5))
set.health.Color = Color3.fromRGB(
math.floor(255 * (1 - pct)),
math.floor(255 * pct),
90)
set.health.Visible = true
else
set.health.Visible = false
end
if Config.esp.distance then
local myRoot = getMyRoot()
local d = myRoot
and math.floor((myRoot.Position - root.Position).Magnitude)
or 0
set.dist.Position = Vector2.new(centerX, bottomY + 4)
set.dist.Text = string.format("[%d]", d)
set.dist.Visible = true
else
set.dist.Visible = false
end
if Config.esp.tracers then
local from
if Config.esp.tracerFrom == "Mouse" then
from = Vector2.new(mouse.X, mouse.Y)
else
from = Vector2.new(viewportSize.X / 2, viewportSize.Y)
end
set.tracer.From = from
set.tracer.To = Vector2.new(centerX, bottomY)
set.tracer.Visible = true
else
set.tracer.Visible = false
end
else
for _, o in pairs(set) do o.Visible = false end
end
end
end
end
end
end)
Players.PlayerRemoving:Connect(function(plr)
removePlayerDrawings(plr)
end)
--=============================================================
-- TERMINATE
--=============================================================
local terminateBtn = make("TextButton", {
Parent = footer,
Size = UDim2.new(0, 130, 1, 0),
Position = UDim2.new(1, -130, 0, 0),
BackgroundColor3 = COL.danger,
BorderSizePixel = 0,
Text = "TERMINATE",
TextColor3 = COL.text,
Font = Enum.Font.GothamBold, TextSize = 12,
AutoButtonColor = false,
})
corner(terminateBtn, 6)
terminateBtn.MouseEnter:Connect(function()
terminateBtn.BackgroundColor3 = Color3.fromRGB(240, 90, 120)
end)
terminateBtn.MouseLeave:Connect(function()
terminateBtn.BackgroundColor3 = COL.danger
end)
local terminated = false
local function terminate()
if terminated then return end
terminated = true
if renderConn then renderConn:Disconnect() end
cleanupFly()
-- Restore any humanoid we're currently overriding.
local char = LP.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if hum then
if speedWasOn then hum.WalkSpeed = speedPrev end
if jumpWasOn then
hum.UseJumpPower = jumpPrev.UseJumpPower
hum.JumpPower = jumpPrev.JumpPower
hum.JumpHeight = jumpPrev.JumpHeight
end
end
for _, set in pairs(Drawings.players) do
for _, o in pairs(set) do
pcall(function() o:Remove() end)
end
end
Drawings.players = {}
pcall(function() Drawings.fov:Remove() end)
if gui then gui:Destroy() end
gui = nil
_G.CW_Cheat = nil
if EX.getgenv then
local ok, env = pcall(EX.getgenv)
if ok and env then env.CW_Cheat = nil end
end
print("[CW_Cheat] terminated.")
end
terminateBtn.MouseButton1Click:Connect(terminate)
--=============================================================
-- BOOT
--=============================================================
showPage(pageAim, navButtons[1])
_G.CW_Cheat = { Config = Config, terminate = terminate }
if EX.getgenv then
local ok, env = pcall(EX.getgenv)
if ok and env then env.CW_Cheat = _G.CW_Cheat end
endReview 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