Auto pick up cats and drop
Key Required

Auto pick up cats and drop

[ Content Deleted ]kwaesway32kwaesway32 2.3K views 135 executesUpdated Feb 13, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•491 lines (17056 chars)
-- Auto Pickup/Drop & Auto Pet Cats
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")

local player = Players.LocalPlayer

-- Get config
local AnimalConfig = require(ReplicatedStorage.Config.AnimalConfig)
local BaseService = ReplicatedStorage.Packages.Knit.Services.BaseService

-- Create GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AutoPickupCats"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 400, 0, 600)
mainFrame.Position = UDim2.new(0.5, -200, 0.5, -300)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = mainFrame

-- Title bar
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 40)
titleBar.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame

local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 10)
titleCorner.Parent = titleBar

local titleText = Instance.new("TextLabel")
titleText.Size = UDim2.new(1, -70, 1, 0)
titleText.Position = UDim2.new(0, 10, 0, 0)
titleText.BackgroundTransparency = 1
titleText.Text = "Auto Cat Manager 🐱"
titleText.TextColor3 = Color3.fromRGB(255, 255, 255)
titleText.TextSize = 18
titleText.Font = Enum.Font.GothamBold
titleText.TextXAlignment = Enum.TextXAlignment.Left
titleText.Parent = titleBar

-- Scan button
local scanButton = Instance.new("TextButton")
scanButton.Size = UDim2.new(0, 60, 0, 30)
scanButton.Position = UDim2.new(1, -100, 0, 5)
scanButton.BackgroundColor3 = Color3.fromRGB(100, 100, 255)
scanButton.Text = "Scan"
scanButton.TextColor3 = Color3.fromRGB(255, 255, 255)
scanButton.TextSize = 12
scanButton.Font = Enum.Font.GothamBold
scanButton.BorderSizePixel = 0
scanButton.Parent = titleBar

local scanCorner = Instance.new("UICorner")
scanCorner.CornerRadius = UDim.new(0, 5)
scanCorner.Parent = scanButton

-- Close button
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Position = UDim2.new(1, -35, 0, 5)
closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
closeButton.Text = "X"
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.TextSize = 16
closeButton.Font = Enum.Font.GothamBold
closeButton.BorderSizePixel = 0
closeButton.Parent = titleBar

local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 5)
closeCorner.Parent = closeButton

closeButton.MouseButton1Click:Connect(function()
    screenGui:Destroy()
end)

-- Content
local contentFrame = Instance.new("ScrollingFrame")
contentFrame.Size = UDim2.new(1, -20, 1, -60)
contentFrame.Position = UDim2.new(0, 10, 0, 50)
contentFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
contentFrame.BorderSizePixel = 0
contentFrame.ScrollBarThickness = 6
contentFrame.Parent = mainFrame

local contentCorner = Instance.new("UICorner")
contentCorner.CornerRadius = UDim.new(0, 5)
contentCorner.Parent = contentFrame

local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 8)
listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
listLayout.Parent = contentFrame

-- Status
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(0, 360, 0, 60)
statusLabel.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
statusLabel.Text = "Status: Ready\nYour ID: " .. player.UserId .. "\nClick 'Scan' to find cats"
statusLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
statusLabel.TextSize = 11
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextYAlignment = Enum.TextYAlignment.Top
statusLabel.TextWrapped = true
statusLabel.Parent = contentFrame

local statusCorner = Instance.new("UICorner")
statusCorner.CornerRadius = UDim.new(0, 5)
statusCorner.Parent = statusLabel

-- Toggle Pickup button
local togglePickupButton = Instance.new("TextButton")
togglePickupButton.Size = UDim2.new(0, 360, 0, 45)
togglePickupButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
togglePickupButton.Text = "Start Auto Pickup/Drop"
togglePickupButton.TextColor3 = Color3.fromRGB(255, 255, 255)
togglePickupButton.TextSize = 15
togglePickupButton.Font = Enum.Font.GothamBold
togglePickupButton.Parent = contentFrame

