What's new
Heapleak - Scripthub

Get the most out of HeapLeak by creating a free account! Once signed in, you’ll gain full access to restricted content, be able to share your own scripts, and participate in our member-only discussions.

UST collect + Chest buyer ui

Version / Update: v1.0.0
Download / Script Link
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
[ View More ]
45d3a40a-f746-46cf-b326-6dfa54640057.webp


same as the other one but with a chest opener and a ui using Rayfield
 
Back
Top