
Key Required

-- 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")
Hello, I was wondering how you byp*ed the AI restrictions for creating scripts. Would you mind sharing?
script isn’t dragable, and takes up the middle of the screen on mobile.
@oxyju usa ia para hacer la Gui más pequeña.