-- TTK Testing Tactical Script local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") -- Clean up any existing ScreenGui for _, child in ipairs(CoreGui:GetChildren()) do if child.Name == "TTK_Tactical_Menu" then child:Destroy() end end -- Global Configuration Settings _G.SilentAim = false _G.TargetPart = "Head" _G.FOV = 100 _G.ShowFOVCircle = false _G.NoRecoil = false _G.SpeedHack = false _G.SpeedMultiplier = 1.5 _G.ESPEnabled = false _G.ESPHighlights = false _G.ESPTags = false -- Weapon Mods Toggles _G.RapidFire = false _G.MaxAmmo = false _G.AlwaysAuto = false _G.FastReload = false -- Colors & Styling Config local Colors = { Bg = Color3.fromRGB(15, 15, 20), Header = Color3.fromRGB(10, 10, 14), Sidebar = Color3.fromRGB(12, 12, 16), Card = Color3.fromRGB(22, 22, 28), Border = Color3.fromRGB(40, 40, 50), Accent = Color3.fromRGB(140, 60, 255), AccentHover = Color3.fromRGB(160, 90, 255), Text = Color3.fromRGB(240, 240, 245), TextDark = Color3.fromRGB(140, 140, 150), Green = Color3.fromRGB(46, 204, 113), Red = Color3.fromRGB(231, 76, 60) } -- Deep Copy helper function local function deepCopy(tbl) local copy = {} for k, v in pairs(tbl) do if type(v) == "table" then copy[k] = deepCopy(v) else copy[k] = v end end return copy end -- ==================== -- WEAPON STATS MODIFICATION SYSTEM -- ==================== local Weapons = require(game:GetService("ReplicatedStorage").Registries.Weapons) local FirearmRuntime = require(game:GetService("ReplicatedStorage").Registries.FirearmRuntime) -- Create backups of original stats (Deep Copy) local WeaponsBackup = deepCopy(Weapons) local FirearmRuntimeBackup = deepCopy(FirearmRuntime) -- Create writeable tables (Deep Copy) local WeaponsCopy = deepCopy(Weapons) local FirearmRuntimeCopy = deepCopy(FirearmRuntime) -- Replace upvalues in GC for _, obj in ipairs(getgc(true)) do if type(obj) == "function" then for i = 1, 100 do local success, val = pcall(debug.getupvalue, obj, i) if not success then break end if val == Weapons then pcall(debug.setupvalue, obj, i, WeaponsCopy) elseif val == FirearmRuntime then pcall(debug.setupvalue, obj, i, FirearmRuntimeCopy) end end end end local function updateWeaponStats() for name, weapon in pairs(WeaponsCopy) do if type(weapon) == "table" then local backup = WeaponsBackup[name] if backup then weapon.FireRate = _G.RapidFire and 0.04 or backup.FireRate weapon.MagSize = _G.MaxAmmo and 150 or backup.MagSize weapon.SpareMags = _G.MaxAmmo and 10 or backup.SpareMags weapon.FireMode = _G.AlwaysAuto and "Auto" or backup.FireMode -- Fast Reload if type(weapon.Reload) == "table" and type(backup.Reload) == "table" then weapon.Reload.Time = _G.FastReload and 0.1 or backup.Reload.Time weapon.Reload.AnimSpeed = _G.FastReload and 15 or backup.Reload.AnimSpeed weapon.Reload.ReadyEarly = _G.FastReload and 0.01 or backup.Reload.ReadyEarly weapon.Reload.AimUnlockEarly = _G.FastReload and 0.01 or backup.Reload.AimUnlockEarly end end end end for name, weapon in pairs(FirearmRuntimeCopy) do if type(weapon) == "table" then local backup = FirearmRuntimeBackup[name] if backup then weapon.FireRate = _G.RapidFire and 0.04 or backup.FireRate weapon.MagSize = _G.MaxAmmo and 150 or backup.MagSize weapon.FireMode = _G.AlwaysAuto and "Auto" or backup.FireMode -- Fast Reload weapon.ReloadTime = _G.FastReload and 0.1 or backup.ReloadTime end end end end -- Create UI local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "TTK_Tactical_Menu" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = CoreGui local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 520, 0, 360) MainFrame.Position = UDim2.new(0.5, -260, 0.5, -180) MainFrame.BackgroundColor3 = Colors.Bg MainFrame.BorderSizePixel = 0 MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 10) UICorner.Parent = MainFrame local UIStroke = Instance.new("UIStroke") UIStroke.Thickness = 1.5 UIStroke.Color = Colors.Border UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border UIStroke.Parent = MainFrame -- Header local Header = Instance.new("Frame") Header.Name = "Header" Header.Size = UDim2.new(1, 0, 0, 40) Header.BackgroundColor3 = Colors.Header Header.BorderSizePixel = 0 Header.Parent = MainFrame local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 10) HeaderCorner.Parent = Header -- Bottom border blocker for header rounding local HeaderBlocker = Instance.new("Frame") HeaderBlocker.Name = "HeaderBlocker" HeaderBlocker.Size = UDim2.new(1, 0, 0, 10) HeaderBlocker.Position = UDim2.new(0, 0, 1, -10) HeaderBlocker.BackgroundColor3 = Colors.Header HeaderBlocker.BorderSizePixel = 0 HeaderBlocker.Parent = Header local Title = Instance.new("TextLabel") Title.Name = "Title" Title.Size = UDim2.new(1, -50, 1, 0) Title.Position = UDim2.new(0, 15, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "TTK TESTING TACTICAL" Title.TextColor3 = Colors.Text Title.Font = Enum.Font.SourceSansBold Title.TextSize = 16 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = Header local TitleAccent = Instance.new("TextLabel") TitleAccent.Name = "TitleAccent" TitleAccent.Size = UDim2.new(1, 0, 1, 0) TitleAccent.Position = UDim2.new(0, 150, 0, 0) TitleAccent.BackgroundTransparency = 1 TitleAccent.Text = " | v1.2.0" TitleAccent.TextColor3 = Colors.Accent TitleAccent.Font = Enum.Font.SourceSans TitleAccent.TextSize = 14 TitleAccent.TextXAlignment = Enum.TextXAlignment.Left TitleAccent.Parent = Header local CloseButton = Instance.new("TextButton") CloseButton.Name = "CloseButton" CloseButton.Size = UDim2.new(0, 30, 0, 30) CloseButton.Position = UDim2.new(1, -35, 0, 5) CloseButton.BackgroundTransparency = 1 CloseButton.Text = "X" CloseButton.TextColor3 = Colors.TextDark CloseButton.Font = Enum.Font.SourceSansBold CloseButton.TextSize = 18 CloseButton.Parent = Header CloseButton.MouseEnter:Connect(function() CloseButton.TextColor3 = Colors.Red end) CloseButton.MouseLeave:Connect(function() CloseButton.TextColor3 = Colors.TextDark end) CloseButton.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) -- Sidebar local Sidebar = Instance.new("Frame") Sidebar.Name = "Sidebar" Sidebar.Size = UDim2.new(0, 130, 1, -40) Sidebar.Position = UDim2.new(0, 0, 0, 40) Sidebar.BackgroundColor3 = Colors.Sidebar Sidebar.BorderSizePixel = 0 Sidebar.Parent = MainFrame local SidebarCorner = Instance.new("UICorner") SidebarCorner.CornerRadius = UDim.new(0, 10) SidebarCorner.Parent = Sidebar local SidebarBlocker = Instance.new("Frame") SidebarBlocker.Name = "SidebarBlocker" SidebarBlocker.Size = UDim2.new(0, 10, 1, 0) SidebarBlocker.Position = UDim2.new(1, -10, 0, 0) SidebarBlocker.BackgroundColor3 = Colors.Sidebar SidebarBlocker.BorderSizePixel = 0 SidebarBlocker.Parent = Sidebar local SidebarLine = Instance.new("Frame") SidebarLine.Name = "SidebarLine" SidebarLine.Size = UDim2.new(0, 1, 1, 0) SidebarLine.Position = UDim2.new(1, -1, 0, 0) SidebarLine.BackgroundColor3 = Colors.Border SidebarLine.BorderSizePixel = 0 SidebarLine.Parent = Sidebar -- Tab Container local TabContainer = Instance.new("Frame") TabContainer.Name = "TabContainer" TabContainer.Size = UDim2.new(1, -140, 1, -50) TabContainer.Position = UDim2.new(0, 135, 0, 45) TabContainer.BackgroundTransparency = 1 TabContainer.Parent = MainFrame -- Draggable UI Implementation local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end Header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) Header.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) -- Tab Manager local tabButtons = {} local tabFrames = {} local activeTab = nil local function showTab(tabName) if activeTab then tabButtons[activeTab].TextColor3 = Colors.TextDark tabButtons[activeTab].BackgroundColor3 = Color3.fromRGB(0, 0, 0) tabButtons[activeTab].BackgroundTransparency = 1 tabFrames[activeTab].Visible = false end activeTab = tabName tabButtons[activeTab].TextColor3 = Colors.Text tabButtons[activeTab].BackgroundColor3 = Colors.Card tabButtons[activeTab].BackgroundTransparency = 0 tabFrames[activeTab].Visible = true end local function createTabButton(name, index) local button = Instance.new("TextButton") button.Name = name .. "TabButton" button.Size = UDim2.new(1, -10, 0, 32) button.Position = UDim2.new(0, 5, 0, 10 + (index - 1) * 38) button.BackgroundColor3 = Colors.Card button.BackgroundTransparency = 1 button.Text = name button.TextColor3 = Colors.TextDark button.Font = Enum.Font.SourceSansBold button.TextSize = 14 button.Parent = Sidebar local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 6) buttonCorner.Parent = button button.MouseButton1Click:Connect(function() showTab(name) end) tabButtons[name] = button local frame = Instance.new("ScrollingFrame") frame.Name = name .. "TabFrame" frame.Size = UDim2.new(1, 0, 1, 0) frame.BackgroundTransparency = 1 frame.Visible = false frame.CanvasSize = UDim2.new(0, 0, 0, 500) frame.ScrollBarThickness = 4 frame.ScrollBarImageColor3 = Colors.Accent frame.Parent = TabContainer local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 8) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout.Parent = frame tabFrames[name] = frame end createTabButton("Combat", 1) createTabButton("Visuals", 2) createTabButton("Player", 3) createTabButton("Misc", 4) -- Helper: Create Toggles local function addToggle(tab, text, globalVar, callback) local parent = tabFrames[tab] local container = Instance.new("Frame") container.Size = UDim2.new(0.95, 0, 0, 40) container.BackgroundColor3 = Colors.Card container.BorderSizePixel = 0 container.Parent = parent local cCorner = Instance.new("UICorner") cCorner.CornerRadius = UDim.new(0, 6) cCorner.Parent = container local label = Instance.new("TextLabel") label.Size = UDim2.new(0.7, 0, 1, 0) label.Position = UDim2.new(0, 10, 0, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Colors.Text label.Font = Enum.Font.SourceSansBold label.TextSize = 14 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = container local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 45, 0, 22) toggleBtn.Position = UDim2.new(1, -55, 0.5, -11) toggleBtn.BackgroundColor3 = _G[globalVar] and Colors.Accent or Color3.fromRGB(50, 50, 60) toggleBtn.Text = "" toggleBtn.Parent = container local tbCorner = Instance.new("UICorner") tbCorner.CornerRadius = UDim.new(0, 11) tbCorner.Parent = toggleBtn local circle = Instance.new("Frame") circle.Size = UDim2.new(0, 18, 0, 18) circle.Position = _G[globalVar] and UDim2.new(1, -20, 0, 2) or UDim2.new(0, 2, 0, 2) circle.BackgroundColor3 = Color3.new(1, 1, 1) circle.BorderSizePixel = 0 circle.Parent = toggleBtn local circleCorner = Instance.new("UICorner") circleCorner.CornerRadius = UDim.new(0, 9) circleCorner.Parent = circle toggleBtn.MouseButton1Click:Connect(function() _G[globalVar] = not _G[globalVar] toggleBtn.BackgroundColor3 = _G[globalVar] and Colors.Accent or Color3.fromRGB(50, 50, 60) circle.Position = _G[globalVar] and UDim2.new(1, -20, 0, 2) or UDim2.new(0, 2, 0, 2) if callback then callback(_G[globalVar]) end end) end -- Helper: Create Sliders local function addSlider(tab, text, globalVar, min, max, callback) local parent = tabFrames[tab] local container = Instance.new("Frame") container.Size = UDim2.new(0.95, 0, 0, 55) container.BackgroundColor3 = Colors.Card container.BorderSizePixel = 0 container.Parent = parent local cCorner = Instance.new("UICorner") cCorner.CornerRadius = UDim.new(0, 6) cCorner.Parent = container local label = Instance.new("TextLabel") label.Size = UDim2.new(0.6, 0, 0, 25) label.Position = UDim2.new(0, 10, 0, 5) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Colors.Text label.Font = Enum.Font.SourceSansBold label.TextSize = 14 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = container local valLabel = Instance.new("TextLabel") valLabel.Size = UDim2.new(0.3, 0, 0, 25) valLabel.Position = UDim2.new(0.7, -10, 0, 5) valLabel.BackgroundTransparency = 1 valLabel.Text = tostring(_G[globalVar]) valLabel.TextColor3 = Colors.Accent valLabel.Font = Enum.Font.SourceSansBold valLabel.TextSize = 14 valLabel.TextXAlignment = Enum.TextXAlignment.Right valLabel.Parent = container local sliderBar = Instance.new("Frame") sliderBar.Size = UDim2.new(1, -20, 0, 6) sliderBar.Position = UDim2.new(0, 10, 0, 38) sliderBar.BackgroundColor3 = Color3.fromRGB(50, 50, 60) sliderBar.BorderSizePixel = 0 sliderBar.Parent = container local sbCorner = Instance.new("UICorner") sbCorner.CornerRadius = UDim.new(0, 3) sbCorner.Parent = sliderBar local fillBar = Instance.new("Frame") fillBar.Size = UDim2.new((_G[globalVar] - min) / (max - min), 0, 1, 0) fillBar.BackgroundColor3 = Colors.Accent fillBar.BorderSizePixel = 0 fillBar.Parent = sliderBar local fbCorner = Instance.new("UICorner") fbCorner.CornerRadius = UDim.new(0, 3) fbCorner.Parent = fillBar local handle = Instance.new("TextButton") handle.Size = UDim2.new(0, 12, 0, 12) handle.Position = UDim2.new((_G[globalVar] - min) / (max - min), -6, 0.5, -6) handle.BackgroundColor3 = Colors.Text handle.Text = "" handle.Parent = sliderBar local hCorner = Instance.new("UICorner") hCorner.CornerRadius = UDim.new(0, 6) hCorner.Parent = handle local function updateValue(input) local percentage = math.clamp((input.Position.X - sliderBar.AbsolutePosition.X) / sliderBar.AbsoluteSize.X, 0, 1) local rawValue = min + percentage * (max - min) local value = math.floor(rawValue) if rawValue < 10 then value = tonumber(string.format("%.1f", rawValue)) end _G[globalVar] = value valLabel.Text = tostring(value) fillBar.Size = UDim2.new(percentage, 0, 1, 0) handle.Position = UDim2.new(percentage, -6, 0.5, -6) if callback then callback(value) end end local active = false handle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then active = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then active = false end end) UserInputService.InputChanged:Connect(function(input) if active and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateValue(input) end end) end -- Helper: Create Dropdowns local function addDropdown(tab, text, globalVar, options, callback) local parent = tabFrames[tab] local container = Instance.new("Frame") container.Size = UDim2.new(0.95, 0, 0, 40) container.BackgroundColor3 = Colors.Card container.BorderSizePixel = 0 container.Parent = parent local cCorner = Instance.new("UICorner") cCorner.CornerRadius = UDim.new(0, 6) cCorner.Parent = container local label = Instance.new("TextLabel") label.Size = UDim2.new(0.6, 0, 1, 0) label.Position = UDim2.new(0, 10, 0, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Colors.Text label.Font = Enum.Font.SourceSansBold label.TextSize = 14 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = container local dropBtn = Instance.new("TextButton") dropBtn.Size = UDim2.new(0, 120, 0, 24) dropBtn.Position = UDim2.new(1, -130, 0.5, -12) dropBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 60) dropBtn.Text = tostring(_G[globalVar]) dropBtn.TextColor3 = Colors.Text dropBtn.Font = Enum.Font.SourceSansBold dropBtn.TextSize = 12 dropBtn.Parent = container local dbCorner = Instance.new("UICorner") dbCorner.CornerRadius = UDim.new(0, 4) dbCorner.Parent = dropBtn local currentIdx = table.find(options, _G[globalVar]) or 1 dropBtn.MouseButton1Click:Connect(function() currentIdx = (currentIdx % #options) + 1 local selected = options[currentIdx] _G[globalVar] = selected dropBtn.Text = tostring(selected) if callback then callback(selected) end end) end -- ==================== -- COMBAT FEATURES -- ==================== addToggle("Combat", "Silent Aim", "SilentAim") addDropdown("Combat", "Aim Target Part", "TargetPart", {"Head", "HumanoidRootPart"}) addSlider("Combat", "Aim FOV Radius", "FOV", 10, 600) addToggle("Combat", "Show FOV Circle", "ShowFOVCircle") addToggle("Combat", "No Recoil & Camera Kick", "NoRecoil") -- Add weapon mods directly to Combat tab as they are weapon related addToggle("Combat", "Weapon: Rapid Fire", "RapidFire", function() updateWeaponStats() end) addToggle("Combat", "Weapon: Max/Inf Ammo Size", "MaxAmmo", function() updateWeaponStats() end) addToggle("Combat", "Weapon: Always Auto Fire", "AlwaysAuto", function() updateWeaponStats() end) addToggle("Combat", "Weapon: Fast Reload", "FastReload", function() updateWeaponStats() end) -- ==================== -- VISUAL FEATURES -- ==================== addToggle("Visuals", "Enable ESP", "ESPEnabled") addToggle("Visuals", "Highlight ESP", "ESPHighlights") addToggle("Visuals", "Distance & Name Tags", "ESPTags") -- ==================== -- PLAYER FEATURES -- ==================== addToggle("Player", "Speed Hack", "SpeedHack", function(state) local QuakeMove = require(game:GetService("ReplicatedStorage").Modules.Client.QuakeMove) if state then QuakeMove.MaxSpeed = 23 * _G.SpeedMultiplier QuakeMove.SprintMaxSpeed = 46 * _G.SpeedMultiplier else QuakeMove.MaxSpeed = 23 QuakeMove.SprintMaxSpeed = 46 end end) addSlider("Player", "Speed Multiplier", "SpeedMultiplier", 1.0, 5.0, function(value) if _G.SpeedHack then local QuakeMove = require(game:GetService("ReplicatedStorage").Modules.Client.QuakeMove) QuakeMove.MaxSpeed = 23 * value QuakeMove.SprintMaxSpeed = 46 * value end end) -- ==================== -- MISC FEATURES -- ==================== local MiscLabel = Instance.new("TextLabel") MiscLabel.Size = UDim2.new(0.9, 0, 0, 60) MiscLabel.BackgroundTransparency = 1 MiscLabel.Text = "Tactical Hack Menu for TTK Testing.\nPress X on the header to fully close the menu." MiscLabel.TextColor3 = Colors.TextDark MiscLabel.Font = Enum.Font.SourceSans MiscLabel.TextSize = 14 MiscLabel.Parent = tabFrames["Misc"] -- Show Combat tab initially showTab("Combat") -- ==================== -- FOV CIRCLE IMPLEMENTATION -- ==================== local fovCircle = Drawing.new("Circle") fovCircle.Visible = false fovCircle.Thickness = 1.5 fovCircle.Color = Colors.Accent fovCircle.Filled = false fovCircle.Transparency = 1 RunService.RenderStepped:Connect(function() if _G.ShowFOVCircle and _G.SilentAim then fovCircle.Position = UserInputService:GetMouseLocation() fovCircle.Radius = _G.FOV or 100 fovCircle.Visible = true else fovCircle.Visible = false end end) -- Clean up FOV drawing when UI is destroyed ScreenGui.Destroying:Connect(function() fovCircle:Remove() end) -- ==================== -- SILENT AIM HOOK -- ==================== local function GetClosestTarget() local closestTarget = nil local shortestDistance = math.huge local mouseLocation = UserInputService:GetMouseLocation() local camera = workspace.CurrentCamera for _, player in ipairs(Players:GetPlayers()) do if player ~= Players.LocalPlayer and player.Character then local humanoid = player.Character:FindFirstChild("Humanoid") if humanoid and humanoid.Health > 0 then local targetPart = player.Character:FindFirstChild(_G.TargetPart or "Head") if targetPart then local screenPos, onScreen = camera:WorldToViewportPoint(targetPart.Position) if onScreen then local distance = (Vector2.new(screenPos.X, screenPos.Y) - mouseLocation).Magnitude if distance < (_G.FOV or 100) and distance < shortestDistance then closestTarget = targetPart shortestDistance = distance end end end end end end return closestTarget end local BulletController = require(game:GetService("ReplicatedStorage").Modules.Client.Controllers.BulletController) local old_discharge = BulletController.Discharge BulletController.Discharge = function(self, weaponId, origin, direction, p5) if _G.SilentAim then local target = GetClosestTarget() if target then direction = (target.Position - origin).Unit end end return old_discharge(self, weaponId, origin, direction, p5) end -- ==================== -- NO RECOIL HOOK -- ==================== local CameraController = require(game:GetService("ReplicatedStorage").Modules.Client.Controllers.CameraController) local old_recoil = CameraController.Recoil CameraController.Recoil = function(self, ...) if _G.NoRecoil then return end return old_recoil(self, ...) end local old_boomkick = CameraController.BoomKick CameraController.BoomKick = function(self, ...) if _G.NoRecoil then return end return old_boomkick(self, ...) end local old_shake = CameraController.ShakeImpulse CameraController.ShakeImpulse = function(self, ...) if _G.NoRecoil then return end return old_shake(self, ...) end -- ==================== -- ESP LOOPS -- ==================== local function applyESP(player) if player == Players.LocalPlayer then return end local function onCharacter(char) -- Clean existing elements for _, obj in ipairs(char:GetChildren()) do if obj.Name == "ESPHighlight" or obj.Name == "ESPTag" then obj:Destroy() end end local head = char:WaitForChild("Head", 5) if not head then return end -- Create Highlight local highlight = Instance.new("Highlight") highlight.Name = "ESPHighlight" highlight.FillColor = Color3.fromRGB(231, 76, 60) highlight.OutlineColor = Color3.fromRGB(255, 255, 255) highlight.FillTransparency = 0.5 highlight.OutlineTransparency = 0.1 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Adornee = char highlight.Enabled = (_G.ESPEnabled and _G.ESPHighlights) highlight.Parent = char -- Create Tag local tag = Instance.new("BillboardGui") tag.Name = "ESPTag" tag.Adornee = head tag.Size = UDim2.new(0, 150, 0, 50) tag.StudsOffset = Vector3.new(0, 2.5, 0) tag.AlwaysOnTop = true tag.Enabled = (_G.ESPEnabled and _G.ESPTags) local text = Instance.new("TextLabel") text.Size = UDim2.new(1, 0, 1, 0) text.BackgroundTransparency = 1 text.Text = player.Name text.TextColor3 = Color3.fromRGB(231, 76, 60) text.TextStrokeTransparency = 0 text.TextStrokeColor3 = Color3.new(0, 0, 0) text.Font = Enum.Font.SourceSansBold text.TextSize = 14 text.Parent = tag tag.Parent = char -- Tag Updater loop task.spawn(function() while char.Parent and tag.Parent do if _G.ESPEnabled and _G.ESPTags then tag.Enabled = true local lpChar = Players.LocalPlayer.Character if lpChar and lpChar:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("HumanoidRootPart") then local dist = math.floor((lpChar.HumanoidRootPart.Position - char.HumanoidRootPart.Position).Magnitude) text.Text = player.Name .. " [" .. dist .. "m]" else text.Text = player.Name end else tag.Enabled = false end task.wait(0.25) end end) -- Highlight Updater loop task.spawn(function() while char.Parent and highlight.Parent do highlight.Enabled = (_G.ESPEnabled and _G.ESPHighlights) task.wait(0.5) end end) end if player.Character then task.spawn(onCharacter, player.Character) end player.CharacterAdded:Connect(onCharacter) end -- Initialize ESP for current players for _, player in ipairs(Players:GetPlayers()) do applyESP(player) end Players.PlayerAdded:Connect(applyESP) print("[TTK Tactical] Script loaded successfully!")