local togglePickupCorner = Instance.new("UICorner")
togglePickupCorner.CornerRadius = UDim.new(0, 8)
togglePickupCorner.Parent = togglePickupButton

-- Toggle Pet button
local togglePetButton = Instance.new("TextButton")
togglePetButton.Size = UDim2.new(0, 360, 0, 45)
togglePetButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150)
togglePetButton.Text = "Start Auto Pet"
togglePetButton.TextColor3 = Color3.fromRGB(255, 255, 255)
togglePetButton.TextSize = 15
togglePetButton.Font = Enum.Font.GothamBold
togglePetButton.Parent = contentFrame

local togglePetCorner = Instance.new("UICorner")
togglePetCorner.CornerRadius = UDim.new(0, 8)
togglePetCorner.Parent = togglePetButton

-- Cat list label
local listLabel = Instance.new("TextLabel")
listLabel.Size = UDim2.new(0, 360, 0, 25)
listLabel.BackgroundColor3 = Color3.fromRGB(50, 50, 70)
listLabel.Text = "🐾 Select Cats"
listLabel.TextColor3 = Color3.fromRGB(200, 200, 255)
listLabel.TextSize = 13
listLabel.Font = Enum.Font.GothamBold
listLabel.Parent = contentFrame

local listCorner = Instance.new("UICorner")
listCorner.CornerRadius = UDim.new(0, 5)
listCorner.Parent = listLabel

-- Variables
local autoPickupRunning = false
local autoPetRunning = false
local selectedCats = {}
local pickedUp = 0
local petted = 0
local catsInBase = {}
local catButtons = {}

-- Stats
local statsLabel = Instance.new("TextLabel")
statsLabel.Size = UDim2.new(0, 360, 0, 70)
statsLabel.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
statsLabel.Text = "Picked up: 0\nPetted: 0\nLast: None\nFound: 0"
statsLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
statsLabel.TextSize = 12
statsLabel.Font = Enum.Font.Gotham
statsLabel.TextYAlignment = Enum.TextYAlignment.Top
statsLabel.Parent = contentFrame

local statsCorner = Instance.new("UICorner")
statsCorner.CornerRadius = UDim.new(0, 5)
statsCorner.Parent = statsLabel

