local RunService = game:GetService("RunService") local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local ReplicatedStorage = game:GetService("ReplicatedStorage") local TweenService = game:GetService("TweenService") local PathfindingService = game:GetService("PathfindingService") local LocalPlayer = Players.LocalPlayer local VirtualInputManager = game:GetService("VirtualInputManager") local UserInputService = game:GetService("UserInputService") local TeleportService = game:GetService("TeleportService") local HttpService = game:GetService("HttpService") local Settings = { Enabled = false, IsDead = false, IgnoredList = {}, ProcessedList = {}, TempIgnored = {}, IgnoreDuration = 60, DebugPrintEnabled = true, TargetY = 4.8, MoveSpeed = 22, SomeFlag = true, WaypointSpacing = 3, SomeOtherParam = 3, PickupDistance = 8, MaxSomething = 999999 } local PickupLock = {Lock = {Busy = false}} local LastTick = tick() local CurrentTargetPart = nil local IsMovingToTarget = false local SomeFlag2 = false local SomeNil = nil local StatusText = "Ожидание" local AvailableSafesCount = 0 local AvailableRegistersCount = 0 local Unused1 = 0 local Unused2 = 0 local TotalSafesCount = 0 local TotalRegistersCount = 0 local AvailableSafes = {} local AvailableRegisters = {} local TotalAvailableTargets = 0 local SuggestionText = "" local SomeNil2 = nil local BrokenStatusMap = {} local RetryCount = 0 local LastShopMainPart = nil local IsRising = false local SortedTargets = {} local HasReachedTargetY = false local function Log(msg) if Settings.DebugPrintEnabled then print("[AutoFarm]", msg) end end local VirtualUser = game:GetService("VirtualUser") local AntiAfkEnabled = true local AntiAfkConnection = nil local function EnableAntiAfk() if AntiAfkConnection then return end AntiAfkConnection = LocalPlayer.Idled:Connect(function() if AntiAfkEnabled then VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) Log("Анти-АФК сработал") end end) Log("Анти-АФК запущен") end local function DisableAntiAfk() if AntiAfkConnection then AntiAfkConnection:Disconnect() AntiAfkConnection = nil end Log("Анти-АФК остановлен") end EnableAntiAfk() local AutoPickupRunning = false local AutoPickupConnection = nil local function StartAutoPickup() if AutoPickupRunning then return end AutoPickupRunning = true if AutoPickupConnection then AutoPickupConnection:Disconnect() AutoPickupConnection = nil end AutoPickupConnection = RunService.RenderStepped:Connect(function() if not AutoPickupRunning or Settings.IsDead then return end local spawnedBreadFolder = Workspace:FindFirstChild("Filter") and Workspace.Filter:FindFirstChild("SpawnedBread") local pickupEvent = ReplicatedStorage:FindFirstChild("Events") and ReplicatedStorage.Events:FindFirstChild("CZDPZUS") if not spawnedBreadFolder or not pickupEvent then return end local character = LocalPlayer.Character local hrp = character and character:FindFirstChild("HumanoidRootPart") if not hrp then return end if PickupLock.Lock.Busy then return end local charPos = hrp.Position for _, breadPart in ipairs(spawnedBreadFolder:GetChildren()) do if (charPos - breadPart.Position).Magnitude <= Settings.PickupDistance then if not PickupLock.Lock.Busy then PickupLock.Lock.Busy = true pcall(function() pickupEvent:FireServer(breadPart) end) task.wait(1.1) PickupLock.Lock.Busy = false break end end end end) end local function StopAutoPickup() if not AutoPickupRunning then return end AutoPickupRunning = false if AutoPickupConnection then AutoPickupConnection:Disconnect() AutoPickupConnection = nil end if PickupLock and PickupLock.Lock then PickupLock.Lock.Busy = false end end StartAutoPickup() Log("Авто-подбор денег активирован") do repeat task.wait() until game:IsLoaded() local clonerefSafe = cloneref or function(...) return ... end local services = setmetatable({}, { __index = function(_, k) return clonerefSafe(game:GetService(k)) end }) local localPlayer = services.Players.LocalPlayer local character, humanoid, hrp local function updateChar() character = localPlayer.Character if character then hrp = character:FindFirstChild("HumanoidRootPart") humanoid = character:FindFirstChildOfClass("Humanoid") else hrp = nil humanoid = nil end end updateChar() local heartbeat = RunService.Heartbeat local renderStepped = RunService.RenderStepped local coreGui = game:GetService("CoreGui") local starterGui = game:GetService("StarterGui") local InvisPossible = true if character and not character:FindFirstChild("Torso") then pcall(function() starterGui:SetCore("SendNotification", { Title = "Невидимость НЕ РАБОТАЕТ", Text = "Требуется R6 аватар", Duration = 5 }) end) InvisPossible = false end local warningGui = Instance.new("ScreenGui") warningGui.Name = "InvisWarningGUI" warningGui.Parent = coreGui warningGui.ResetOnSpawn = false warningGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local InvisWarningLabel = Instance.new("TextLabel", warningGui) InvisWarningLabel.Text = "⚠️ВЫ ВИДИМЫ⚠️" InvisWarningLabel.Visible = false InvisWarningLabel.Size = UDim2.new(0, 200, 0, 30) InvisWarningLabel.Position = UDim2.new(0.5, -100, 0.85, 0) InvisWarningLabel.BackgroundTransparency = 1 InvisWarningLabel.Font = Enum.Font.GothamSemibold InvisWarningLabel.TextSize = 24 InvisWarningLabel.TextColor3 = Color3.fromRGB(255, 255, 0) InvisWarningLabel.TextStrokeTransparency = 0.5 InvisWarningLabel.ZIndex = 10 local InvisActive = false local InvisAnim = Instance.new("Animation") InvisAnim.AnimationId = "rbxassetid://215384594" local InvisAnimTrack = nil local function isGrounded() return humanoid and humanoid:IsDescendantOf(workspace) and humanoid.FloorMaterial ~= Enum.Material.Air end local function loadInvisAnim() if InvisAnimTrack then pcall(function() InvisAnimTrack:Stop() end) InvisAnimTrack = nil end if humanoid then local success, track = pcall(function() return humanoid:LoadAnimation(InvisAnim) end) if success then InvisAnimTrack = track InvisAnimTrack.Priority = Enum.AnimationPriority.Action4 else InvisAnimTrack = nil end else InvisAnimTrack = nil end end local function disableInvis() if not InvisActive then return end InvisActive = false if InvisAnimTrack then pcall(function() InvisAnimTrack:Stop() end) end if humanoid then workspace.CurrentCamera.CameraSubject = humanoid end if character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.Transparency == 0.5 then part.Transparency = 0 end end end if InvisWarningLabel then InvisWarningLabel.Visible = false end end local function enableInvis() if InvisActive or not InvisPossible then return end updateChar() if not character or not humanoid or not hrp then return end if not character:FindFirstChild("Torso") then pcall(function() starterGui:SetCore("SendNotification", { Title = "Невидимость НЕ РАБОТАЕТ", Text = "Требуется R6 аватар", Duration = 5 }) end) return end InvisActive = true workspace.CurrentCamera.CameraSubject = hrp loadInvisAnim() end local function toggleInvis() if InvisActive then disableInvis() else enableInvis() end return InvisActive end _G.Invis_Enable = enableInvis _G.Invis_Disable = disableInvis _G.Invis_Toggle = toggleInvis _G.IsInvisEnabled = function() return InvisActive end localPlayer.CharacterAdded:Connect(function(newChar) if InvisAnimTrack then pcall(function() InvisAnimTrack:Stop() end) InvisAnimTrack = nil end task.wait() updateChar() if not humanoid then task.wait(0.5) updateChar() if not humanoid then InvisPossible = false if InvisActive then disableInvis() end pcall(function() starterGui:SetCore("SendNotification", { Title = "Ошибка невидимости", Text = "Не удалось определить тип персонажа", Duration = 5 }) end) return end end if humanoid.RigType ~= Enum.HumanoidRigType.R6 then InvisPossible = false if InvisActive then disableInvis() end pcall(function() starterGui:SetCore("SendNotification", { Title = "Предупреждение", Text = "Обнаружен не-R6 аватар. Невидимость отключена", Duration = 5 }) end) return else InvisPossible = true end if InvisActive then if hrp then workspace.CurrentCamera.CameraSubject = hrp end loadInvisAnim() end end) localPlayer.CharacterRemoving:Connect(function() if InvisAnimTrack then pcall(function() InvisAnimTrack:Stop() end) InvisAnimTrack = nil end if InvisWarningLabel then InvisWarningLabel.Visible = false end end) heartbeat:Connect(function(dt) if not InvisActive or not InvisPossible then if not InvisActive and character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.Transparency == 0.5 then part.Transparency = 0 end end end if InvisWarningLabel then InvisWarningLabel.Visible = false end return end if not character or not humanoid or not hrp or not humanoid:IsDescendantOf(workspace) or humanoid.Health <= 0 then if InvisWarningLabel then InvisWarningLabel.Visible = false end return end if InvisWarningLabel then InvisWarningLabel.Visible = not isGrounded() end local speed = 12 if humanoid.MoveDirection.Magnitude > 0 then local move = humanoid.MoveDirection * speed * dt hrp.CFrame = hrp.CFrame + move end local originalCF = hrp.CFrame local originalCamOffset = humanoid.CameraOffset local _, cameraYaw = workspace.CurrentCamera.CFrame:ToOrientation() hrp.CFrame = CFrame.new(hrp.CFrame.Position) * CFrame.fromOrientation(0, cameraYaw, 0) hrp.CFrame = hrp.CFrame * CFrame.Angles(math.rad(90), 0, 0) humanoid.CameraOffset = Vector3.new(0, 1.44, 0) if InvisAnimTrack then local success = pcall(function() if not InvisAnimTrack.IsPlaying then InvisAnimTrack:Play() end InvisAnimTrack:AdjustSpeed(0) InvisAnimTrack.TimePosition = 0.3 end) if not success then loadInvisAnim() end elseif humanoid and humanoid.Health > 0 then loadInvisAnim() end renderStepped:Wait() if humanoid and humanoid:IsDescendantOf(workspace) then humanoid.CameraOffset = originalCamOffset end if hrp and hrp:IsDescendantOf(workspace) then hrp.CFrame = originalCF end if InvisAnimTrack then pcall(function() InvisAnimTrack:Stop() end) end if hrp and hrp:IsDescendantOf(workspace) then local lookVec = workspace.CurrentCamera.CFrame.LookVector local flatLook = Vector3.new(lookVec.X, 0, lookVec.Z).Unit if flatLook.Magnitude > 0.1 then hrp.CFrame = CFrame.new(hrp.Position, hrp.Position + flatLook) end end if character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.Transparency ~= 1 then part.Transparency = 0.5 end end end end) end RunService.Stepped:Connect(function() if Settings.Enabled and LocalPlayer.Character then pcall(function() for _, part in pairs(LocalPlayer.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end) end end) local function DisableDoorsCollision() local map = Workspace:FindFirstChild("Map") if map then local doors = map:FindFirstChild("Doors") if doors then for _, door in ipairs(doors:GetDescendants()) do pcall(function() if door:IsA("BasePart") then door.CanCollide = false end end) end end Log("Коллизия дверей отключена") end end DisableDoorsCollision() local function RiseToTargetY() if HasReachedTargetY then return end local character = LocalPlayer.Character local hrp = character and character:FindFirstChild("HumanoidRootPart") local humanoid = character and character:FindFirstChildOfClass("Humanoid") if hrp and humanoid and humanoid.Health > 0 and hrp.Position.Y < 4.7 and not IsRising then Log("Персонаж ниже 4.7, поднимаю по точкам до 4.8...") StatusText = "Подъём на 4.8" IsRising = true local startPos = hrp.Position local targetY = 4.8 local startY = startPos.Y local deltaY = targetY - startY if deltaY <= 0 then IsRising = false StatusText = "Ожидание" return end local steps = math.max(3, math.floor(deltaY * 2)) local waypoints = {} for i = 1, steps do local alpha = i / steps local y = startY + deltaY * alpha table.insert(waypoints, Vector3.new(startPos.X, y, startPos.Z)) end for _, wp in ipairs(waypoints) do if not Settings.Enabled then break end local currentRot = hrp.CFrame - hrp.CFrame.Position local targetCF = CFrame.new(wp) * currentRot local dist = (wp - hrp.Position).Magnitude local duration = math.min(0.5, dist / 10) local tween = TweenService:Create(hrp, TweenInfo.new(duration, Enum.EasingStyle.Linear), { CFrame = targetCF }) tween:Play() tween.Completed:Wait() end hrp.CFrame = CFrame.new(startPos.X, targetY, startPos.Z) * (hrp.CFrame - hrp.CFrame.Position) hrp.AssemblyLinearVelocity = Vector3.zero hrp.AssemblyAngularVelocity = Vector3.zero Log("Достиг 4.8, замираю на 3 секунды...") task.wait(3) Log("Замер завершён, продолжаю") IsRising = false HasReachedTargetY = true StatusText = "Ожидание" end end local PathVisualsFolder = Instance.new("Folder") PathVisualsFolder.Name = "PathVisuals" PathVisualsFolder.Parent = Workspace local function ClearPathVisuals() for _, child in ipairs(PathVisualsFolder:GetChildren()) do pcall(function() child:Destroy() end) end end local function VisualizePath(waypoints, startPos) ClearPathVisuals() if not waypoints or #waypoints == 0 then return end for i, wp in ipairs(waypoints) do local part = Instance.new("Part") part.Name = "Waypoint" .. i part.Size = Vector3.new(2, 2, 2) part.Position = wp.Position part.Anchored = true part.CanCollide = false part.Material = Enum.Material.Neon part.Color = Color3.fromHSV(i / #waypoints, 1, 1) part.Transparency = 0.3 part.Parent = PathVisualsFolder end local prevPos = startPos for i, wp in ipairs(waypoints) do local nextPos = wp.Position local dist = (nextPos - prevPos).Magnitude if dist > 0.5 then local line = Instance.new("Part") line.Name = "PathLine" .. i line.Anchored = true line.CanCollide = false line.Material = Enum.Material.Neon line.Color = Color3.new(0, 1, 0) line.Transparency = 0.5 line.Size = Vector3.new(0.5, 0.5, dist) line.CFrame = CFrame.lookAt(prevPos + (nextPos - prevPos) / 2, nextPos) line.Parent = PathVisualsFolder end prevPos = nextPos end end local function ComputePath(startPos, endPos) local pathParamsList = { { Radius = 1, Height = 4, Spacing = 2 }, { Radius = 1.2, Height = 4.5, Spacing = 2.5 }, { Radius = 1.5, Height = 5, Spacing = 3 }, { Radius = 2, Height = 5.5, Spacing = 4 }, { Radius = 2.5, Height = 6, Spacing = 5 }, { Radius = 3, Height = 6.5, Spacing = 5 }, { Radius = 3.5, Height = 7, Spacing = 6 }, { Radius = 4, Height = 7.5, Spacing = 6 }, { Radius = 1, Height = 8, Spacing = 3 }, { Radius = 5, Height = 5, Spacing = 5 }, { Radius = 1.8, Height = 4.2, Spacing = 2.2 }, { Radius = 2.2, Height = 5.8, Spacing = 4.5 }, { Radius = 2.8, Height = 6.2, Spacing = 5.5 }, { Radius = 3.2, Height = 6.8, Spacing = 5.8 }, { Radius = 3.8, Height = 7.2, Spacing = 6.2 } } for _, params in ipairs(pathParamsList) do local pathParams = { AgentRadius = params.Radius, AgentHeight = params.Height, AgentCanJump = true, AgentCanClimb = true, WaypointSpacing = params.Spacing, CostCalibration = true } local path = PathfindingService:CreatePath(pathParams) local success, _ = pcall(function() path:ComputeAsync(startPos, endPos) end) if success and path.Status == Enum.PathStatus.Success then local rawWaypoints = path:GetWaypoints() if not rawWaypoints or #rawWaypoints < 2 then return rawWaypoints end local refinedWaypoints = {} local spacing = Settings.WaypointSpacing table.insert(refinedWaypoints, rawWaypoints[1]) for i = 2, #rawWaypoints do local prev = rawWaypoints[i - 1].Position local curr = rawWaypoints[i].Position local dist = (curr - prev).Magnitude if dist <= spacing then table.insert(refinedWaypoints, rawWaypoints[i]) else local steps = math.ceil(dist / spacing) for j = 1, steps do local alpha = j / steps local pos = prev:Lerp(curr, alpha) local action = (j == steps and rawWaypoints[i].Action) or Enum.PathWaypointAction.Walk table.insert(refinedWaypoints, { Position = pos, Action = action }) end end end return refinedWaypoints end task.wait(0.05) end return nil end local function GetPositionInFrontOfTarget(targetPart, fromPos) if not targetPart then return nil end local success, cf = pcall(function() return targetPart.CFrame end) if not success then return nil end local lookVec = cf.LookVector lookVec = Vector3.new(lookVec.X, 0, lookVec.Z).Unit if lookVec.Magnitude < 0.1 then lookVec = (fromPos - cf.Position).Unit lookVec = Vector3.new(lookVec.X, 0, lookVec.Z).Unit if lookVec.Magnitude < 0.1 then lookVec = Vector3.new(1, 0, 0) end end return cf.Position + lookVec * 4 end local function GetFootPosition() local character = LocalPlayer.Character if not character then return nil end local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp then return nil end return hrp.Position - Vector3.new(0, 2.5, 0) end local function MoveToTarget(targetPart) RiseToTargetY() local character = LocalPlayer.Character if not character then Log("Нет персонажа") return false end local hrp = character:FindFirstChild("HumanoidRootPart") local humanoid = character:FindFirstChild("Humanoid") if not hrp or not humanoid then Log("Нет HRP или Humanoid") return false end if not targetPart or not targetPart:IsA("BasePart") then Log("Неверная цель") return false end CurrentTargetPart = targetPart IsMovingToTarget = true SomeFlag2 = false StatusText = "Путь к цели" local startPos = hrp.Position local targetFrontPos = GetPositionInFrontOfTarget(targetPart, startPos) if not targetFrontPos then Log("Не удалось вычислить позицию перед объектом") IsMovingToTarget = false StatusText = "Ожидание" return false end local endPos = targetFrontPos Log("Поиск пути к цели, расстояние " .. math.floor((endPos - startPos).Magnitude)) local path = ComputePath(startPos, endPos) if not path then Log("Путь не найден, временно игнорирую цель") IsMovingToTarget = false StatusText = "Ожидание" return false end Log("Путь найден, точек: " .. #path) VisualizePath(path, startPos) for _, waypoint in ipairs(path) do if not Settings.Enabled then ClearPathVisuals() IsMovingToTarget = false StatusText = "Ожидание" return false end local footPos = GetFootPosition() if not footPos then continue end local targetPos = waypoint.Position local targetHRP = targetPos + Vector3.new(0, 2.5, 0) local currentRot = hrp.CFrame - hrp.CFrame.Position local targetCF = CFrame.new(targetHRP) * currentRot local dist = (targetHRP - hrp.Position).Magnitude if dist > 0.2 then local tween = TweenService:Create(hrp, TweenInfo.new(dist / Settings.MoveSpeed, Enum.EasingStyle.Linear), { CFrame = targetCF }) tween:Play() tween.Completed:Wait() LastTick = tick() end if waypoint.Action == Enum.PathWaypointAction.Jump then humanoid.Jump = true task.wait(0.1) end end ClearPathVisuals() local finalPos = endPos local finalHRP = finalPos + Vector3.new(0, 2.5, 0) hrp.CFrame = CFrame.new(finalHRP) * CFrame.Angles(0, math.rad(90), 0) hrp.AssemblyLinearVelocity = Vector3.zero hrp.AssemblyAngularVelocity = Vector3.zero Log("Цель достигнута") IsMovingToTarget = false StatusText = "Ожидание" return true end local function HasTool(toolName) local backpack = LocalPlayer:FindFirstChild("Backpack") local character = LocalPlayer.Character return (backpack and backpack:FindFirstChild(toolName)) or (character and character:FindFirstChild(toolName)) end local function EquipTool(toolName) local tool = LocalPlayer:FindFirstChild("Backpack") and LocalPlayer.Backpack:FindFirstChild(toolName) if tool and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then pcall(function() LocalPlayer.Character.Humanoid:EquipTool(tool) end) task.wait(1) return true end return false end local function FindCrowbarDealer() local map = Workspace:FindFirstChild("Map") if not map then Log("Карта не найдена") return nil end local shops = map:FindFirstChild("Shopz") if not shops then Log("Магазины не найдены") return nil end local character = LocalPlayer.Character if not character then return nil end local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp then return nil end local closestDealer = nil local closestDist = math.huge for _, shop in ipairs(shops:GetChildren()) do local stocks = shop:FindFirstChild("CurrentStocks") if stocks then local crowbarStock = stocks:FindFirstChild("Crowbar") if crowbarStock and crowbarStock.Value > 0 then local mainPart = shop:FindFirstChild("MainPart") if mainPart then local dist = (hrp.Position - mainPart.Position).Magnitude if dist < closestDist then closestDist = dist closestDealer = shop end end end end end if closestDealer then Log("Найден дилер с ломом, расстояние: " .. math.floor(closestDist)) else Log("Дилер с ломом не найден") end return closestDealer end local function BuyCrowbar() local dealer = FindCrowbarDealer() if not dealer then return false end local mainPart = dealer:FindFirstChild("MainPart") if not mainPart then Log("У дилера нет MainPart") return false end StatusText = "Путь к дилеру" Log("Иду к дилеру за ломом") RetryCount = 0 LastShopMainPart = mainPart local moveSuccess = MoveToTarget(mainPart) if not moveSuccess then RetryCount = RetryCount + 1 Log("Путь не найден, попытка " .. RetryCount .. "/3") if RetryCount >= 3 then Log("Путь не найден 3 раза, поднимаюсь на высоту 4.8") local character = LocalPlayer.Character local hrp = character and character:FindFirstChild("HumanoidRootPart") if hrp then local pos = hrp.Position local tween = TweenService:Create(hrp, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), { CFrame = CFrame.new(pos.X, 4.8, pos.Z) }) tween:Play() tween.Completed:Wait() task.wait(1) Log("Повторная попытка найти путь к дилеру") RetryCount = 0 moveSuccess = MoveToTarget(mainPart) if not moveSuccess then Log("Путь к дилеру всё ещё не найден, временно игнорирую") StatusText = "Ожидание" return false end end else StatusText = "Ожидание" return false end end StatusText = "Покупка лома" task.wait(1.5) local events = ReplicatedStorage:FindFirstChild("Events") if events then Log("Открываю магазин") pcall(function() events.BYZERSPROTEC:FireServer(true, "shop", mainPart, "IllegalStore") end) task.wait(1) Log("Покупаю лом") pcall(function() events.SSHPRMTE1:InvokeServer("IllegalStore", "Melees", "Crowbar", mainPart, nil, true) end) task.wait(20) Log("Закрываю магазин") pcall(function() events.BYZERSPROTEC:FireServer(false) end) end task.wait(2) local crowbar = HasTool("Crowbar") if crowbar then Log("Лом куплен успешно") else Log("Не удалось купить лом") end LastTick = tick() StatusText = "Ожидание" return crowbar end local function CleanupTempIgnored() local now = tick() for obj, expiry in pairs(Settings.TempIgnored) do if now > expiry then Settings.TempIgnored[obj] = nil for i, v in ipairs(Settings.IgnoredList) do if v == obj then table.remove(Settings.IgnoredList, i) break end end Log("Игнорируемый объект разблокирован") end end end local function UpdateTargetsList() CleanupTempIgnored() local bredFolder = nil local map = Workspace:FindFirstChild("Map") if map then bredFolder = map:FindFirstChild("BredMakurz") end if not bredFolder then local filter = Workspace:FindFirstChild("Filter") if filter then bredFolder = filter:FindFirstChild("BredMakurz") end end if not bredFolder then for _, obj in ipairs(Workspace:GetDescendants()) do if obj.Name == "BredMakurz" and obj:IsA("Folder") then bredFolder = obj break end end end if not bredFolder then Log("Папка BredMakurz не найдена") return 0, 0 end local character = LocalPlayer.Character if not character then return 0, 0 end local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp then return 0, 0 end local safes = {} local registers = {} TotalSafesCount = 0 TotalRegistersCount = 0 SortedTargets = {} for _, obj in ipairs(bredFolder:GetChildren()) do local nameLower = obj.Name:lower() if nameLower:find("safe") or nameLower:find("register") then if nameLower:find("safe") then TotalSafesCount = TotalSafesCount + 1 else TotalRegistersCount = TotalRegistersCount + 1 end if Settings.ProcessedList[obj] then continue end if Settings.TempIgnored[obj] then continue end local values = obj:FindFirstChild("Values") if values then local broken = values:FindFirstChild("Broken") if broken and not broken.Value then local mainPart = obj:FindFirstChild("MainPart") or obj.PrimaryPart if mainPart and mainPart.Position.Y >= 4.8 then local targetInfo = { obj = obj, part = mainPart, pos = mainPart.Position } if nameLower:find("safe") then table.insert(safes, targetInfo) else table.insert(registers, targetInfo) end table.insert(SortedTargets, targetInfo) end end end end end AvailableSafes = safes AvailableRegisters = registers table.sort(SortedTargets, function(a, b) return (a.pos - hrp.Position).Magnitude < (b.pos - hrp.Position).Magnitude end) AvailableSafesCount = #safes AvailableRegistersCount = #registers return AvailableSafesCount + AvailableRegistersCount, TotalSafesCount + TotalRegistersCount end local function AnalyzeTargetsCount() local available, total = UpdateTargetsList() TotalAvailableTargets = available Log("Всего доступно: " .. available .. "/" .. total .. " целей") if available < 20 then SuggestionText = "Мало целей (" .. available .. "), много конкурентов. Смени сервер." Log("⚠️ " .. SuggestionText) pcall(function() HttpService:SetCore("SendNotification", { Title = "Рекомендация", Text = SuggestionText, Duration = 10 }) end) else SuggestionText = "Достаточно целей (" .. available .. "), можно фармить." end end AnalyzeTargetsCount() local function FindMoneyNearTarget(targetObj) local mainPart = targetObj:FindFirstChild("MainPart") or targetObj.PrimaryPart if not mainPart then return {} end local spawnedBread = Workspace:FindFirstChild("Filter") and Workspace.Filter:FindFirstChild("SpawnedBread") if not spawnedBread then return {} end local moneyParts = {} for _, bread in ipairs(spawnedBread:GetChildren()) do pcall(function() if bread:IsA("Part") and bread.Transparency < 1 then if (bread.Position - mainPart.Position).Magnitude <= 25 then table.insert(moneyParts, bread) end end end) end return moneyParts end local function CollectMoneyNearTarget(targetObj) local moneyParts = FindMoneyNearTarget(targetObj) if #moneyParts == 0 then return false end Log("Собираю " .. #moneyParts .. " пачек денег возле сейфа") StatusText = "Сбор денег" for _, money in ipairs(moneyParts) do if not Settings.Enabled then break end pcall(function() if money and money.Parent and money.Transparency < 1 then MoveToTarget(money) local pickupEvent = ReplicatedStorage:FindFirstChild("Events") and ReplicatedStorage.Events:FindFirstChild("CZDPZUS") if pickupEvent then pcall(function() pickupEvent:FireServer(money) end) end task.wait(0.3) end end) end StatusText = "Ожидание" return #FindMoneyNearTarget(targetObj) > 0 end local function HackSafe(safeObj) if not HasTool("Crowbar") then Log("Нет лома для открытия сейфа, пробую купить...") local bought = BuyCrowbar() if not bought then Log("Не удалось купить лом, пропускаю сейф") return false end end if not LocalPlayer.Character:FindFirstChild("Crowbar") then Log("Лом в рюкзаке, экипирую...") EquipTool("Crowbar") task.wait(1) end if not HasTool("Crowbar") then Log("Лом так и не появился, пропускаю") return false end task.wait(1.5) local events = ReplicatedStorage:FindFirstChild("Events") if not events then Log("Папка Events не найдена") return false end local remote1 = events:FindFirstChild("XMHH.2") local remote2 = events:FindFirstChild("XMHH2.2") local mainPart = safeObj:FindFirstChild("MainPart") or safeObj.PrimaryPart if not remote1 or not remote2 then Log("Remote events для взлома не найдены") return false end if not mainPart then Log("У сейфа нет основной части") return false end Log("Начинаю взлом сейфа") StatusText = "Взлом сейфа" local startTime = tick() local hits = 0 while Settings.Enabled and safeObj and safeObj.Parent do local values = safeObj:FindFirstChild("Values") if not values then break end local broken = values:FindFirstChild("Broken") if broken and broken.Value then Log("Сейф уже взломан") break end if tick() - startTime > 25 then Log("Таймаут взлома") break end task.wait(0.4) local crowbar = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Crowbar") if not crowbar then crowbar = LocalPlayer.Backpack and LocalPlayer.Backpack:FindFirstChild("Crowbar") if crowbar then EquipTool("Crowbar") end end if not crowbar then break end local arm = LocalPlayer.Character:FindFirstChild("Right Arm") or LocalPlayer.Character:FindFirstChild("RightHand") if not arm then break end local success, result = pcall(function() return remote1:InvokeServer("🍞", tick(), crowbar, "DZDRRRKI", safeObj, "Register") end) if success and result then pcall(function() remote2:FireServer("🍞", tick(), crowbar, "2389ZFX34", result, false, arm, mainPart, safeObj, mainPart.Position, mainPart.Position) end) hits = hits + 1 end if hits % 4 == 0 then task.wait(0.8) end LastTick = tick() end task.wait(2) Log("Взлом завершен, ударов: " .. hits) StatusText = "Ожидание" return true end local IsRespawning = false local RespawnConnection = nil local function PressE() VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game) task.wait(0.1) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game) end local function StopRespawnHandler() if IsRespawning then IsRespawning = false if RespawnConnection then RespawnConnection:Disconnect() RespawnConnection = nil end end end local function StartRespawnHandler() if IsRespawning then return end IsRespawning = true Log("Смерть обнаружена - нажимаю E для возрождения") StatusText = "Смерть" RespawnConnection = RunService.Heartbeat:Connect(function() if not IsRespawning then if RespawnConnection then RespawnConnection:Disconnect() RespawnConnection = nil end return end local character = LocalPlayer.Character local humanoid = character and character:FindFirstChild("Humanoid") if character and humanoid and humanoid.Health > 0 then StopRespawnHandler() StatusText = "Ожидание" return end pcall(PressE) end) end local function OnCharacterAdded(newChar) StopRespawnHandler() task.wait(3) IsRising = false HasReachedTargetY = false if Settings.Enabled then Settings.IsDead = false LastTick = tick() RiseToTargetY() Log("Персонаж возродился, продолжаю") StatusText = "Ожидание" end local humanoid = newChar:WaitForChild("Humanoid", 5) if humanoid then humanoid.Died:Connect(StartRespawnHandler) end end LocalPlayer.CharacterAdded:Connect(OnCharacterAdded) if LocalPlayer.Character then OnCharacterAdded(LocalPlayer.Character) end local EspEnabled = false local EspHeartbeatConnection = nil local EspElements = {} local EspTextSize = 20 local function FormatName(rawName) rawName = string.gsub(rawName, "([a-z])([A-Z])", "%1 %2") rawName = string.gsub(rawName, "_", " ") if rawName:lower():find("safe") then return "🔒 " .. rawName elseif rawName:lower():find("register") then return "💰 " .. rawName end return rawName end local function CreateHighlight(part, color) local highlight = Instance.new("Highlight") highlight.Name = "ESP_Highlight" highlight.Adornee = part highlight.FillColor = color highlight.FillTransparency = 0.5 highlight.OutlineColor = Color3.new(1, 1, 1) highlight.OutlineTransparency = 0 highlight.Parent = part return highlight end local function UpdateESP() if not EspEnabled then return end local bredFolder = Workspace:FindFirstChild("Map") and Workspace.Map:FindFirstChild("BredMakurz") or Workspace:FindFirstChild("Filter") and Workspace.Filter:FindFirstChild("BredMakurz") if not bredFolder then for _, obj in ipairs(Workspace:GetDescendants()) do if obj.Name == "BredMakurz" and obj:IsA("Folder") then bredFolder = obj break end end end if not bredFolder then return end local character = LocalPlayer.Character local hrp = character and character:FindFirstChild("HumanoidRootPart") if not hrp then return end for _, obj in ipairs(bredFolder:GetChildren()) do local nameLower = obj.Name:lower() if nameLower:find("safe") or nameLower:find("register") then local mainPart = obj.PrimaryPart or obj:FindFirstChildOfClass("BasePart") if not mainPart then continue end if mainPart.Position.Y < 4.8 then continue end local values = obj:FindFirstChild("Values") local brokenVal = values and values:FindFirstChild("Broken") local isBroken = brokenVal and brokenVal.Value local color = isBroken and Color3.new(1, 0, 0) or Color3.new(0, 1, 0) local esp = EspElements[obj] if not esp then local billboard = Instance.new("BillboardGui") billboard.Name = "ESP_Billboard" billboard.Adornee = mainPart billboard.Size = UDim2.new(0, 200, 0, 50) billboard.StudsOffset = Vector3.new(0, 4, 0) billboard.AlwaysOnTop = true billboard.MaxDistance = 1000 billboard.Parent = obj local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Font = Enum.Font.SourceSansBold label.TextScaled = false label.Text = FormatName(obj.Name) label.TextColor3 = color label.TextStrokeTransparency = 0 label.TextStrokeColor3 = Color3.new(0, 0, 0) label.TextSize = EspTextSize label.Parent = billboard local highlight = CreateHighlight(obj, color) EspElements[obj] = { billboard = billboard, highlight = highlight, label = label } if brokenVal then brokenVal:GetPropertyChangedSignal("Value"):Connect(function() if not EspEnabled or not EspElements[obj] then return end local e = EspElements[obj] if brokenVal.Value then e.label.TextColor3 = Color3.new(1, 0, 0) if e.highlight then e.highlight.FillColor = Color3.new(1, 0, 0) end else e.label.TextColor3 = Color3.new(0, 1, 0) if e.highlight then e.highlight.FillColor = Color3.new(0, 1, 0) end end end) end else if brokenVal then esp.label.TextColor3 = isBroken and Color3.new(1, 0, 0) or Color3.new(0, 1, 0) if esp.highlight then esp.highlight.FillColor = isBroken and Color3.new(1, 0, 0) or Color3.new(0, 1, 0) end end if esp.label then esp.label.TextSize = EspTextSize end end end end for obj, data in pairs(EspElements) do if not obj or not obj.Parent then pcall(function() if data.billboard then data.billboard:Destroy() end if data.highlight then data.highlight:Destroy() end end) EspElements[obj] = nil end end end local function EnableESP() if EspEnabled then return end EspEnabled = true EspHeartbeatConnection = RunService.Heartbeat:Connect(UpdateESP) Log("ESP для всех сейфов/касс ВКЛЮЧЕН") end local function DisableESP() if not EspEnabled then return end EspEnabled = false if EspHeartbeatConnection then EspHeartbeatConnection:Disconnect() EspHeartbeatConnection = nil end for obj, data in pairs(EspElements) do pcall(function() if data.billboard then data.billboard:Destroy() end if data.highlight then data.highlight:Destroy() end end) end EspElements = {} Log("ESP для всех сейфов/касс ВЫКЛЮЧЕН") end local function SetupBrokenTracking() Log("Запуск анализа целей...") BrokenStatusMap = {} local bredFolder = nil local map = Workspace:FindFirstChild("Map") if map then bredFolder = map:FindFirstChild("BredMakurz") end if not bredFolder then local filter = Workspace:FindFirstChild("Filter") if filter then bredFolder = filter:FindFirstChild("BredMakurz") end end if not bredFolder then for _, obj in ipairs(Workspace:GetDescendants()) do if obj.Name == "BredMakurz" and obj:IsA("Folder") then bredFolder = obj break end end end if bredFolder then for _, obj in ipairs(bredFolder:GetChildren()) do local values = obj:FindFirstChild("Values") if values then local broken = values:FindFirstChild("Broken") if broken then BrokenStatusMap[obj] = broken.Value broken:GetPropertyChangedSignal("Value"):Connect(function() if Settings.Enabled then BrokenStatusMap[obj] = broken.Value UpdateTargetsList() AnalyzeTargetsCount() Log("Статус цели изменен: " .. obj.Name .. " теперь " .. tostring(broken.Value)) end end) end end end Log("Анализ целей завершен, отслеживается " .. #BrokenStatusMap .. " объектов") end end SetupBrokenTracking() local function MainFarmLoop() Log("Цикл автофермы запущен") RiseToTargetY() while true do task.wait(1) if not Settings.Enabled then task.wait(1) continue end Log("=== Цикл фермы ===") local character = LocalPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") Settings.IsDead = (not humanoid) or (humanoid.Health <= 0) if Settings.IsDead then Log("Персонаж мертв, ожидание") task.wait(3) continue end RiseToTargetY() if not HasTool("Crowbar") then Log("Нет лома, пробую купить") local bought = BuyCrowbar() if not bought then Log("Не удалось купить лом, жду 5 сек") task.wait(5) continue end else Log("Лом уже есть") end local available, total = UpdateTargetsList() TotalAvailableTargets = available if available < 5 then Log("Осталось мало целей (" .. available .. "), рекомендую сменить сервер") end if available == 0 then Log("Нет доступных целей, жду 5 сек") task.wait(5) continue end local nextTarget = nil local minDist = math.huge for _, targetInfo in ipairs(SortedTargets) do if not Settings.TempIgnored[targetInfo.obj] then local dist = (targetInfo.pos - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude if dist < minDist then minDist = dist nextTarget = targetInfo.obj end end end if not nextTarget then Log("Нет доступных целей, жду 5 сек") task.wait(5) continue end local mainPart = nextTarget:FindFirstChild("MainPart") or nextTarget.PrimaryPart if not mainPart then Log("У цели нет MainPart, пропускаю") Settings.ProcessedList[nextTarget] = true continue end Log("Движение к цели: " .. nextTarget.Name .. ", расстояние " .. math.floor((mainPart.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude)) local moveSuccess = MoveToTarget(mainPart) if moveSuccess then if not LocalPlayer.Character:FindFirstChild("Crowbar") then EquipTool("Crowbar") end Log("Открываю сейф") local hackSuccess = HackSafe(nextTarget) if hackSuccess then Log("Сейф открыт, собираю деньги") local stillMoney = CollectMoneyNearTarget(nextTarget) local attempts = 5 while stillMoney and attempts > 0 do task.wait(2) stillMoney = CollectMoneyNearTarget(nextTarget) attempts = attempts - 1 end Settings.ProcessedList[nextTarget] = true Log("Сейф полностью обработан") else Log("Не удалось открыть сейф, временно игнорирую") Settings.TempIgnored[nextTarget] = tick() + Settings.IgnoreDuration table.insert(Settings.IgnoredList, nextTarget) end else Log("Не удалось достичь цели, временно игнорирую") Settings.TempIgnored[nextTarget] = tick() + Settings.IgnoreDuration table.insert(Settings.IgnoredList, nextTarget) end task.wait(2) end end local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))() local Window = Fluent:CreateWindow({ Title = "AutoFarm", SubTitle = "", TabWidth = 120, Size = UDim2.fromOffset(450, 400), Acrylic = true, Theme = "DarkPurple", MinimizeKey = Enum.KeyCode.RightControl }) local Tabs = { Main = Window:AddTab({ Title = "Farm", Icon = "zap" }), Stats = Window:AddTab({ Title = "Info", Icon = "info" }), Visuals = Window:AddTab({ Title = "Visuals", Icon = "eye" }) } Tabs.Main:AddToggle("AutoFarmToggle", { Title = "Start Farm", Description = "", Default = false, Callback = function(value) Settings.Enabled = value if value then Settings.IgnoredList = {} Settings.ProcessedList = {} Settings.TempIgnored = {} UpdateTargetsList() AnalyzeTargetsCount() RiseToTargetY() Log("Автоферма ВКЛЮЧЕНА") Fluent:Notify({ Title = "AutoFarm", Content = "Запущено", Duration = 2 }) else ClearPathVisuals() SomeFlag2 = false StatusText = "Ожидание" Log("Автоферма ВЫКЛЮЧЕНА") Fluent:Notify({ Title = "AutoFarm", Content = "Остановлено", Duration = 2 }) end end }) Tabs.Main:AddToggle("AutoPickupMoneyToggle", { Title = "Auto Money", Description = "", Default = true, Callback = function(value) if value then StartAutoPickup() Log("Авто-подбор денег ВКЛЮЧЕН") else StopAutoPickup() Log("Авто-подбор денег ВЫКЛЮЧЕН") end end }) Tabs.Main:AddToggle("InvisibilityToggle", { Title = "Invis (R6)", Description = "", Default = false, Callback = function(value) if value then _G.Invis_Enable() Log("Невидимость ВКЛЮЧЕНА") else _G.Invis_Disable() Log("Невидимость ВЫКЛЮЧЕНА") end end }) Tabs.Main:AddToggle("AntiAfkToggle", { Title = "Anti-AFK", Description = "", Default = true, Callback = function(value) AntiAfkEnabled = value if value then EnableAntiAfk() Log("Анти-АФК ВКЛЮЧЕН") else DisableAntiAfk() Log("Анти-АФК ВЫКЛЮЧЕН") end end }) Tabs.Main:AddSlider("SpeedSlider", { Title = "Speed", Description = "", Default = 22, Min = 10, Max = 45, Rounding = 1, Callback = function(value) Settings.MoveSpeed = value Log("Скорость " .. value) end }) Tabs.Visuals:AddToggle("SafeESPToggle", { Title = "Safe/Register ESP", Default = false, Callback = function(value) if value then EnableESP() else DisableESP() end end }) Tabs.Visuals:AddSlider("TextSizeSlider", { Title = "Text Size", Default = 20, Min = 10, Max = 40, Rounding = 0, Callback = function(value) EspTextSize = value for _, data in pairs(EspElements) do if data.label then data.label.TextSize = EspTextSize end end end }) local statusPara = Tabs.Stats:AddParagraph({ Title = "Статус", Content = "Загрузка..." }) local safesPara = Tabs.Stats:AddParagraph({ Title = "Сейфы", Content = "0/0" }) local registersPara = Tabs.Stats:AddParagraph({ Title = "Кассы", Content = "0/0" }) local remainingPara = Tabs.Stats:AddParagraph({ Title = "Осталось", Content = "0/0" }) local suggestionPara = Tabs.Stats:AddParagraph({ Title = "Совет", Content = "Загрузка..." }) task.spawn(function() while true do if Settings.Enabled then statusPara:SetDesc(StatusText) safesPara:SetDesc(AvailableSafesCount .. "/" .. TotalSafesCount) registersPara:SetDesc(AvailableRegistersCount .. "/" .. TotalRegistersCount) remainingPara:SetDesc((AvailableSafesCount + AvailableRegistersCount) .. "/" .. (TotalSafesCount + TotalRegistersCount)) suggestionPara:SetDesc(SuggestionText) else statusPara:SetDesc("Ожидание") safesPara:SetDesc("0/0") registersPara:SetDesc("0/0") remainingPara:SetDesc("0/0") suggestionPara:SetDesc("Запусти ферму") end task.wait(0.5) end end) Fluent:Notify({ Title = "AutoFarm", Content = "Загружено", Duration = 2 }) task.spawn(MainFarmLoop)