Feed Your Teto (also known as Feed the Teto) has become one of Roblox’s most addictive idle simulators in 2026. Players spend hours feeding the beloved character Teto, chasing UST notes that spawn across the map, and converting playtime into powerful gacha chests filled with cards and upgrades. The goal? Stack yen, sell duplicates, and scale your feeding efficiency as fast as possible.
Manual grinding gets old fast—especially when UST notes scatter everywhere and chests require precise timing based on your accumulated seconds. That’s where community scripts shine. The scripts below turn tedious collection and purchasing into fully automated systems using a clean Rayfield GUI. Whether you want passive UST farming or bulk chest buying with automatic duplicate selling, these tools deliver smooth, keyless performance across popular executors like Xeno.
FeedTheTeto Utils – Auto UST Collection, Smart Chest Purchasing & Real-Time Monitoring
| Script Name | Supported Game | Key Features / Status |
|---|---|---|
| FeedTheTeto Utils | Feed Your Teto | UST Auto Collector, Chest Buyer (Wood/Magic/Royale), Rayfield GUI, Ping Monitoring |
Analysis: This script transforms the core gameplay loop of Feed Your Teto by automating two of the biggest time sinks: collecting UST notes and spending playtime on chests. The UST Collector dynamically moves the spawn area to follow your character while teleporting every new note directly to you—bypassing manual chasing entirely. The Chest Buyer tab shows your exact playtime in seconds and calculates how many Wood (60s), Magic (240s), or Royale (3600s) chests you can afford. It then bulk-buys them and instantly sells duplicate cards via the remote. Built-in ping-based delays keep everything stable even on higher-latency connections, and live status labels let you monitor everything at a glance. Perfect for AFK sessions or multitasking while you rack up yen and rare cards with zero effort.
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 you",
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()
SpawnArea.CanCollide = false
SpawnArea.CanQuery = false
SpawnArea.Size = Vector3.new(4, 4, 4)
SpawnArea.Transparency = 0.9
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},
{name = "Royale Chest", arg = "Royale Chest", cost = 3600},
}
local function getSeconds()
local ok, f = pcall(function()
return LocalPlayer.PlayerGui:WaitForChild("TimeShopDisplay_TimePlayed").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("⏳ " .. s .. "s | Wood: " .. math.floor(s / 60) .. " | Magic: " .. math.floor(s / 240) .. " | Royale: " .. math.floor(s / 3600))
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
pcall(function()
SellRemote:InvokeServer()
end)
Rayfield:Notify({
Title = "Done!",
Content = "Bought " .. bought .. "x " .. chest.name .. " & sold duplicates ✓",
Duration = 5,
})
end
})
end
Feed the Teto UST Collector Script – Simplified UST Farming & Streamlined Chest Buying
| Script Name | Supported Game | Key Features / Status |
|---|---|---|
| Feed the Teto UST Collector | Feed Your Teto | UST Auto Collector, Chest Buyer (Wood/Magic), Rayfield GUI, Keyless |
Analysis: This lightweight variant of the FeedTheTeto Utils script focuses on the essentials for players who want fast setup and reliable farming without extra options. It delivers the same powerful UST Collector that follows your character and teleports notes instantly, plus a streamlined Chest Buyer that handles Wood and Magic chests with automatic duplicate selling. The real-time time tracker and ping display keep everything transparent. Ideal if you prefer a cleaner interface or the game’s GUI path has updated slightly—still excellent for steady yen gains and passive progression.
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
Feed Your Teto Auto Farm & Auto Feed Script – Full Progression Automation
| Script Name | Supported Game | Key Features / Status |
|---|---|---|
| Feed Your Teto Auto Farm Script | Feed Your Teto | Auto Farm, Auto Feed, Auto Place, Auto Stats |
Analysis: Looking for complete hands-off progression? This dedicated auto farm script handles the entire feeding cycle—automatically farming resources, feeding Teto, placing feeder machines, and upgrading stats for maximum yen output. It’s the perfect companion to the UST Collector above, letting you combine passive note gathering with full automation. Created for players who want to scale fast without constant input, it’s especially strong for long sessions or overnight grinding.
loadstring(game:HttpGet("https://pastee.dev/r/WyLxDGNV/0"))()
Quick Tips for Best Results
- Enable the UST Collector first for steady note income, then use the Chest Buyer to convert playtime into rewards.
- The scripts use your real network ping for safe delays—great for stable performance even on mobile or higher ping.
- Always test in a fresh server and toggle features off before leaving the game to restore original map behavior.
These Roblox scripts for Feed Your Teto turn hours of repetitive clicking into smooth, rewarding automation. Whether you grab the full Rayfield GUI version with Royale Chest support or the streamlined variant, you’ll farm UST notes, buy chests, and grow your Teto empire faster than ever. Drop the code into your favorite executor, toggle what you need, and watch your yen counter climb. Happy feeding—see you at the top of the leaderboards in 2026!