-- Function to scan for cats
local function scanForCats()
    catsInBase = {}
    
    statusLabel.Text = "Scanning Cats folder..."
    statusLabel.TextColor3 = Color3.fromRGB(255, 200, 100)
    
    local playerBases = Workspace:FindFirstChild("PlayerBases")
    if not playerBases then
        statusLabel.Text = "Error: PlayerBases not found!"
        statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
        return
    end
    
    local yourBase = playerBases:FindFirstChild(tostring(player.UserId))
    if not yourBase then
        statusLabel.Text = "Error: Your base not found!\nID: " .. player.UserId
        statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
        return
    end
    
    local catsFolder = yourBase:FindFirstChild("Cats")
    if not catsFolder then
        statusLabel.Text = "Error: Cats folder not found!"
        statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
        return
    end
    
    for _, catModel in ipairs(catsFolder:GetChildren()) do
        if catModel:IsA("Model") then
            local animalId = catModel:GetAttribute("animalId")
            
            if animalId then
                local catName = catModel:GetAttribute("name") or catModel.Name
                local catData = AnimalConfig[catName]
                
                if catData then
                    table.insert(catsInBase, {
                        id = animalId,
                        name = catName,
                        model = catModel,
                        rarity = catData.Rarity
                    })
                end
            end
        end
    end
    
    local foundCount = #catsInBase
    statusLabel.Text = string.format("Scan complete!\nFound: %d cats", foundCount)
    statusLabel.TextColor3 = foundCount > 0 and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 150, 50)
    
    -- Clear old buttons
    for _, btn in ipairs(catButtons) do
        btn:Destroy()
    end
    catButtons = {}
    
    if foundCount == 0 then
        local noCatsLabel = Instance.new("TextLabel")
        noCatsLabel.Size = UDim2.new(0, 360, 0, 50)
        noCatsLabel.BackgroundColor3 = Color3.fromRGB(60, 40, 40)
        noCatsLabel.Text = "No cats found!\nMake sure cats are spawned"
        noCatsLabel.TextColor3 = Color3.fromRGB(255, 200, 200)
        noCatsLabel.TextSize = 12
        noCatsLabel.Font = Enum.Font.Gotham
        noCatsLabel.TextWrapped = true
        noCatsLabel.Parent = contentFrame
        
        local noCatsCorner = Instance.new("UICorner")
        noCatsCorner.CornerRadius = UDim.new(0, 5)
        noCatsCorner.Parent = noCatsLabel
        
        table.insert(catButtons, noCatsLabel)
        task.wait()
        contentFrame.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 20)
        return
    end
    
    local rarityColors = {
        Common = Color3.fromRGB(150, 150, 150),
        Rare = Color3.fromRGB(100, 150, 255),
        Epic = Color3.fromRGB(200, 100, 255),
        Legendary = Color3.fromRGB(255, 200, 0)
    }
    
    -- Group by name
    local catGroups = {}
    for _, cat in ipairs(catsInBase) do
        if not catGroups[cat.name] then
            catGroups[cat.name] = {count = 0, rarity = cat.rarity}
        end
        catGroups[cat.name].count = catGroups[cat.name].count + 1
    end
    
    -- Sort by rarity
    local sortedCats = {}
    for name, data in pairs(catGroups) do
        table.insert(sortedCats, {name = name, count = data.count, rarity = data.rarity})
    end
    
    table.sort(sortedCats, function(a, b)
        local rarityOrder = {Legendary = 1, Epic = 2, Rare = 3, Common = 4}
        if rarityOrder[a.rarity] ~= rarityOrder[b.rarity] then
            return rarityOrder[a.rarity] < rarityOrder[b.rarity]
        end
        return a.name < b.name
    end)
    
    for _, catData in ipairs(sortedCats) do
        local catButton = Instance.new("TextButton")
        catButton.Size = UDim2.new(0, 360, 0, 40)
        catButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
        catButton.Text = string.format("○ %s (%d)", catData.name, catData.count)
        catButton.TextColor3 = rarityColors[catData.rarity]
        catButton.TextSize = 13
        catButton.Font = Enum.Font.Gotham
        catButton.TextXAlignment = Enum.TextXAlignment.Left
        catButton.Parent = contentFrame
        
        local padding = Instance.new("UIPadding")
        padding.PaddingLeft = UDim.new(0, 10)
        padding.Parent = catButton
        
        local btnCorner = Instance.new("UICorner")
        btnCorner.CornerRadius = UDim.new(0, 5)
        btnCorner.Parent = catButton
        
        table.insert(catButtons, catButton)
        
        catButton.MouseButton1Click:Connect(function()
            if selectedCats[catData.name] then
                selectedCats[catData.name] = nil
                catButton.Text = string.format("○ %s (%d)", catData.name, catData.count)
                catButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
            else
                selectedCats[catData.name] = true
                catButton.Text = string.format("● %s (%d)", catData.name, catData.count)
                catButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
            end
        end)
    end
    
    statsLabel.Text = string.format("Picked up: %d\nPetted: %d\nLast: None\nFound: %d", pickedUp, petted, foundCount)
    
    task.wait()
    contentFrame.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 20)
end

-- Scan button
scanButton.MouseButton1Click:Connect(function()
    scanButton.Text = "..."
    scanButton.BackgroundColor3 = Color3.fromRGB(150, 150, 50)
    scanForCats()
    task.wait(0.5)
    scanButton.Text = "Scan"
    scanButton.BackgroundColor3 = Color3.fromRGB(100, 100, 255)
end)

