-- [[ 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=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 end