-- [[ 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 ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6abac82d60bac1e4fb4edc64"))() end) end) --[[rscripts:analytics:end]] -- Auto-Pull for Cheese Pull — owner ID plot detection local RS = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Remotes = RS:WaitForChild("Remotes", 10) if not Remotes then warn("[AutoPull] Remotes not found") return end local unpack = table.unpack or unpack local Config = { Enabled = true, Setup = nil, ProgressStep = 0.5, ProgressMax = 11.05, CompleteDelay = 0.2, LoopDelay = 0.3, FoodWait = 1.0, DropdownRefresh = 3, Debug = true, } local Stats = { Pulls = 0, CurrentFood = "—", Status = "Starting...", Setups = {}, PlotPath = "scanning...", PlotOwnerId = "—", } local function log(msg) if Config.Debug then print("[AutoPull] " .. msg) end end local function fire(name, ...) local r = Remotes:FindFirstChild(name) if not r then log("Missing remote: " .. name) return false end local args = {...} local n = select("#", ...) local ok, err = pcall(function() r:FireServer(unpack(args, 1, n)) end) if not ok then log("Fail " .. name .. ": " .. tostring(err)) return false end return true end -- ============================================================ -- OWNER ID DETECTION -- ============================================================ -- Extract user ID from rbxthumb:// strings like: -- rbxthumb://type=AvatarHeadShot&id=3879325466&w=150&h=150 -- Returns nil if not found local function extractIdFromThumb(thumb) if type(thumb) ~= "string" then return nil end -- Find "id=" followed by digits, ending at "&" or end of string local id = thumb:match("id=(%d+)") if id then return tonumber(id) end return nil end -- Look through a plot for the owner display icon and extract the ID local function getPlotOwnerId(plot) local ownerData = plot:FindFirstChild("OwnerData") if not ownerData then return nil end local display = ownerData:FindFirstChild("Display") if not display then return nil end local frame = display:FindFirstChild("Frame") if not frame then return nil end -- Look for ImageLabel / ImageButton with the thumb URL local icon = frame:FindFirstChild("Icon") if not icon then return nil end -- Icon could be an ImageLabel, ImageButton, or Decal local image = nil if icon:IsA("ImageLabel") or icon:IsA("ImageButton") then image = icon.Image elseif icon:IsA("Decal") then image = icon.Texture else -- Search descendants for anything with an Image/Texture for _, d in ipairs(icon:GetDescendants()) do if d:IsA("ImageLabel") or d:IsA("ImageButton") then image = d.Image break elseif d:IsA("Decal") then image = d.Texture break end end end return extractIdFromThumb(image) end -- Find the plot owned by the local player by matching the user ID local function findMyPlot() local plots = Workspace:FindFirstChild("Plots") if not plots then return nil, "No Plots folder" end local myId = LocalPlayer.UserId local allPlots = {} for _, plot in ipairs(plots:GetChildren()) do -- Get the owner ID from this plot's display local ownerId = getPlotOwnerId(plot) table.insert(allPlots, {plot = plot, ownerId = ownerId}) if ownerId == myId then return plot, nil end end -- Nothing matched — return diagnostics local foundIds = {} for _, entry in ipairs(allPlots) do table.insert(foundIds, string.format("%s=%s", entry.plot.Name, tostring(entry.ownerId))) end return nil, "Not found. Plots seen: " .. table.concat(foundIds, ", ") end local function findMyPlacedSetups() local plot, err = findMyPlot() if not plot then Stats.PlotPath = err or "not found" Stats.PlotOwnerId = "—" return nil end Stats.PlotPath = plot:GetFullName() Stats.PlotOwnerId = tostring(LocalPlayer.UserId) local placed = plot:FindFirstChild("PlacedSetups") if not placed then Stats.PlotPath = plot:GetFullName() .. " (no PlacedSetups)" return nil end return { placed = placed, plot = plot, path = plot:GetFullName() } end local function scanSetups() local candidate = findMyPlacedSetups() if not candidate then Stats.Setups = {} return {} end local names = {} for _, child in ipairs(candidate.placed:GetChildren()) do if child:IsA("Model") then table.insert(names, child.Name) end end table.sort(names) return names end local function getStreamSetup() if not Config.Setup then return nil end local candidate = findMyPlacedSetups() if not candidate then return nil end return candidate.placed:FindFirstChild(Config.Setup) end local function getCurrentFood(setup) if not setup then return nil end local foods = setup:FindFirstChild("Foods") if not foods then return nil end for _, child in ipairs(foods:GetChildren()) do if child:IsA("Model") then return child end end return nil end local function waitForFood(setup, timeout) local deadline = os.clock() + (timeout or Config.FoodWait) while os.clock() < deadline and Config.Enabled do local food = getCurrentFood(setup) if food then return food end task.wait(0.1) end return nil end -- ============================================================ -- PULL LOGIC -- ============================================================ local function runOnePull() local setup = getStreamSetup() if not setup then Stats.Status = "Setup not found: " .. tostring(Config.Setup) return false end Stats.Status = "Starting stream..." if not fire("StartStreamAt", setup) then Stats.Status = "StartStreamAt failed" return false end Stats.Status = "Waiting for food..." local food = waitForFood(setup, Config.FoodWait) if not food then Stats.Status = "No food spawned" return false end Stats.CurrentFood = food.Name Stats.Status = "Pulling " .. food.Name if not fire("PullState", "Held", food) then Stats.Status = "PullState failed" return false end task.wait(0.1) local t = 0 while t < Config.ProgressMax and Config.Enabled do t += Config.ProgressStep fire("PullProgress", food, t) task.wait(0.05) end task.wait(Config.CompleteDelay) fire("PullComplete", food) Stats.Pulls += 1 Stats.Status = "Idle" return true end -- ============================================================ -- GUI -- ============================================================ local gui = Instance.new("ScreenGui") gui.Name = "AutoPull" gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Global gui.Parent = game:GetService("CoreGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 300, 0, 360) frame.Position = UDim2.new(0.5, -150, 0.5, -180) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 30) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.ZIndex = 10 frame.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = frame local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundColor3 = Color3.fromRGB(45, 45, 55) title.Text = "Auto Pull" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBold title.TextSize = 14 title.ZIndex = 11 title.Parent = frame local tc = Instance.new("UICorner") tc.CornerRadius = UDim.new(0, 10) tc.Parent = title local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 22, 0, 22) closeBtn.Position = UDim2.new(1, -26, 0, 4) closeBtn.BackgroundColor3 = Color3.fromRGB(140, 40, 40) closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.Text = "X" closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 12 closeBtn.ZIndex = 12 closeBtn.Parent = frame local cbc = Instance.new("UICorner") cbc.CornerRadius = UDim.new(0, 6) cbc.Parent = closeBtn closeBtn.MouseButton1Click:Connect(function() Config.Enabled = false gui:Destroy() end) -- Setup dropdown local setupLabel = Instance.new("TextLabel") setupLabel.Size = UDim2.new(0, 280, 0, 16) setupLabel.Position = UDim2.new(0, 10, 0, 38) setupLabel.BackgroundTransparency = 1 setupLabel.Text = "Setup (auto-detected from your plot):" setupLabel.TextColor3 = Color3.fromRGB(180, 187, 198) setupLabel.Font = Enum.Font.Gotham setupLabel.TextSize = 11 setupLabel.TextXAlignment = Enum.TextXAlignment.Left setupLabel.ZIndex = 11 setupLabel.Parent = frame local dropdownBtn = Instance.new("TextButton") dropdownBtn.Size = UDim2.new(0, 280, 0, 28) dropdownBtn.Position = UDim2.new(0, 10, 0, 56) dropdownBtn.BackgroundColor3 = Color3.fromRGB(55, 55, 70) dropdownBtn.TextColor3 = Color3.fromRGB(240, 242, 245) dropdownBtn.Font = Enum.Font.GothamBold dropdownBtn.TextSize = 12 dropdownBtn.Text = "▼ Scanning..." dropdownBtn.TextXAlignment = Enum.TextXAlignment.Left dropdownBtn.ZIndex = 11 dropdownBtn.Parent = frame local dbcorner = Instance.new("UICorner") dbcorner.CornerRadius = UDim.new(0, 5) dbcorner.Parent = dropdownBtn local dbStroke = Instance.new("UIStroke") dbStroke.Thickness = 1 dbStroke.Color = Color3.fromRGB(90, 90, 110) dbStroke.Parent = dropdownBtn local backdrop = Instance.new("TextButton") backdrop.Size = UDim2.new(1, 0, 1, 0) backdrop.BackgroundTransparency = 1 backdrop.Text = "" backdrop.Visible = false backdrop.ZIndex = 40 backdrop.Parent = gui local dropdownList = Instance.new("ScrollingFrame") dropdownList.Size = UDim2.new(0, 280, 0, 0) dropdownList.Position = UDim2.new(0, 10, 0, 86) dropdownList.BackgroundColor3 = Color3.fromRGB(45, 45, 60) dropdownList.BorderSizePixel = 0 dropdownList.ScrollBarThickness = 6 dropdownList.ScrollBarImageColor3 = Color3.fromRGB(90, 90, 120) dropdownList.CanvasSize = UDim2.new(0, 0, 0, 0) dropdownList.Visible = false dropdownList.ZIndex = 50 dropdownList.Parent = frame local dlcorner = Instance.new("UICorner") dlcorner.CornerRadius = UDim.new(0, 5) dlcorner.Parent = dropdownList local dlStroke = Instance.new("UIStroke") dlStroke.Thickness = 1 dlStroke.Color = Color3.fromRGB(90, 90, 130) dlStroke.Parent = dropdownList local listLayout = Instance.new("UIListLayout") listLayout.Padding = UDim.new(0, 2) listLayout.SortOrder = Enum.SortOrder.LayoutOrder listLayout.Parent = dropdownList local dropdownOpen = false local function rebuildOptions() for _, child in ipairs(dropdownList:GetChildren()) do if child:IsA("TextButton") or child.Name == "emptyLbl" then child:Destroy() end end local names = Stats.Setups if #names == 0 then local empty = Instance.new("TextLabel") empty.Name = "emptyLbl" empty.Size = UDim2.new(1, -8, 0, 40) empty.Position = UDim2.new(0, 4, 0, 4) empty.BackgroundTransparency = 1 empty.Text = "No setups found.\nPath: " .. Stats.PlotPath empty.TextColor3 = Color3.fromRGB(200, 180, 180) empty.Font = Enum.Font.Gotham empty.TextSize = 10 empty.TextWrapped = true empty.ZIndex = 51 empty.Parent = dropdownList dropdownList.CanvasSize = UDim2.new(0, 0, 0, 50) return end for i, name in ipairs(names) do local isSelected = (name == Config.Setup) local opt = Instance.new("TextButton") opt.Size = UDim2.new(1, -10, 0, 26) opt.Position = UDim2.new(0, 5, 0, 0) opt.BackgroundColor3 = isSelected and Color3.fromRGB(0, 130, 210) or Color3.fromRGB(60, 60, 80) opt.TextColor3 = Color3.fromRGB(255, 255, 255) opt.Font = Enum.Font.GothamBold opt.TextSize = 12 opt.Text = (isSelected and "● " or " ") .. name opt.TextXAlignment = Enum.TextXAlignment.Left opt.LayoutOrder = i opt.ZIndex = 52 opt.Parent = dropdownList opt.MouseButton1Click:Connect(function() Config.Setup = name dropdownBtn.Text = "▼ " .. name dropdownOpen = false dropdownList.Visible = false dropdownList.Size = UDim2.new(0, 280, 0, 0) backdrop.Visible = false rebuildOptions() log("Setup changed to: " .. name) end) end dropdownList.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 10) end local function refreshSetups() local names = scanSetups() Stats.Setups = names if #names > 0 then local found = false for _, n in ipairs(names) do if n == Config.Setup then found = true; break end end if not found then Config.Setup = names[1] log("Auto-selected setup: " .. Config.Setup) end dropdownBtn.Text = "▼ " .. Config.Setup else Config.Setup = nil dropdownBtn.Text = "▼ No setups found" end if dropdownOpen then rebuildOptions() end end local function openDropdown() rebuildOptions() local names = Stats.Setups local height = math.min(180, #names * 28 + 12) if height < 40 then height = 40 end dropdownList.Size = UDim2.new(0, 280, 0, height) dropdownList.Visible = true backdrop.Visible = true dropdownOpen = true end local function closeDropdown() dropdownList.Visible = false dropdownList.Size = UDim2.new(0, 280, 0, 0) backdrop.Visible = false dropdownOpen = false end dropdownBtn.MouseButton1Click:Connect(function() if dropdownOpen then closeDropdown() else openDropdown() end end) backdrop.MouseButton1Click:Connect(function() if dropdownOpen then closeDropdown() end end) -- Status rows local function makeRow(labelText, yPos) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0, 100, 0, 20) lbl.Position = UDim2.new(0, 12, 0, yPos) lbl.BackgroundTransparency = 1 lbl.Text = labelText lbl.TextColor3 = Color3.fromRGB(160, 167, 178) lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.ZIndex = 11 lbl.Parent = frame local val = Instance.new("TextLabel") val.Size = UDim2.new(0, 176, 0, 20) val.Position = UDim2.new(0, 112, 0, yPos) val.BackgroundTransparency = 1 val.Text = "—" val.TextColor3 = Color3.fromRGB(240, 242, 245) val.Font = Enum.Font.GothamBold val.TextSize = 12 val.TextXAlignment = Enum.TextXAlignment.Right val.TextTruncate = Enum.TextTruncate.AtEnd val.ZIndex = 11 val.Parent = frame return val end local statusVal = makeRow("Status:", 100) statusVal.TextColor3 = Color3.fromRGB(120, 220, 150) local foodVal = makeRow("Food:", 122) foodVal.TextColor3 = Color3.fromRGB(255, 210, 80) local pullsVal = makeRow("Pulls:", 144) pullsVal.TextColor3 = Color3.fromRGB(120, 190, 255) local setupsVal = makeRow("Setups:", 166) setupsVal.TextColor3 = Color3.fromRGB(200, 180, 255) local idVal = makeRow("Owner ID:", 188) idVal.TextColor3 = Color3.fromRGB(255, 180, 220) local pathVal = makeRow("Plot:", 210) pathVal.TextColor3 = Color3.fromRGB(150, 170, 200) pathVal.TextSize = 9 local div = Instance.new("Frame") div.Size = UDim2.new(0.9, 0, 0, 1) div.Position = UDim2.new(0.05, 0, 0, 236) div.BackgroundColor3 = Color3.fromRGB(55, 60, 70) div.BorderSizePixel = 0 div.ZIndex = 11 div.Parent = frame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0.9, 0, 0, 34) toggleBtn.Position = UDim2.new(0.05, 0, 0, 246) toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 160, 0) toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextSize = 13 toggleBtn.Text = "Auto Pull: ON" toggleBtn.ZIndex = 11 toggleBtn.Parent = frame local tbc = Instance.new("UICorner") tbc.CornerRadius = UDim.new(0, 6) tbc.Parent = toggleBtn toggleBtn.MouseButton1Click:Connect(function() Config.Enabled = not Config.Enabled toggleBtn.BackgroundColor3 = Config.Enabled and Color3.fromRGB(0, 160, 0) or Color3.fromRGB(180, 50, 50) toggleBtn.Text = "Auto Pull: " .. (Config.Enabled and "ON" or "OFF") if Config.Enabled then task.spawn(function() while Config.Enabled do local ok = runOnePull() task.wait(ok and Config.LoopDelay or 1) end end) end end) local spdLbl = Instance.new("TextLabel") spdLbl.Size = UDim2.new(0.9, 0, 0, 16) spdLbl.Position = UDim2.new(0.05, 0, 0, 288) spdLbl.BackgroundTransparency = 1 spdLbl.Text = "Progress Step: " .. Config.ProgressStep spdLbl.TextColor3 = Color3.fromRGB(160, 167, 178) spdLbl.Font = Enum.Font.Gotham spdLbl.TextSize = 11 spdLbl.TextXAlignment = Enum.TextXAlignment.Left spdLbl.ZIndex = 11 spdLbl.Parent = frame local minusBtn = Instance.new("TextButton") minusBtn.Size = UDim2.new(0.15, 0, 0, 22) minusBtn.Position = UDim2.new(0.05, 0, 0, 310) minusBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50) minusBtn.TextColor3 = Color3.fromRGB(255, 255, 255) minusBtn.Text = "-" minusBtn.Font = Enum.Font.GothamBold minusBtn.TextSize = 14 minusBtn.ZIndex = 11 minusBtn.Parent = frame local mbc = Instance.new("UICorner") mbc.CornerRadius = UDim.new(0, 5) mbc.Parent = minusBtn minusBtn.MouseButton1Click:Connect(function() Config.ProgressStep = math.max(0.1, Config.ProgressStep - 0.1) spdLbl.Text = "Progress Step: " .. string.format("%.1f", Config.ProgressStep) end) local plusBtn = Instance.new("TextButton") plusBtn.Size = UDim2.new(0.15, 0, 0, 22) plusBtn.Position = UDim2.new(0.80, 0, 0, 310) plusBtn.BackgroundColor3 = Color3.fromRGB(0, 160, 0) plusBtn.TextColor3 = Color3.fromRGB(255, 255, 255) plusBtn.Text = "+" plusBtn.Font = Enum.Font.GothamBold plusBtn.TextSize = 14 plusBtn.ZIndex = 11 plusBtn.Parent = frame local pbc = Instance.new("UICorner") pbc.CornerRadius = UDim.new(0, 5) pbc.Parent = plusBtn plusBtn.MouseButton1Click:Connect(function() Config.ProgressStep = math.min(2.0, Config.ProgressStep + 0.1) spdLbl.Text = "Progress Step: " .. string.format("%.1f", Config.ProgressStep) end) local refreshBtn = Instance.new("TextButton") refreshBtn.Size = UDim2.new(0.9, 0, 0, 22) refreshBtn.Position = UDim2.new(0.05, 0, 0, 336) refreshBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 90) refreshBtn.TextColor3 = Color3.fromRGB(255, 255, 255) refreshBtn.Font = Enum.Font.GothamBold refreshBtn.TextSize = 11 refreshBtn.Text = "Force Rescan Setups" refreshBtn.ZIndex = 11 refreshBtn.Parent = frame local rbc = Instance.new("UICorner") rbc.CornerRadius = UDim.new(0, 6) rbc.Parent = refreshBtn refreshBtn.MouseButton1Click:Connect(function() refreshSetups() log("Manual rescan triggered") end) task.spawn(function() while gui.Parent do statusVal.Text = Stats.Status foodVal.Text = Stats.CurrentFood pullsVal.Text = tostring(Stats.Pulls) setupsVal.Text = tostring(#Stats.Setups) idVal.Text = Stats.PlotOwnerId pathVal.Text = Stats.PlotPath task.wait(0.25) end end) task.spawn(function() refreshSetups() while gui.Parent do task.wait(Config.DropdownRefresh) refreshSetups() end end) task.spawn(function() log("Loop starting...") while Config.Enabled do if not Config.Setup then task.wait(0.5) else local ok = runOnePull() task.wait(ok and Config.LoopDelay or 1) end end end) print("[AutoPull] Loaded.") print("[AutoPull] Owner ID: " .. tostring(LocalPlayer.UserId)) print("[AutoPull] Will scan workspace.Plots for the plot with your ID in OwnerData.Display.Frame.Icon")