SCP 3008 [Auto collect food, medkits]

MADE BY TheUniqueZYX

FEATURE:

  • AUTO COLLECTOR

GAME LINK:
SCP 3008

SCRIPT:

--[[ Settings ]]
local TimesToTeleport = 50
local Radius = 40

--[[ Variables ]]
local PS = game:GetService("Players")
local WS = game:GetService("Workspace")
local Player = PS.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")
local Character = PS.LocalPlayer.Character or PS.LocalPlayer.CharacterAdded:Wait()
local Backpack = Player:WaitForChild("Backpack")
local HumanoidRoot = Character:WaitForChild("HumanoidRootPart")
local ItemsFolder = WS:WaitForChild("GameObjects").Physical.Items
local Storage = PlayerGui:WaitForChild("MainGui").Inventory.Storage

--[[ Remotes ]]
local Pickup  = Character:WaitForChild("server_PickupSystem").MainEvent
local Inventory = Character:WaitForChild("server_PickupSystem").Inventory

local OldCFrame = HumanoidRoot.CFrame 
local OldPosition = HumanoidRoot.Position 

function Check(Object)
    if Object.Name == "Crowbar" then
        return false
    end
    if Object:FindFirstChildOfClass("Part") or Object:FindFirstChildOfClass("MeshPart") then
        local Part = Object:FindFirstChildOfClass("Part") or Object:FindFirstChildOfClass("MeshPart")
        local Distance = (OldPosition - Part.Position).magnitude
        if Distance < Radius then
            return false
        end
        return true, Part
    end
    return false
end

function InvetoryCheck()
    local StorageAmount = string.match(Storage.Text, "%d+")
    if StorageAmount == "16" then
        HumanoidRoot.CFrame = OldCFrame
        wait()
        for i,v in pairs(Backpack:GetChildren()) do
            Inventory:InvokeServer({["Action"] = "DropStack", ["Model"] = v})
            StorageAmount = string.match(Storage.Text, "%d+")
        end
        repeat task.wait() until StorageAmount == "0"
    end
    return "Done"
end

local Amount = 0
for i,v in pairs(WS:GetDescendants()) do
    if v:FindFirstChild("InventoryTag") and v:FindFirstChild("PickupTag") then
        local Bool, Part = Check(v)
        if Bool then
            Amount = Amount + 1
            if Amount >= TimesToTeleport then
                HumanoidRoot.CFrame = OldCFrame
                return;
            else
                repeat task.wait()
                    repeat task.wait() until InvetoryCheck() == "Done"
                        Bool, Part = Check(v)
                        if Part ~= nil then
                            HumanoidRoot.CFrame = Part.CFrame 
                            Pickup:InvokeServer({["Action"] = "AlternateInteract", ["Model"] = v})
                        end
                until Part == nil
            end
        end
    end
end

⚠️ Warning: Do not download any extensions or anything other than .txt/.lua file, because script will download only in .txt/.lua format or It will redirect you to a pastebin link.

📋 Notice: If you find any of the scripts patched or not working, please report it to Forever4D through Discord. The script will be removed or marked as patched!