local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Remote = ReplicatedStorage:WaitForChild("FeedTheTetoRemotes"):WaitForChild("BuyGachaCard")
local SellRemote = ReplicatedStorage:WaitForChild("FeedTheTetoRemotes"):WaitForChild("SellDuplicateCards")
local LocalUSTNotes = workspace:WaitForChild("LocalUSTNotes")
local SpawnArea = workspace:WaitForChild("SpawnUSTArea")
local Hitbox = workspace:WaitForChild("UST_Hitbox")
-- Rayfield
local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))()
local Window = Rayfield:CreateWindow({
Name = "FeedTheTeto Utils",
LoadingTitle = "FeedTheTeto Utils",
LoadingSubtitle = "by asnd",
Theme = "Default",
DisableRayfieldPrompts = false,
DisableBuildWarnings = false,
ConfigurationSaving = {
Enabled = false,
},
KeySystem = false,
})
-- =====================
-- UST COLLECTOR TAB
-- =====================
local USTTab = Window:CreateTab("🎵 UST Collector", nil)
-- Save original values
local originalCanCollide = SpawnArea.CanCollide
local originalSize = SpawnArea.Size
local originalTransparency = SpawnArea.Transparency
local originalCFrame = SpawnArea.CFrame
local originalSpawnCanQuery = SpawnArea.CanQuery
local originalHitboxSize = Hitbox.Size
local originalHitboxTransparency = Hitbox.Transparency
local originalHitboxCanQuery = Hitbox.CanQuery
local originalHitboxCanCollide = Hitbox.CanCollide
local followActive = false
local noteConnection = nil
local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local rootPart = character:WaitForChild("HumanoidRootPart")
local function startCollector()
-- Configure spawn part
SpawnArea.CanCollide = false
SpawnArea.CanQuery = false
SpawnArea.Size = Vector3.new(4, 4, 4)
SpawnArea.Transparency = 0.9
-- Configure hitbox
Hitbox.Size = Vector3.new(10, 10, 10)
Hitbox.Transparency = 1
Hitbox.CanCollide = false
Hitbox.CanQuery = false
followActive = true
task.spawn(function()
while followActive do
SpawnArea.CFrame = rootPart.CFrame
task.wait(LocalPlayer:GetNetworkPing() * 1.14)
end
end)
noteConnection = LocalUSTNotes.ChildAdded:Connect(function(child)
character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
rootPart = character:WaitForChild("HumanoidRootPart")
task.wait()
if child:IsA("BasePart") then
child.CFrame = rootPart.CFrame + Vector3.new(0, 3, 0)
elseif child:IsA("Model") then
if child.PrimaryPart then
child:SetPrimaryPartCFrame(rootPart.CFrame + Vector3.new(0, 3, 0))
else
child:PivotTo(rootPart.CFrame + Vector3.new(0, 3, 0))
end
end
end)
end
local function stopCollector()
followActive = false
if noteConnection then
noteConnection:Disconnect()
noteConnection = nil
end
SpawnArea.CanCollide = originalCanCollide
SpawnArea.CanQuery = originalSpawnCanQuery
SpawnArea.Size = originalSize
SpawnArea.Transparency = originalTransparency
SpawnArea.CFrame = originalCFrame
Hitbox.Size = originalHitboxSize
Hitbox.Transparency = originalHitboxTransparency
Hitbox.CanQuery = originalHitboxCanQuery
Hitbox.CanCollide = originalHitboxCanCollide
end
USTTab:CreateToggle({
Name = "Enable UST Collector",
CurrentValue = false,
Flag = "USTCollector",
Callback = function(state)
if state then
startCollector()
Rayfield:Notify({
Title = "UST Collector",
Content = "Collector started!",
Duration = 3,
})
else
stopCollector()
Rayfield:Notify({
Title = "UST Collector",
Content = "Collector stopped & reverted.",
Duration = 3,
})
end
end
})
USTTab:CreateSection("Info")
local pingLabel = USTTab:CreateLabel("Ping: calculating...")
local statusLabel = USTTab:CreateLabel("Status: Idle")
task.spawn(function()
while true do
pingLabel:Set("Ping: " .. math.round(LocalPlayer:GetNetworkPing() * 1000) .. "ms")
if followActive then
statusLabel:Set("Status: ✅ Running")
else
statusLabel:Set("Status: ⛔ Stopped")
end
task.wait(1)
end
end)
-- =====================
-- CHEST BUYER TAB
-- =====================
local ChestTab = Window:CreateTab("🎴 Chest Buyer", nil)
local Chests = {
{name = "Wood Chest", arg = "Wood Chest", cost = 60},
{name = "Magic Chest", arg = "Magic Chest", cost = 240},
}
local function getSeconds()
local ok, f = pcall(function()
return LocalPlayer.PlayerGui:WaitForChild("TimeShopDisplay").Frame
end)
if not ok then return 0 end
local text = f.Frame.TextLabel.Text
local num = tonumber(text:match("[%d%.]+")) or 0
if text:find("k") then num = num * 1000
elseif text:find("M") then num = num * 1000000
elseif text:find("B") then num = num * 1000000000 end
return math.floor(num)
end
ChestTab:CreateSection("Time Info")
local timeLabel = ChestTab:CreateLabel("Time: loading...")
task.spawn(function()
while true do
local s = getSeconds()
timeLabel:Set("⏳ Time: " .. s .. "s | Wood: " .. math.floor(s / 60) .. " | Magic: " .. math.floor(s / 240))
task.wait(1)
end
end)
ChestTab:CreateSection("Buy Chests")
for _, chest in ipairs(Chests) do
ChestTab:CreateButton({
Name = "Buy " .. chest.name .. " (" .. chest.cost .. "s each)",
Callback = function()
local seconds = getSeconds()
local amount = math.floor(seconds / chest.cost)
if amount <= 0 then
Rayfield:Notify({
Title = "Not enough time!",
Content = "You need at least " .. chest.cost .. "s to buy a " .. chest.name,
Duration = 3,
})
return
end
Rayfield:Notify({
Title = "Buying " .. chest.name,
Content = "Buying " .. amount .. "x " .. chest.name .. "...",
Duration = 3,
})
local bought = 0
for j = 1, amount do
local ok, err = pcall(function()
Remote:InvokeServer(chest.arg)
end)
if not ok then
Rayfield:Notify({
Title = "Error",
Content = tostring(err),
Duration = 5,
})
return
end
bought += 1
task.wait(LocalPlayer:GetNetworkPing() * 2)
end
-- Sell duplicates
pcall(function()
SellRemote:InvokeServer()
end)
Rayfield:Notify({
Title = "Done!",
Content = "Bought " .. bought .. "x " .. chest.name .. " & sold duplicates ✓",
Duration = 5,
})
end
})
end