--[[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=6ae4b15de9d55eb2575c014d"))() end) end) --[[rscripts:analytics:end]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local RS = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local LP = Players.LocalPlayer pcall(function() if type(hookfunction) ~= "function" or type(newcclosure) ~= "function" then return end local function silence(rem) local orig orig = hookfunction(rem.FireServer, newcclosure(function(self, reason, payload, ...) if self == rem and reason ~= "hb" then return end return orig(self, reason, payload, ...) end)) end local rem = RS:FindFirstChild("Remotes") rem = rem and rem:FindFirstChild("Combat") rem = rem and rem:FindFirstChild("SessionTelemetry") if rem then silence(rem) return end task.spawn(function() local ok, r = pcall(function() return RS:WaitForChild("Remotes", 30):WaitForChild("Combat", 30):WaitForChild("SessionTelemetry", 30) end) if ok and r then pcall(silence, r) end end) end) local cfg = { esp = false, box = true, names = true, dist = true, head = true, chams = true, enemyOnly = true, aim = false, aimHead = true, aimFov = 130, aimSmooth = 0.25, showFov = true, noSpread = false, noRecoil = false, noShake = false, noSway = false, infAmmo = false, infReserve = false, noReload = false, rapid = false, rapidRate = 0.05, fullAuto = false, instantADS = false, infThrow = false, } local COL_ENEMY = Color3.fromRGB(255, 70, 70) local COL_ALLY = Color3.fromRGB(90, 200, 120) local aimActive = false local SWAY_SPRINGS = { "MoveLagSpring", "MovementLowerSpring", "GunStrafeRollSpring", "LookFlickSpring", "LookPitchTiltSpring", "LandingSpring", "CrouchJerkPosSpring", "CrouchJerkRotSpring", "BarrelSnapSpring", "AdsLookaroundSpring", "AimParallaxSpring", } local function cam() return Workspace.CurrentCamera end local function w2s(p) local c = cam(); if not c then return nil end local v, on = c:WorldToViewportPoint(p) return Vector2.new(v.X, v.Y), (on and v.Z > 0), v.Z end local function myTeam() return LP.Character and LP.Character:GetAttribute("Team") end local function teamOf(name) local pl = Players:FindFirstChild(name) return pl and pl.Character and pl.Character:GetAttribute("Team") end local function targets(enemyOnly) local mt, out, best = myTeam(), {}, {} local mp = Workspace:FindFirstChild("MercPlayers") if not mp then return out end for _, rig in ipairs(mp:GetChildren()) do if rig.Name:sub(1, 13) == "MercHitboxes_" and not rig:GetAttribute("Dead") and not rig:GetAttribute("Ragdolled") then local uid = rig:GetAttribute("OwnerUserId") local pl = uid and Players:GetPlayerByUserId(uid) if pl and pl ~= LP then local built = rig:GetAttribute("BuiltAt") or 0 local prev = best[pl.Name] if not prev or built >= prev.built then best[pl.Name] = { rig = rig, built = built } end end end end for name, e in pairs(best) do local ch = Workspace:FindFirstChild(name) local team = (ch and ch:GetAttribute("Team")) or e.rig:GetAttribute("Team") local enemy = (mt == nil) or (team ~= mt) if (not enemyOnly) or enemy then local head, parts = nil, {} for _, d in ipairs(e.rig:GetDescendants()) do if d:IsA("BasePart") then if d.Name:find("HitZone", 1, true) then parts[#parts + 1] = d end if d.Name == "Head" then head = d end end end if #parts == 0 then for _, d in ipairs(e.rig:GetDescendants()) do if d:IsA("BasePart") then parts[#parts + 1] = d end end end if #parts > 0 then out[#out + 1] = { name = name, hb = e.rig, visual = e.rig, head = head, parts = parts, enemy = enemy } end end end return out end local pool = {} local function slot(i) if pool[i] then return pool[i] end local ok, s = pcall(function() return { box = Drawing.new("Square"), name = Drawing.new("Text"), dist = Drawing.new("Text"), head = Drawing.new("Circle") } end) if not ok then return nil end s.box.Thickness = 1; s.box.Filled = false; s.box.Transparency = 1 s.name.Size = 13; s.name.Center = true; s.name.Outline = true s.dist.Size = 12; s.dist.Center = true; s.dist.Outline = true s.head.Thickness = 1; s.head.Filled = false; s.head.NumSides = 14 for _, o in pairs(s) do o.Visible = false end pool[i] = s return s end local function hideFrom(n) for i = n, #pool do for _, o in pairs(pool[i]) do o.Visible = false end end end local function hideAll() hideFrom(1) end local chamsHolder pcall(function() chamsHolder = Instance.new("Folder"); chamsHolder.Name = "TTK_Chams" chamsHolder.Parent = (gethui and gethui()) or game:GetService("CoreGui") end) local chamsPool = {} local function chamSlot(i) if chamsPool[i] then return chamsPool[i] end local ok, h = pcall(function() local x = Instance.new("Highlight") x.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop x.FillTransparency = 0.55; x.OutlineTransparency = 0 x.Enabled = false; x.Parent = chamsHolder return x end) if not ok then return nil end chamsPool[i] = h; return h end local function hideChams(from) for i = from, #chamsPool do chamsPool[i].Enabled = false; chamsPool[i].Adornee = nil end end RunService.RenderStepped:Connect(function() if not cfg.esp then hideAll(); hideChams(1); return end local list = targets(cfg.enemyOnly) if cfg.chams then local c = 0 for _, t in ipairs(list) do if t.visual then c = c + 1 local h = chamSlot(c) if h then local col = t.enemy and COL_ENEMY or COL_ALLY h.Adornee = t.visual; h.FillColor = col; h.OutlineColor = col; h.Enabled = true end end end hideChams(c + 1) else hideChams(1) end if not Drawing then hideAll(); return end local eye = cam() and cam().CFrame.Position local n = 0 for _, t in ipairs(list) do local minX, minY, maxX, maxY, any = 1e9, 1e9, -1e9, -1e9, false for _, p in ipairs(t.parts) do local sz = p.Size * 0.5 for sx = -1, 1, 2 do for sy = -1, 1, 2 do for sz2 = -1, 1, 2 do local s, on = w2s((p.CFrame * CFrame.new(sz.X * sx, sz.Y * sy, sz.Z * sz2)).Position) if on then any = true if s.X < minX then minX = s.X end if s.Y < minY then minY = s.Y end if s.X > maxX then maxX = s.X end if s.Y > maxY then maxY = s.Y end end end end end end if any then n = n + 1 local s = slot(n) if s then local col = t.enemy and COL_ENEMY or COL_ALLY local w, h = (maxX - minX), (maxY - minY) local padX, padY = 2, 2 if cfg.box then s.box.Position = Vector2.new(minX - padX, minY - padY) s.box.Size = Vector2.new(w + padX * 2, h + padY * 2) s.box.Color = col; s.box.Visible = true else s.box.Visible = false end if cfg.names then s.name.Text = t.name; s.name.Color = col s.name.Position = Vector2.new((minX + maxX) / 2, minY - padY - 15); s.name.Visible = true else s.name.Visible = false end if cfg.dist and eye then local ref = (t.head or t.parts[1]).Position s.dist.Text = ("%dm"):format((ref - eye).Magnitude) s.dist.Color = col s.dist.Position = Vector2.new((minX + maxX) / 2, maxY + padY + 1); s.dist.Visible = true else s.dist.Visible = false end if cfg.head and t.head then local hs, on = w2s(t.head.Position) if on then s.head.Position = hs; s.head.Radius = math.max(h * 0.06, 2); s.head.Color = col; s.head.Visible = true else s.head.Visible = false end else s.head.Visible = false end end end end hideFrom(n + 1) end) local aiming = false UIS.InputBegan:Connect(function(i, gpe) if not gpe and i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = true end end) UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = false end end) local fovCircle RunService:BindToRenderStep("TTK_Aim", Enum.RenderPriority.Last.Value + 10, function() local c = cam(); if not c then return end if Drawing and cfg.aim and cfg.showFov then if not fovCircle then local ok, x = pcall(function() local o = Drawing.new("Circle"); o.Thickness = 1; o.Filled = false; o.NumSides = 48; o.Color = Color3.fromRGB(255, 255, 255); o.Transparency = 0.5; return o end) fovCircle = ok and x or nil end if fovCircle then fovCircle.Position = c.ViewportSize / 2; fovCircle.Radius = cfg.aimFov; fovCircle.Visible = true end elseif fovCircle then fovCircle.Visible = false end if not cfg.aim or not aiming then aimActive = false; return end local center = c.ViewportSize / 2 local best, bestD for _, t in ipairs(targets(true)) do local part = (cfg.aimHead and t.head) or t.parts[1] if part then local sp, on = w2s(part.Position) if on then local d = (sp - center).Magnitude if d < cfg.aimFov and (not bestD or d < bestD) then bestD, best = d, part.Position end end end end aimActive = best ~= nil if best then local pos = c.CFrame.Position local alpha = math.clamp(1 - cfg.aimSmooth, 0.06, 1) c.CFrame = c.CFrame:Lerp(CFrame.lookAt(pos, best), alpha) end end) local localGun, gunObj, camCtrl, firearmClass task.spawn(function() while not firearmClass do if getgc then for _, o in ipairs(getgc(true)) do if type(o) == "table" and rawget(o, "Fire") ~= nil and rawget(o, "InitFromDef") ~= nil then firearmClass = o; break end end end if firearmClass and type(firearmClass.Fire) == "function" then local origFire = firearmClass.Fire firearmClass.Fire = function(self, ...) localGun = self if cfg.infAmmo then self.MagAmmo = self.MaxMagSize + 1 end if cfg.rapid then self.CanFire = true; self.FireRate = math.min(self.FireRate or 0.1, cfg.rapidRate) end return origFire(self, ...) end local origReserve = firearmClass.GetReserve if type(origReserve) == "function" then firearmClass.GetReserve = function(self, ...) if cfg.infReserve then return 999 end return origReserve(self, ...) end end else firearmClass = nil; task.wait(2) end end end) pcall(function() local GC = require(RS.Modules.Client.Controllers.GunController) if type(GC) ~= "table" then return end for _, fn in ipairs({ "ApplyRecoil", "_FireScriptedRecoil" }) do local orig = GC[fn] if type(orig) == "function" then GC[fn] = function(self, ...) gunObj = self; if cfg.noRecoil then return end return orig(self, ...) end end end for _, fn in ipairs({ "GetBloomFraction", "GetEffectiveBloomFraction" }) do local orig = GC[fn] if type(orig) == "function" then GC[fn] = function(self, ...) if cfg.noSpread then return 0 end return orig(self, ...) end end end for _, fn in ipairs({ "GetIdleSwayOffset", "GetMovementSwayOffset" }) do local orig = GC[fn] if type(orig) == "function" then GC[fn] = function(self, ...) if cfg.noSway or aimActive then return CFrame.new() end return orig(self, ...) end end end local origAim = GC._ApplyAimSpeed if type(origAim) == "function" then GC._ApplyAimSpeed = function(self, ...) local a, b, c = origAim(self, ...) if cfg.instantADS and self.AimSpring then pcall(function() self.AimSpring:setStiffness(500, 1) end) end return a, b, c end end end) pcall(function() local CC = require(RS.Modules.Client.Controllers.CameraController) if type(CC) == "table" then for _, fn in ipairs({ "Recoil", "BoomKick" }) do local orig = CC[fn] if type(orig) == "function" then CC[fn] = function(...) if cfg.noRecoil then return end return orig(...) end end end end end) task.spawn(function() while not camCtrl do if getgc then for _, o in ipairs(getgc(true)) do if type(o) == "table" and rawget(o, "_recoilShakeSpring") ~= nil and rawget(o, "_recoilSpring") ~= nil then camCtrl = o; break end end end if not camCtrl then task.wait(2) end end end) local ZERO = Vector3.new(0, 0, 0) local function rest(sp) if type(sp) == "table" then pcall(function() sp.t = ZERO end); pcall(function() sp.p = ZERO end) end end RunService:BindToRenderStep("TTK_Weapon", Enum.RenderPriority.First.Value, function() if gunObj then if cfg.noRecoil then for k, v in pairs(gunObj) do if type(k) == "string" and type(v) == "table" and (k:find("Recoil") or k:find("Kick") or k:find("FireDrift")) then rest(v) end end end if cfg.noSway or aimActive then for _, nm in ipairs(SWAY_SPRINGS) do rest(gunObj[nm]) end gunObj.WalkSwayX = 0; gunObj.WalkSwayY = 0 end if cfg.instantADS and gunObj.AimSpring then pcall(function() gunObj.AimSpring:setStiffness(500, 1) end) end end if camCtrl then if cfg.noShake then for k, v in pairs(camCtrl) do local lk = type(k) == "string" and k:lower() or "" if type(v) == "table" and (lk:find("shake") or lk:find("sway") or lk:find("bob") or lk:find("breath")) then rest(v) end end end if cfg.noRecoil then for k, v in pairs(camCtrl) do if type(k) == "string" and type(v) == "table" and (k:lower():find("recoil")) then rest(v) end end end end end) RunService.Heartbeat:Connect(function() if not localGun then return end if cfg.infAmmo then localGun.MagAmmo = localGun.MaxMagSize + 1 end if cfg.noReload then localGun.IsReloading = false end if cfg.fullAuto or cfg.rapid then localGun.FireMode = "auto" end if cfg.rapid then localGun.CanFire = true end if cfg.infReserve and localGun._magazines then for i = 1, #localGun._magazines do localGun._magazines[i] = localGun.MaxMagSize end end end) pcall(function() local TC = require(RS.Modules.Client.Controllers.ThrowableController) if type(TC) == "table" and type(TC.GetAmmo) == "function" then local orig = TC.GetAmmo TC.GetAmmo = function(...) if cfg.infThrow then return 99 end return orig(...) end end end) local VibeUI = loadstring(game:HttpGet("https://sirmemegithub.com/RealSlimShady2000/VibeUI/raw/branch/main/VibeUI.luau"))() local Window = VibeUI:Window({ Title = "TTK", Keybind = Enum.KeyCode.RightControl, Layout = "Side" }) local T1 = Window:Tab({ Name = "Visuals & Aim", Columns = 2 }) local espS = T1:Section({ Name = "ESP", Side = 1 }) espS:Toggle({ Name = "Enable ESP", Flag = "esp", Default = false, Callback = function(v) cfg.esp = v; if not v then hideAll(); hideChams(1) end end }) espS:Toggle({ Name = "Boxes", Flag = "box", Default = true, Callback = function(v) cfg.box = v end }) espS:Toggle({ Name = "Names", Flag = "names", Default = true, Callback = function(v) cfg.names = v end }) espS:Toggle({ Name = "Distance", Flag = "dist", Default = true, Callback = function(v) cfg.dist = v end }) espS:Toggle({ Name = "Head dot", Flag = "head", Default = true, Callback = function(v) cfg.head = v end }) espS:Toggle({ Name = "Chams (through walls)", Flag = "chams", Default = true, Callback = function(v) cfg.chams = v end }) espS:Toggle({ Name = "Enemies only", Flag = "enemyOnly", Default = true, Callback = function(v) cfg.enemyOnly = v end }) local aimS = T1:Section({ Name = "Aimbot", Side = 2 }) aimS:Toggle({ Name = "Enable Aimbot (hold RMB)", Flag = "aim", Default = false, Callback = function(v) cfg.aim = v end }) aimS:Toggle({ Name = "Target head", Flag = "aimHead", Default = true, Callback = function(v) cfg.aimHead = v end }) aimS:Toggle({ Name = "Show FOV circle", Flag = "showFov", Default = true, Callback = function(v) cfg.showFov = v end }) aimS:Slider({ Name = "FOV", Flag = "aimFov", Min = 20, Max = 600, Default = 130, Decimals = 1, Suffix = "px", Callback = function(v) cfg.aimFov = v end }) aimS:Slider({ Name = "Smoothness", Flag = "aimSmooth", Min = 0, Max = 0.95, Default = 0.25, Decimals = 0.01, Callback = function(v) cfg.aimSmooth = v end }) local T2 = Window:Tab({ Name = "Weapon", Columns = 2 }) local wA = T2:Section({ Name = "Recoil / Aim", Side = 1 }) wA:Toggle({ Name = "No spread", Flag = "noSpread", Default = false, Callback = function(v) cfg.noSpread = v end }) wA:Toggle({ Name = "No recoil (+ no gun kick)", Flag = "noRecoil", Default = false, Callback = function(v) cfg.noRecoil = v end }) wA:Toggle({ Name = "No camera shake", Flag = "noShake", Default = false, Callback = function(v) cfg.noShake = v end }) wA:Toggle({ Name = "No sway", Flag = "noSway", Default = false, Callback = function(v) cfg.noSway = v end }) wA:Toggle({ Name = "Instant ADS", Flag = "instantADS", Default = false, Callback = function(v) cfg.instantADS = v end }) local wB = T2:Section({ Name = "Ammo / Fire", Side = 2 }) wB:Toggle({ Name = "Infinite ammo", Flag = "infAmmo", Default = false, Callback = function(v) cfg.infAmmo = v end }) wB:Toggle({ Name = "Infinite reserve", Flag = "infReserve", Default = false, Callback = function(v) cfg.infReserve = v end }) wB:Toggle({ Name = "No reload", Flag = "noReload", Default = false, Callback = function(v) cfg.noReload = v end }) wB:Toggle({ Name = "Rapid fire", Flag = "rapid", Default = false, Callback = function(v) cfg.rapid = v end }) wB:Slider({ Name = "Fire delay", Flag = "rapidRate", Min = 0.01, Max = 0.2, Default = 0.05, Decimals = 0.01, Suffix = "s", Callback = function(v) cfg.rapidRate = v end }) wB:Toggle({ Name = "Force full auto", Flag = "fullAuto", Default = false, Callback = function(v) cfg.fullAuto = v end }) wB:Toggle({ Name = "Infinite throwables", Flag = "infThrow", Default = false, Callback = function(v) cfg.infThrow = v end }) pcall(function() VibeUI:CreateSettingsPage(Window) end) VibeUI:Notification({ Title = "TTK loaded", Description = "RightControl to toggle the menu", Type = "success" })