-- [[ 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 ]] local Players = game:GetService("Players") local StarterGui = game:GetService("StarterGui") local _fllbkmgiz = function() local Players = game:GetService((function() local a={1077,1441,1298,1610,1350,1519,1532}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local UserInputService = game:GetService((function() local a={1142,1532,1350,1519,986,1467,1493,1558,1545,1116,1350,1519,1571,1402,1324,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local ReplicatedStorage = game:GetService((function() local a={1103,1350,1493,1441,1402,1324,1298,1545,1350,1337,1116,1545,1480,1519,1298,1376,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local RunService = game:GetService((function() local a={1103,1558,1467,1116,1350,1519,1571,1402,1324,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local VirtualInputManager = game:GetService((function() local a={1155,1402,1519,1545,1558,1298,1441,986,1467,1493,1558,1545,1038,1298,1467,1298,1376,1350,1519}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local PathfindingService = game:GetService((function() local a={1077,1298,1545,1389,1363,1402,1467,1337,1402,1467,1376,1116,1350,1519,1571,1402,1324,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- Global Feature Toggles Configuration Engine (Shared Memory Space) _G.UnifiedSettings = { silentAim = false, autoShoot = false, walkToEnemy = false, lockCrosshair = false, fireRate = 0.05, espEnabled = false, espBoxes = false, espTracers = false, espHealth = false, espSkeleton = false } _G.ForceMapUpdateSignal = false _G.CurrentPathfindingLockTarget = nil _G.LastTargetLockTime = 0 _G.Jmp, _G.Chk, _G.Nud, _G.CJmp, _G.CStf, _G.SDir, _G.LastRecalc = 0, 0, 0, 0, 0, 1, 0 _G.LastP = Vector3.new(0, 0, 0) _G.IsNud = false _G.CurrentWaypoints = {} _G.CurrentWaypointIndex = 1 local m_GameCharacterController = require(ReplicatedStorage.Client.Controllers.GameCharacterController) local m_CombatClient = require(ReplicatedStorage.Client.Madwork.CombatClient) local rayParams = RaycastParams.new() rayParams.FilterType = Enum.RaycastFilterType.Exclude local silentAimHooked = false workspace:GetPropertyChangedSignal((function() local a={908,1558,1519,1519,1350,1467,1545,908,1298,1454,1350,1519,1298}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()):Connect(function() Camera = workspace.CurrentCamera _G.Camera = workspace.CurrentCamera end) _G.Camera = Camera local function HasSpawnProtection(characterModel) if not characterModel then return false end if characterModel:FindFirstChildOfClass((function() local a={947,1480,1519,1324,1350,947,1402,1350,1441,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) then return true end return false end local function IsVisibleAndCleared(targetPart) if not _G.Camera or not targetPart or not targetPart.Parent then return false end local localChar = LocalPlayer.Character if not localChar then return false end local localRoot = localChar:FindFirstChild((function() local a={973,1558,1454,1298,1467,1480,1402,1337,1103,1480,1480,1545,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if not localRoot then return false end local ignoreList = {_G.Camera, localChar, targetPart.Parent} rayParams.FilterDescendantsInstances = ignoreList rayParams.IgnoreWater = true local camResult = workspace:Raycast(_G.Camera.CFrame.Position, targetPart.Position - _G.Camera.CFrame.Position, rayParams) if camResult ~= nil then return false end local bodyResult = workspace:Raycast(localRoot.Position, targetPart.Position - localRoot.Position, rayParams) if bodyResult ~= nil then return false end return true end _G.IsPlayerActive = function() local char = LocalPlayer.Character if not char then return false end local hum = char:FindFirstChildOfClass((function() local a={973,1558,1454,1298,1467,1480,1402,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if not hum or hum.Health <= 0 then return false end return true end _G.GetClosestEnemyHead = function() local localChar = LocalPlayer.Character local localRoot = localChar and localChar:FindFirstChild((function() local a={973,1558,1454,1298,1467,1480,1402,1337,1103,1480,1480,1545,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if not localRoot then return nil end local closest, closestDist = nil, math.huge for _, gameChar in ipairs(m_GameCharacterController.GetGameCharacters()) do if gameChar.Player == LocalPlayer then continue end if gameChar.GamePlayer:GetLocalRelationship() ~= (function() local a={934,1467,1350,1454,1610}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)() then continue end local char = gameChar.Character if not char or not char.IsAlive then continue end local model = char.Model if HasSpawnProtection(model) then continue end local head = model:FindFirstChild((function() local a={973,1350,1298,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) or model:FindFirstChild((function() local a={973,1558,1454,1298,1467,1480,1402,1337,1103,1480,1480,1545,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local humanoid = model:FindFirstChildOfClass((function() local a={973,1558,1454,1298,1467,1480,1402,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if head and humanoid and humanoid.Health > 0 then local dist = (localRoot.Position - head.Position).Magnitude if dist < closestDist then if _G.UnifiedSettings.autoShoot and not IsVisibleAndCleared(head) then continue end closestDist, closest = dist, head end end end return closest end _G.GetClosestVulnerableEnemyRoot = function() if _G.CurrentPathfindingLockTarget and os.clock() - _G.LastTargetLockTime < 3.0 then local parentModel = _G.CurrentPathfindingLockTarget.Parent local humanoid = parentModel and parentModel:FindFirstChildOfClass((function() local a={973,1558,1454,1298,1467,1480,1402,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if humanoid and humanoid.Health > 0 and not HasSpawnProtection(parentModel) then return _G.CurrentPathfindingLockTarget end end local closestEnemyPart, shortestDistance = nil, math.huge local localCharacter = LocalPlayer.Character local localRoot = localCharacter and localCharacter:FindFirstChild((function() local a={973,1558,1454,1298,1467,1480,1402,1337,1103,1480,1480,1545,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if not localRoot then return nil end for _, gameChar in ipairs(m_GameCharacterController.GetGameCharacters()) do if gameChar.Player == LocalPlayer then continue end if gameChar.GamePlayer:GetLocalRelationship() ~= (function() local a={934,1467,1350,1454,1610}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)() then continue end local char = gameChar.Character if not char or not char.IsAlive then continue end local model = char.Model if HasSpawnProtection(model) then continue end local enemyRoot = model:FindFirstChild((function() local a={973,1558,1454,1298,1467,1480,1402,1337,1103,1480,1480,1545,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local humanoid = model:FindFirstChildOfClass((function() local a={973,1558,1454,1298,1467,1480,1402,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if enemyRoot and humanoid and humanoid.Health > 0 then local dist = (localRoot.Position - enemyRoot.Position).Magnitude if dist < shortestDistance then shortestDistance, closestEnemyPart = dist, enemyRoot end end end if closestEnemyPart then _G.CurrentPathfindingLockTarget = closestEnemyPart _G.LastTargetLockTime = os.clock() end return closestEnemyPart end _G.InitializeSilentAimHook = function() if silentAimHooked then return end m_CombatClient.OnLocalEvent:Connect(function(combatEvent) if not _G.UnifiedSettings.silentAim then return end local head = _G.GetClosestEnemyHead() if not head then return end combatEvent.GameAction.Direction = (head.Position - combatEvent.GameAction.Position).Unit end) silentAimHooked = true end workspace.ChildAdded:Connect(function() _G.ForceMapUpdateSignal = true end) workspace.ChildRemoved:Connect(function() _G.ForceMapUpdateSignal = true end) -- Spawn Equip Trigger Hook local function triggerInstantEquip() task.wait(0.35) pcall(function() VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Q, false, game) task.wait(0.02) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Q, false, game) end) end LocalPlayer.CharacterAdded:Connect(triggerInstantEquip) if LocalPlayer.Character then task.spawn(triggerInstantEquip) end _G.IsVisibleAndCleared = IsVisibleAndCleared print((function() local a={1220,1077,1298,1519,1545,453,674,453,908,1480,1454,1493,1441,1350,1545,1350,1246,453,1038,1298,1545,1389,453,1298,1467,1324,1389,1480,1519,1532,453,1298,1467,1337,453,1584,1350,1298,1493,1480,1467,453,1545,1519,1402,1376,1376,1350,1519,1532,453,1402,1467,1402,1545,1402,1298,1441,1402,1623,1350,1337,635}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) -- ============================================================ -- RAYFIELD GEN2 UI -- ============================================================ local Rayfield = loadstring(game:HttpGet((function() local a={1389,1545,1545,1493,1532,791,648,648,1532,1402,1519,1402,1558,1532,635,1454,1350,1467,1558,648,1376,1350,1467,687}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()))() local window = Rayfield:CreateWindow({ name = (function() local a={1116,973,882,1103,1077}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), subtitle = (function() local a={895,1610,453,1441,1558,1389,1532,1324,1519,1402,1493,1545,1350,1519}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), }) local tab = window:CreateTab({ name = (function() local a={1038,1298,1402,1467}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), icon = 93364949241311 }) tab:CreateToggle({ name = (function() local a={934,1467,1298,1311,1441,1350,453,1116,1402,1441,1350,1467,1545,453,882,1402,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.silentAim = value if value then _G.InitializeSilentAimHook() end end, }) tab:CreateToggle({ name = (function() local a={882,1558,1545,1480,453,1116,1389,1480,1480,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.autoShoot = value if value then _G.InitializeSilentAimHook() end end, }) tab:CreateToggle({ name = (function() local a={1168,1298,1441,1428,453,1545,1480,453,934,1467,1350,1454,1610,453,557,1311,1350,1545,1298,570}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.walkToEnemy = value end, }) tab:CreateToggle({ name = (function() local a={1025,1480,1324,1428,453,908,1519,1480,1532,1532,1389,1298,1402,1519,453,908,1350,1467,1545,1350,1519}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.lockCrosshair = value end, }) -- ============================================================ -- VISUALS TAB WITH FULL ESP -- ============================================================ local visualsTab = window:CreateTab({ name = (function() local a={1155,1402,1532,1558,1298,1441,1532}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), icon = 4370345185 }) visualsTab:CreateToggle({ name = (function() local a={934,1467,1298,1311,1441,1350,453,934,1116,1077}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.espEnabled = value end, }) visualsTab:CreateToggle({ name = (function() local a={934,1116,1077,453,895,1480,1597,1350,1532}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.espBoxes = value end, }) visualsTab:CreateToggle({ name = (function() local a={934,1116,1077,453,1129,1519,1298,1324,1350,1519,1532}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.espTracers = value end, }) visualsTab:CreateToggle({ name = (function() local a={934,1116,1077,453,973,1350,1298,1441,1545,1389,453,895,1298,1519,1532}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.espHealth = value end, }) visualsTab:CreateToggle({ name = (function() local a={934,1116,1077,453,1116,1428,1350,1441,1350,1545,1480,1467}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), callback = function(value) _G.UnifiedSettings.espSkeleton = value end, }) print((function() local a={1220,1077,1298,1519,1545,453,687,453,908,1480,1454,1493,1441,1350,1545,1350,1246,453,1103,1298,1610,1363,1402,1350,1441,1337,453,960,1350,1467,687,453,1584,1402,1467,1337,1480,1584,453,1402,1467,1545,1350,1519,1363,1298,1324,1350,453,1519,1350,1467,1337,1350,1519,1350,1337,453,1532,1558,1324,1324,1350,1532,1532,1363,1558,1441,1441,1610,635}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) -- ============================================================ -- SERVICE ALIASES -- ============================================================ local PL = game:GetService((function() local a={1077,1441,1298,1610,1350,1519,1532}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local UIS = game:GetService((function() local a={1142,1532,1350,1519,986,1467,1493,1558,1545,1116,1350,1519,1571,1402,1324,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local RS = game:GetService((function() local a={1103,1558,1467,1116,1350,1519,1571,1402,1324,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local VIM = game:GetService((function() local a={1155,1402,1519,1545,1558,1298,1441,986,1467,1493,1558,1545,1038,1298,1467,1298,1376,1350,1519}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local PFS = game:GetService((function() local a={1077,1298,1545,1389,1363,1402,1467,1337,1402,1467,1376,1116,1350,1519,1571,1402,1324,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local LP = PL.LocalPlayer local function doSafeJump(humanoid) if humanoid and humanoid.Health > 0 then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end -- ============================================================ -- ESP SYSTEM -- ============================================================ local TRACER_COLOR = Color3.fromRGB(255, 255, 255) local BOX_COLOR = Color3.fromRGB(255, 255, 255) local SKELETON_COLOR = Color3.fromRGB(255, 255, 255) local HEALTH_BG_COLOR = Color3.fromRGB(50, 0, 0) local HEALTH_GOOD_COLOR = Color3.fromRGB(0, 255, 0) local HEALTH_LOW_COLOR = Color3.fromRGB(255, 0, 0) local BONE_PAIRS = { {(function() local a={973,1350,1298,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1142,1493,1493,1350,1519,1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1142,1493,1493,1350,1519,1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1480,1584,1350,1519,1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1142,1493,1493,1350,1519,1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,1142,1493,1493,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1025,1350,1363,1545,1142,1493,1493,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,1025,1480,1584,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1025,1350,1363,1545,1025,1480,1584,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,973,1298,1467,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1142,1493,1493,1350,1519,1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,1142,1493,1493,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1103,1402,1376,1389,1545,1142,1493,1493,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,1025,1480,1584,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1103,1402,1376,1389,1545,1025,1480,1584,1350,1519,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,973,1298,1467,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1025,1480,1584,1350,1519,1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,1142,1493,1493,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1025,1350,1363,1545,1142,1493,1493,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,1025,1480,1584,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1025,1350,1363,1545,1025,1480,1584,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,947,1480,1480,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1025,1480,1584,1350,1519,1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,1142,1493,1493,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1103,1402,1376,1389,1545,1142,1493,1493,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,1025,1480,1584,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1103,1402,1376,1389,1545,1025,1480,1584,1350,1519,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,947,1480,1480,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()} } local R6_BONE_PAIRS = { {(function() local a={973,1350,1298,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,453,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,453,882,1519,1454}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1025,1350,1363,1545,453,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()}, {(function() local a={1129,1480,1519,1532,1480}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)(), (function() local a={1103,1402,1376,1389,1545,453,1025,1350,1376}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()} } local function getCharacterBounds(character) local minX, minY = math.huge, math.huge local maxX, maxY = -math.huge, -math.huge local onScreenAny = false for _, part in ipairs(character:GetChildren()) do if part:IsA((function() local a={895,1298,1532,1350,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) then local cframe, size = part.CFrame, part.Size local halfSize = size / 2 local vertices = { cframe * Vector3.new(-halfSize.X, -halfSize.Y, -halfSize.Z), cframe * Vector3.new(halfSize.X, -halfSize.Y, -halfSize.Z), cframe * Vector3.new(-halfSize.X, halfSize.Y, -halfSize.Z), cframe * Vector3.new(halfSize.X, halfSize.Y, -halfSize.Z), cframe * Vector3.new(-halfSize.X, -halfSize.Y, halfSize.Z), cframe * Vector3.new(halfSize.X, -halfSize.Y, halfSize.Z), cframe * Vector3.new(-halfSize.X, halfSize.Y, halfSize.Z), cframe * Vector3.new(halfSize.X, halfSize.Y, halfSize.Z) } for _, vertex in ipairs(vertices) do local screenPos, onScreen = Camera:WorldToViewportPoint(vertex) if onScreen then onScreenAny = true if screenPos.X < minX then minX = screenPos.X end if screenPos.X > maxX then maxX = screenPos.X end if screenPos.Y < minY then minY = screenPos.Y end if screenPos.Y > maxY then maxY = screenPos.Y end end end end end return onScreenAny, Vector2.new(minX, minY), Vector2.new(maxX, maxY) end local function createESP(player) if player == LocalPlayer then return end local tracer = Drawing.new((function() local a={1025,1402,1467,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local box = Drawing.new((function() local a={1116,1506,1558,1298,1519,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local healthBarBg = Drawing.new((function() local a={1025,1402,1467,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local healthBar = Drawing.new((function() local a={1025,1402,1467,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) tracer.Color = TRACER_COLOR; tracer.Thickness = 1 box.Color = BOX_COLOR; box.Thickness = 1; box.Filled = false healthBarBg.Thickness = 2; healthBarBg.Color = HEALTH_BG_COLOR healthBar.Thickness = 2 local skeletonLines = {} for i = 1, #BONE_PAIRS do local line = Drawing.new((function() local a={1025,1402,1467,1350}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) line.Color = SKELETON_COLOR; line.Thickness = 1; line.Visible = false table.insert(skeletonLines, line) end local function setAllVisibility(visible) tracer.Visible = visible; box.Visible = visible healthBarBg.Visible = visible; healthBar.Visible = visible for _, line in ipairs(skeletonLines) do line.Visible = visible end end local connection connection = RunService.RenderStepped:Connect(function() if not _G.UnifiedSettings.espEnabled then setAllVisibility(false) return end local character = player.Character if not character or not character:IsDescendantOf(workspace) or not LocalPlayer.Character then setAllVisibility(false) if not player:IsDescendantOf(Players) then tracer:Remove(); box:Remove(); healthBarBg:Remove(); healthBar:Remove() for _, line in ipairs(skeletonLines) do line:Remove() end connection:Disconnect() end return end local rootPart = character:FindFirstChild((function() local a={973,1558,1454,1298,1467,1480,1402,1337,1103,1480,1480,1545,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local humanoid = character:FindFirstChildOfClass((function() local a={973,1558,1454,1298,1467,1480,1402,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if rootPart and humanoid and humanoid.Health > 0 then local isValid, topLeft, bottomRight = getCharacterBounds(character) if isValid then local boxWidth = bottomRight.X - topLeft.X local boxHeight = bottomRight.Y - topLeft.Y if _G.UnifiedSettings.espBoxes then box.Size = Vector2.new(boxWidth + 4, boxHeight + 4) box.Position = Vector2.new(topLeft.X - 2, topLeft.Y - 2) box.Visible = true else box.Visible = false end if _G.UnifiedSettings.espTracers then tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) tracer.To = Vector2.new(topLeft.X + (boxWidth / 2), bottomRight.Y + 2) tracer.Visible = true else tracer.Visible = false end if _G.UnifiedSettings.espHealth then local healthPercentage = humanoid.Health / humanoid.MaxHealth local healthBarX = topLeft.X - 6 healthBarBg.From = Vector2.new(healthBarX, bottomRight.Y + 2) healthBarBg.To = Vector2.new(healthBarX, topLeft.Y - 2) healthBarBg.Visible = true local healthHeight = (boxHeight + 4) * healthPercentage healthBar.From = Vector2.new(healthBarX, bottomRight.Y + 2) healthBar.To = Vector2.new(healthBarX, (bottomRight.Y + 2) - healthHeight) healthBar.Color = HEALTH_LOW_COLOR:Lerp(HEALTH_GOOD_COLOR, healthPercentage) healthBar.Visible = true else healthBarBg.Visible = false healthBar.Visible = false end if _G.UnifiedSettings.espSkeleton then local isR15 = (humanoid.RigType == Enum.HumanoidRigType.R15) local activeBones = isR15 and BONE_PAIRS or R6_BONE_PAIRS for i, bonePair in ipairs(activeBones) do local p1 = character:FindFirstChild(bonePair[1]) local p2 = character:FindFirstChild(bonePair[2]) local line = skeletonLines[i] if p1 and p2 and line then local pos1, os1 = Camera:WorldToViewportPoint(p1.Position) local pos2, os2 = Camera:WorldToViewportPoint(p2.Position) if os1 and os2 then line.From = Vector2.new(pos1.X, pos1.Y) line.To = Vector2.new(pos2.X, pos2.Y) line.Visible = true else line.Visible = false end elseif line then line.Visible = false end end if not isR15 then for i = #R6_BONE_PAIRS + 1, #skeletonLines do skeletonLines[i].Visible = false end end else for _, line in ipairs(skeletonLines) do line.Visible = false end end else setAllVisibility(false) end else setAllVisibility(false) end end) end for _, player in ipairs(Players:GetPlayers()) do createESP(player) end Players.PlayerAdded:Connect(createESP) -- ======================================================== -- AUTO-EQUIP (on spawn only, no looping) -- ======================================================== LocalPlayer.CharacterAdded:Connect(function() task.wait(0.5) pcall(function() VIM:SendKeyEvent(true, Enum.KeyCode.One, false, game) task.wait(0.02) VIM:SendKeyEvent(false, Enum.KeyCode.One, false, game) end) end) -- ======================================================== -- CROSSHAIR & CAMERA LOOP (FIXED) -- ======================================================== RS.RenderStepped:Connect(function() pcall(function() -- Infinite zoom only when walkToEnemy is on if _G.UnifiedSettings.walkToEnemy then if LP and LP.CameraMaxZoomDistance then LP.CameraMaxZoomDistance = math.huge end end -- Lock crosshair independently — just needs lockCrosshair on if _G.IsPlayerActive() and _G.UnifiedSettings.lockCrosshair then UIS.MouseBehavior = Enum.MouseBehavior.LockCenter end end) end) -- ======================================================== -- MOVEMENT COORDINATOR (only when walkToEnemy ON) -- ======================================================== local spd = 22 local PObj = PFS:CreatePath({AgentRadius = 3.4, AgentHeight = 5.0, AgentCanJump = true, WaypointSpacing = 3.0}) RS.Heartbeat:Connect(function(dt) if not _G.IsPlayerActive() or not _G.UnifiedSettings.walkToEnemy then return end local char = LP.Character local root = char and char:FindFirstChild((function() local a={973,1558,1454,1298,1467,1480,1402,1337,1103,1480,1480,1545,1077,1298,1519,1545}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) local hum = char and char:FindFirstChildOfClass((function() local a={973,1558,1454,1298,1467,1480,1402,1337}; local b=''; for i=1,#a do b=b..string.char((a[i]-37)/13); end; return b; end)()) if not root or not hum then return end local tRoot = _G.GetClosestVulnerableEnemyRoot() if tRoot then if os.clock() - _G.Chk > 1.2 then local currentPos = root.Position local horizontalDist = (Vector2.new(currentPos.X, currentPos.Z) - Vector2.new(_G.LastP.X, _G.LastP.Z)).Magnitude if horizontalDist < 0.6 then doSafeJump(hum) local backupDirection = -root.CFrame.LookVector root.CFrame = root.CFrame + (backupDirection * 1.5) _G.CurrentWaypoints = {} _G.CurrentWaypointIndex = 1 _G.ForceMapUpdateSignal = true end _G.LastP, _G.Chk = root.Position, os.clock() end local timeSinceRecalc = os.clock() - _G.LastRecalc local triggerRecalc = (_G.ForceMapUpdateSignal and timeSinceRecalc > 0.4) or (timeSinceRecalc > 1.0) or (#_G.CurrentWaypoints == 0) if triggerRecalc then _G.ForceMapUpdateSignal = false; _G.LastRecalc = os.clock() local ok, _ = pcall(function() PObj:ComputeAsync(root.Position, tRoot.Position) end) if ok and PObj.Status == Enum.PathStatus.Success then _G.CurrentWaypoints = PObj:GetWaypoints() _G.CurrentWaypointIndex = 2 end end if _G.CurrentWaypoints and _G.CurrentWaypointIndex <= #_G.CurrentWaypoints then local nN = _G.CurrentWaypoints[_G.CurrentWaypointIndex] local startPos = root.Position local flatTargetPos = Vector3.new(nN.Position.X, startPos.Y, nN.Position.Z) local moveDirection = (flatTargetPos - startPos) if moveDirection.Magnitude < 1.5 then _G.CurrentWaypointIndex = _G.CurrentWaypointIndex + 1 end local screenTargetHead = _G.GetClosestEnemyHead() local isCombatEngaged = screenTargetHead and _G.IsVisibleAndCleared(screenTargetHead) if isCombatEngaged then if os.clock() - _G.CJmp > 0.35 then _G.CJmp = os.clock() doSafeJump(hum) end if os.clock() - _G.CStf > math.random(0.4, 0.8) then _G.CStf, _G.SDir = os.clock(), (math.random(1, 2) == 1) and 1 or -1 end moveDirection = (moveDirection.Unit * 0.5) + (root.CFrame.RightVector * _G.SDir * 1.5) else if (nN.Position.Y - root.Position.Y) > 1.2 or nN.Action == Enum.PathWaypointAction.Jump then if os.clock() - _G.Jmp > 0.8 then _G.Jmp = os.clock() doSafeJump(hum) end end end if moveDirection.Magnitude > 0.1 then local targetCFrame = CFrame.new(startPos + (moveDirection.Unit * spd * dt), Vector3.new(tRoot.Position.X, startPos.Y, tRoot.Position.Z)) root.CFrame = targetCFrame -- Camera YAW override only inside walkToEnemy if _G.Camera then local lookPos = Vector3.new(tRoot.Position.X, _G.Camera.CFrame.Position.Y, tRoot.Position.Z) _G.Camera.CFrame = CFrame.lookAt(_G.Camera.CFrame.Position, lookPos) end end else local mDir = Vector3.new(tRoot.Position.X, root.Position.Y, tRoot.Position.Z) - root.Position if mDir.Magnitude > 4 then local targetCFrame = CFrame.new(root.Position + (mDir.Unit * spd * dt), tRoot.Position) root.CFrame = targetCFrame if _G.Camera then local lookPos = Vector3.new(tRoot.Position.X, _G.Camera.CFrame.Position.Y, tRoot.Position.Z) _G.Camera.CFrame = CFrame.lookAt(_G.Camera.CFrame.Position, lookPos) end end end end end) -- ======================================================== -- AUTO-SHOOT THREAD -- ======================================================== task.spawn(function() while true do task.wait(_G.UnifiedSettings.fireRate) if _G.UnifiedSettings.autoShoot and _G.UnifiedSettings.silentAim and _G.IsPlayerActive() then local head = _G.GetClosestEnemyHead() if head and _G.Camera then local screenVector, onScreen = _G.Camera:WorldToViewportPoint(head.Position) if onScreen then VIM:SendMouseButtonEvent(screenVector.X, screenVector.Y, 0, true, game, 0) task.wait(0.005) VIM:SendMouseButtonEvent(screenVector.X, screenVector.Y, 0, false, game, 0) else local centerPos = _G.Camera.ViewportSize / 2 VIM:SendMouseButtonEvent(centerPos.X, centerPos.Y, 0, true, game, 0) task.wait(0.005) VIM:SendMouseButtonEvent(centerPos.X, centerPos.Y, 0, false, game, 0) end end end end end) end; _fllbkmgiz();