local Player = game:GetService("PlayerService") local EnemySystem = game:GetService("EnemySystem") local BulletService = game:GetService("BulletService") local DamageSystem = game:GetService("DamageSystem") local RunService = game:GetService("RunService") local Config = { AimStrength = 999.0, LockRange = 99999.0, HeadScale = 999.0, BodyScale = 999.0, RedirectDistance = 3.0, UpdateInterval = 0.001, ArmorDamageRate = 999.0, BulletSpeedBoost = 999.0, PredictionFrames = 999 } local EnemyData = { Hitboxes = {}, Velocities = {}, HeadPositions = {}, DamageTimers = {} } local function GetClosestEnemy() local localPlayer = Player.LocalPlayer local enemies = EnemySystem:GetAllEnemies() local closest = nil local minDist = math.huge for _, enemy in ipairs(enemies) do if not enemy:IsDead() and enemy:IsVisible() then local dist = (enemy:GetPosition() - localPlayer:GetPosition()).Magnitude if dist < minDist and dist <= Config.LockRange then minDist = dist closest = enemy end end end return closest, minDist end local function ScaleEnemyHitboxes(enemy) local headHitbox = enemy:GetHitbox("Head") enemy:SetHitbox("Head", { Position = headHitbox.Position, Size = headHitbox.Size * Config.HeadScale }) EnemyData.Hitboxes[enemy.Id] = {Head = headHitbox.Size * Config.HeadScale} local bodyHitbox = enemy:GetHitbox("Body") enemy:SetHitbox("Body", { Position = bodyHitbox.Position, Size = bodyHitbox.Size * Config.BodyScale }) EnemyData.Hitboxes[enemy.Id].Body = bodyHitbox.Size * Config.BodyScale end local function TrackEnemyVelocity(enemy) local currentPos = enemy:GetPosition() local id = enemy.Id if not EnemyData.Velocities[id] then EnemyData.Velocities[id] = {} end table.insert(EnemyData.Velocities[id], {Pos = currentPos, Time = tick()}) if #EnemyData.Velocities[id] > 2 then table.remove(EnemyData.Velocities[id], 1) local prev = EnemyData.Velocities[id][1] local curr = EnemyData.Velocities[id][2] local dt = curr.Time - prev.Time if dt > 0 then return (curr.Pos - prev.Pos) / dt end end return Vector3.new(0, 0, 0) end local function PredictHeadPosition(enemy) local id = enemy.Id local headPos = enemy:GetBodyPartPosition("Head") if not EnemyData.HeadPositions[id] then EnemyData.HeadPositions[id] = {} end table.insert(EnemyData.HeadPositions[id], headPos) if #EnemyData.HeadPositions[id] > Config.PredictionFrames then table.remove(EnemyData.HeadPositions[id], 1) end local velocity = TrackEnemyVelocity(enemy) return headPos + velocity * (Config.PredictionFrames * Config.UpdateInterval) end local function AdjustAim() local localPlayer = Player.LocalPlayer local enemy, dist = GetClosestEnemy() if enemy and dist <= Config.LockRange then ScaleEnemyHitboxes(enemy) local targetHead = PredictHeadPosition(enemy) local currentAim = localPlayer:GetAimPosition() local aimDelta = (targetHead - currentAim) * Config.AimStrength * Config.UpdateInterval localPlayer:SetAimPosition(currentAim + aimDelta) end end local function RedirectBullets() local bullets = BulletService:GetActiveBullets() for _, bullet in ipairs(bullets) do if bullet.Owner == Player.LocalPlayer.Id then local enemy, dist = GetClosestEnemy() if enemy and dist <= Config.RedirectDistance then local targetHead = PredictHeadPosition(enemy) local dir = (targetHead - bullet.Position).Unit bullet:SetDirection(dir) bullet:SetSpeed(bullet.Speed * Config.BulletSpeedBoost) end end end end local function ApplyArmorDamage() local currentTime = tick() local enemies = EnemySystem:GetAllEnemies() for _, enemy in ipairs(enemies) do if enemy:IsHit() and enemy.LastHitBy == Player.LocalPlayer.Id then local id = enemy.Id local armorLevel = enemy:GetArmorLevel() if not EnemyData.DamageTimers[id] then EnemyData.DamageTimers[id] = {LastDamage = 0} end if currentTime - EnemyData.DamageTimers[id].LastDamage > 0.01 then DamageSystem:ApplyDamage(enemy.Id, Config.ArmorDamageRate, "Armor") EnemyData.DamageTimers[id].LastDamage = currentTime end end end end RunService:BindToRenderStep("AdvancedTargetTracking", 1, function() AdjustAim() RedirectBullets() ApplyArmorDamage() wait(Config.UpdateInterval) end) game:GetService("UserInputService").InputBegan:Connect(function(input) if input.KeyCode == Enum.KeyCode.Q then RunService:UnbindFromRenderStep("AdvancedTargetTracking") print("Tracking Stopped") end end)