local Players = game:GetService("Players") local RunService = game:GetService("RunService") local ProximityPromptService = game:GetService("ProximityPromptService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local hrp = character:WaitForChild("HumanoidRootPart") local cheeseFolder = workspace.Cheese local safeBlock = Instance.new("Part") safeBlock.Size = Vector3.new(10, 1, 10) safeBlock.Anchored = true safeBlock.CanCollide = true safeBlock.Transparency = 1 safeBlock.Name = "SafeFallbackBlock" safeBlock.Position = Vector3.new(0, 50, 0) safeBlock.Parent = workspace local noclipEnabled = false local teleportedToFallback = false RunService.Stepped:Connect(function() if noclipEnabled and character and character:FindFirstChild("Humanoid") then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end end end) local function findPrompt(item) return item:FindFirstChildWhichIsA("ProximityPrompt", true) end local function forcePickup(item) local prompt = findPrompt(item) if prompt then task.spawn(function() for i = 1, 8 do if not item.Parent then break end fireproximityprompt(prompt) task.wait(0.05) end end) end end local function getAllCheese() local cheeses = {} for _, cheese in ipairs(cheeseFolder:GetChildren()) do if cheese:IsA("Model") or cheese:IsA("BasePart") then table.insert(cheeses, cheese) end end table.sort(cheeses, function(a, b) local posA = (a:IsA("Model") and a.PrimaryPart and a.PrimaryPart.Position) or (a:IsA("BasePart") and a.Position) or Vector3.new() local posB = (b:IsA("Model") and b.PrimaryPart and b.PrimaryPart.Position) or (b:IsA("BasePart") and b.Position) or Vector3.new() return (hrp.Position - posA).Magnitude < (hrp.Position - posB).Magnitude end) return cheeses end while true do if not character or not character.Parent then character = player.Character or player.CharacterAdded:Wait() hrp = character:WaitForChild("HumanoidRootPart") end local cheeses = getAllCheese() if #cheeses > 0 then noclipEnabled = true teleportedToFallback = false for _, cheese in ipairs(cheeses) do if cheese and cheese.Parent then local pos if cheese:IsA("Model") and cheese.PrimaryPart then pos = cheese.PrimaryPart.Position elseif cheese:IsA("BasePart") then pos = cheese.Position end if pos then hrp.CFrame = CFrame.new(pos + Vector3.new(0, 3, 0)) task.wait(0.05) forcePickup(cheese) end end end noclipEnabled = false else if not teleportedToFallback then hrp.CFrame = safeBlock.CFrame + Vector3.new(0, 3, 0) teleportedToFallback = true end task.wait(0.5) end end