-- Auto Pickup Loop
local function autoPickupLoop()
    while autoPickupRunning do
        pcall(function()
            for _, cat in ipairs(catsInBase) do
                if not autoPickupRunning then break end
                
                if selectedCats[cat.name] and cat.model and cat.model.Parent then
                    -- Pickup
                    local success1 = pcall(function()
                        BaseService.RF.PickupAnimal:InvokeServer(cat.id)
                    end)
                    
                    if success1 then
                        pickedUp = pickedUp + 1
                        
                        task.wait(0.3)
                        
                        -- Putdown
                        pcall(function()
                            BaseService.RF.PutdownAnimal:InvokeServer(cat.id)
                        end)
                        
                        statsLabel.Text = string.format("Picked up: %d\nPetted: %d\nLast: %s\nFound: %d", 
                            pickedUp, petted, cat.name, #catsInBase)
                        
                        task.wait(0.5)
                        break
                    end
                end
            end
            
            scanForCats()
        end)
        
        task.wait(2)
    end
end

-- Auto Pet Loop
local function autoPetLoop()
    while autoPetRunning do
        pcall(function()
            for _, cat in ipairs(catsInBase) do
                if not autoPetRunning then break end
                
                if selectedCats[cat.name] and cat.model and cat.model.Parent then
                    -- Pet
                    local success = pcall(function()
                        BaseService.RF.PetAnimal:InvokeServer(cat.id)
                    end)
                    
                    if success then
                        petted = petted + 1
                        
                        statsLabel.Text = string.format("Picked up: %d\nPetted: %d\nLast pet: %s\nFound: %d", 
                            pickedUp, petted, cat.name, #catsInBase)
                        statsLabel.TextColor3 = Color3.fromRGB(255, 150, 255)
                        
                        task.wait(0.5)
                    end
                end
            end
        end)
        
        task.wait(1) -- Pet all selected cats then wait
    end
end

-- Toggle Pickup
togglePickupButton.MouseButton1Click:Connect(function()
    autoPickupRunning = not autoPickupRunning
    
    if autoPickupRunning then
        if next(selectedCats) == nil then
            autoPickupRunning = false
            statusLabel.Text = "Error: No cats selected!"
            statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
            return
        end
        
        togglePickupButton.Text = "Stop Auto Pickup/Drop"
        togglePickupButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
        task.spawn(autoPickupLoop)
    else
        togglePickupButton.Text = "Start Auto Pickup/Drop"
        togglePickupButton.BackgroundColor3 = Color3.fromRGB(50, 150, 50)
    end
end)

-- Toggle Pet
togglePetButton.MouseButton1Click:Connect(function()
    autoPetRunning = not autoPetRunning
    
    if autoPetRunning then
        if next(selectedCats) == nil then
            autoPetRunning = false
            statusLabel.Text = "Error: No cats selected!"
            statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
            return
        end
        
        togglePetButton.Text = "Stop Auto Pet"
        togglePetButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
        task.spawn(autoPetLoop)
    else
        togglePetButton.Text = "Start Auto Pet"
        togglePetButton.BackgroundColor3 = Color3.fromRGB(100, 50, 150)
    end
end)

task.wait()
contentFrame.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 20)

-- Draggable
local dragging, dragInput, dragStart, startPos

titleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 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)

titleBar.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        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
end)

print("Auto Cat Manager loaded!")
print("Features: Auto Pickup/Drop + Auto Pet")

Features & Information

this just to prevent them from leaving and if they reach a certain level u can keep them permanently also script is also made by ai pls no hate pls plsp lspl pls pls

Community Comments (3)

DuckDudeDuckDudeFeb 14, 2026(edited)

Hello, I was wondering how you byp*ed the AI restrictions for creating scripts. Would you mind sharing?

oxyjuoxyjuMar 7, 2026

script isn’t dragable, and takes up the middle of the screen on mobile.

Replying to @oxyju
RamiroRamiroJun 11, 2026

@oxyju usa ia para hacer la Gui más pequeña.

More Scripts for [ Content Deleted ]