-- made by @udoxxed on dc local lp = game.Players.LocalPlayer local CoreGui = game:GetService("CoreGui") or lp:WaitForChild("PlayerGui") if CoreGui:FindFirstChild("LassoHub") then CoreGui.LassoHub:Destroy() end local rs = game:GetService("ReplicatedStorage") local rem = rs:WaitForChild("Remotes") -- settings getgenv().AutoLasso = false getgenv().AutoFarm = false getgenv().AutoDeposit = false getgenv().FarmRange = "Current" local blacklist = {} local busy = false local function get_pen() local pens = workspace:FindFirstChild("PlayerPens") if not pens then return nil end for _, pen in ipairs(pens:GetChildren()) do local owner = pen:GetAttribute("Owner") if owner == lp.Name or tostring(owner) == tostring(lp.UserId) then return pen end end return nil end local function tp(cf) local c = lp.Character local root = c and c:FindFirstChild("HumanoidRootPart") if root then root.CFrame = cf root.AssemblyLinearVelocity = Vector3.new(0, 0, 0) root.AssemblyAngularVelocity = Vector3.new(0, 0, 0) root.Anchored = true task.wait(0.05) if root then root.Anchored = false root.AssemblyLinearVelocity = Vector3.new(0, 0, 0) root.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end end end local function equip() local c = lp.Character local hum = c and c:FindFirstChildOfClass("Humanoid") if not hum then return nil end for _, v in ipairs(c:GetChildren()) do if v:IsA("Tool") and (v.Name == "Lasso" or v.Name:find("-")) then return v end end local lasso = lp.Backpack:FindFirstChild("Lasso") if not lasso then for _, v in ipairs(lp.Backpack:GetChildren()) do if v:IsA("Tool") and v.Name:find("-") then lasso = v break end end end if lasso then hum:EquipTool(lasso) return lasso end return nil end local function get_nearest(dist) local c = lp.Character local root = c and c:FindFirstChild("HumanoidRootPart") if not root then return nil end local near = nil local max_d = dist or math.huge for _, folder in ipairs(workspace:GetChildren()) do if (folder:IsA("Folder") or folder:IsA("Model")) and folder.Name:find("Pets") and not folder.Name:find("Player") and not folder.Name:find("Cloned") and not folder.Name:find("ToFix") then local pets = folder:FindFirstChild("Pets") if pets then for _, pet in ipairs(pets:GetChildren()) do if pet:IsA("Model") and (not blacklist[pet] or tick() > blacklist[pet]) and not pet:GetAttribute("Captured") then local part = pet.PrimaryPart or pet:FindFirstChild("HumanoidRootPart") or pet:FindFirstChildWhichIsA("BasePart") if part then local d = (part.Position - root.Position).Magnitude if d < max_d then max_d = d near = pet end end end end end end end return near end local function get_best() local best = nil local max_s = -1 for _, folder in ipairs(workspace:GetChildren()) do if (folder:IsA("Folder") or folder:IsA("Model")) and folder.Name:find("Pets") and not folder.Name:find("Player") and not folder.Name:find("Cloned") and not folder.Name:find("ToFix") then local pets = folder:FindFirstChild("Pets") if pets then for _, pet in ipairs(pets:GetChildren()) do if pet:IsA("Model") and not pet:GetAttribute("Captured") then local strength = pet:GetAttribute("Strength") or 0 if strength > max_s then local part = pet.PrimaryPart or pet:FindFirstChild("HumanoidRootPart") or pet:FindFirstChildWhichIsA("BasePart") if part then max_s = strength best = pet end end end end end end end return best end local function catch(pet) if busy then return end busy = true local c = lp.Character local root = c and c:FindFirstChild("HumanoidRootPart") if not root then busy = false return end local part = pet.PrimaryPart or pet:FindFirstChild("HumanoidRootPart") or pet:FindFirstChildWhichIsA("BasePart") if not part then busy = false return end local tool = equip() if not tool then warn("Put a Lasso in your Backpack!") busy = false return end if rem:FindFirstChild("equipLassoVisual") then pcall(function() rem.equipLassoVisual:InvokeServer(tool) end) end task.wait(0.2) local dir = (part.Position - root.Position) rem.ThrowLasso:FireServer(1, Vector3.new(dir.X, 0, dir.Z).Unit) task.wait(0.3) local ok, res = pcall(function() return rem.minigameRequest:InvokeServer(pet, pet:GetPivot()) end) if ok and res == true then if pet:GetAttribute("Rarity") == "Boss" then for i = 1, 100 do rem.UpdateProgress:FireServer(1) task.wait(0.075) end else local l_name = lp:GetAttribute("equippedLasso") or "Basic Lasso" local petStrength = pet:GetAttribute("Strength") or 10 local l_conf = require(rs.Configs.Lassos) local l_str = (l_conf[l_name] and l_conf[l_name].strength) or 10 local diff = math.clamp(math.floor(math.sqrt(math.max(0, (petStrength / l_str) - 1)) * 4 + 1.5), 1, 10) local clicks_t = { [1] = 14, [2] = 18, [3] = 24, [4] = 30, [5] = 38, [6] = 47, [7] = 69, [8] = 81, [9] = 82, [10] = 98 } local req = clicks_t[diff] or 98 local t_wait = req / 14 + 0.5 local steps = math.max(3, math.floor(t_wait / 0.25)) local stepInterval = t_wait / steps local progress = 0 for i = 1, steps do task.wait(stepInterval) progress = math.min(100, math.floor(i * (100 / steps))) rem.UpdateProgress:FireServer(progress) end end task.wait(0.2) else blacklist[pet] = tick() + 8 end busy = false end local ui = Instance.new("ScreenGui") ui.Name = "LassoHub" ui.ResetOnSpawn = false ui.Parent = CoreGui local main = Instance.new("Frame") main.Name = "Main" main.Parent = ui main.BackgroundColor3 = Color3.fromRGB(20, 20, 25) main.Position = UDim2.new(0.5, -110, 0.5, -120) main.Size = UDim2.new(0, 220, 0, 245) main.Active = true main.Draggable = true local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = main local title = Instance.new("TextLabel") title.Name = "Title" title.Parent = main title.BackgroundColor3 = Color3.fromRGB(30, 30, 35) title.Size = UDim2.new(1, 0, 0, 35) title.Font = Enum.Font.GothamBold title.Text = "@udoxxed on dc" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 14 title.TextXAlignment = Enum.TextXAlignment.Left local t_corner = Instance.new("UICorner") t_corner.CornerRadius = UDim.new(0, 8) t_corner.Parent = title local bar = Instance.new("Frame") bar.BackgroundColor3 = Color3.fromRGB(30, 30, 35) bar.BorderSizePixel = 0 bar.Position = UDim2.new(0, 0, 1, -5) bar.Size = UDim2.new(1, 0, 0, 5) bar.Parent = title local content = Instance.new("Frame") content.BackgroundTransparency = 1 content.Position = UDim2.new(0, 0, 0, 35) content.Size = UDim2.new(1, 0, 1, -35) content.Parent = main local list = Instance.new("UIListLayout") list.Parent = content list.HorizontalAlignment = Enum.HorizontalAlignment.Center list.SortOrder = Enum.SortOrder.LayoutOrder list.Padding = UDim.new(0, 8) local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0, 8) padding.Parent = content local function make_btn(txt, cb) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.9, 0, 0, 32) btn.BackgroundColor3 = Color3.fromRGB(45, 45, 50) btn.Font = Enum.Font.GothamBold btn.Text = txt btn.TextColor3 = Color3.fromRGB(200, 200, 200) btn.TextSize = 13 btn.Parent = content local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 6) c.Parent = btn local act = false local function update(val) act = val if act then btn.BackgroundColor3 = Color3.fromRGB(0, 160, 255) btn.TextColor3 = Color3.fromRGB(255, 255, 255) else btn.BackgroundColor3 = Color3.fromRGB(45, 45, 50) btn.TextColor3 = Color3.fromRGB(200, 200, 200) end end btn.MouseButton1Click:Connect(function() act = not act update(act) cb(act) end) return btn, update end local b_lasso, set_lasso = make_btn("Auto Lasso: OFF", function(val) getgenv().AutoLasso = val b_lasso.Text = val and "Auto Lasso: ON" or "Auto Lasso: OFF" end) local b_farm, set_farm = make_btn("Auto Farm: OFF", function(val) getgenv().AutoFarm = val b_farm.Text = val and "Auto Farm: ON" or "Auto Farm: OFF" if val then set_lasso(true) getgenv().AutoLasso = true b_lasso.Text = "Auto Lasso: ON" end end) local b_dep, set_dep = make_btn("Auto Deposit: OFF", function(val) getgenv().AutoDeposit = val b_dep.Text = val and "Auto Deposit: ON" or "Auto Deposit: OFF" end) local b_rng = Instance.new("TextButton") b_rng.Size = UDim2.new(0.9, 0, 0, 32) b_rng.BackgroundColor3 = Color3.fromRGB(45, 45, 50) b_rng.Font = Enum.Font.GothamBold b_rng.Text = "Range: Current Zone (600)" b_rng.TextColor3 = Color3.fromRGB(200, 200, 200) b_rng.TextSize = 13 b_rng.Parent = content local r_c = Instance.new("UICorner") r_c.CornerRadius = UDim.new(0, 6) r_c.Parent = b_rng b_rng.MouseButton1Click:Connect(function() if getgenv().FarmRange == "Current" then getgenv().FarmRange = "All" b_rng.Text = "Range: All Zones (Inf)" b_rng.BackgroundColor3 = Color3.fromRGB(0, 160, 255) b_rng.TextColor3 = Color3.fromRGB(255, 255, 255) else getgenv().FarmRange = "Current" b_rng.Text = "Range: Current Zone (600)" b_rng.BackgroundColor3 = Color3.fromRGB(45, 45, 50) b_rng.TextColor3 = Color3.fromRGB(200, 200, 200) end end) local b_tp = Instance.new("TextButton") b_tp.Size = UDim2.new(0.9, 0, 0, 32) b_tp.BackgroundColor3 = Color3.fromRGB(45, 45, 50) b_tp.Font = Enum.Font.GothamBold b_tp.Text = "TP to Best Animal" b_tp.TextColor3 = Color3.fromRGB(255, 215, 0) b_tp.TextSize = 13 b_tp.Parent = content local tp_c = Instance.new("UICorner") tp_c.CornerRadius = UDim.new(0, 6) tp_c.Parent = b_tp b_tp.MouseButton1Click:Connect(function() local b = get_best() if b then local part = b.PrimaryPart or b:FindFirstChild("HumanoidRootPart") or b:FindFirstChildWhichIsA("BasePart") if part then tp(CFrame.new(part.Position + Vector3.new(6, 2, 6), part.Position)) b_tp.Text = "TPed to " .. (b:GetAttribute("Name") or b.Name) task.delay(1.5, function() b_tp.Text = "TP to Best Animal" end) end else b_tp.Text = "No Animals Found" task.delay(1.5, function() b_tp.Text = "TP to Best Animal" end) end end) task.spawn(function() while task.wait(0.1) do if getgenv().AutoFarm and not busy then local c = lp.Character local root = c and c:FindFirstChild("HumanoidRootPart") if root then local range = getgenv().FarmRange == "Current" and 600 or math.huge local pet = get_nearest(range) if pet then local part = pet.PrimaryPart or pet:FindFirstChild("HumanoidRootPart") or pet:FindFirstChildWhichIsA("BasePart") if part then tp(CFrame.new(part.Position + Vector3.new(6, 2, 6), part.Position)) task.wait(0.15) catch(pet) if getgenv().AutoDeposit then local pen = get_pen() local spawn = pen and pen:FindFirstChild("SpawnLocation") if spawn then tp(spawn.CFrame + Vector3.new(0, 3, 0)) task.wait(0.6) end end end else task.wait(0.3) end end end end end) task.spawn(function() while task.wait(0.1) do if getgenv().AutoLasso and not getgenv().AutoFarm and not busy then local pet = get_nearest(65) if pet then catch(pet) end end end end)