Select Game
Escape Tsunami
ETFB
PartTime Worker
ETFB
Tracker
Plaza
Scripts
Refresh
Global Items
22.17.57
Hidden:
Basic Bat
SignTool
Anububu
Wildfire Anububu
Block
Wildfire Magmew
Wildfire Polizini Cerbero
Burrascano Spettro Marinaro
Mirella
846
Daftar Akun
Online
0
Offline
25
Total
25
AlphabZStormyzZThorn
323.51DDe
anvil5uk
397.36DDe
BeastSaberHer01998
38.35DDe
ChillsmFir3K1999
92.32DDe
Fazryy58
323.53DDe
Nebulaa1Sonicr1Ultra
44.49DDe
NeonZRHeros200022
57.35DDe
NinjaqUNightfall4199
22.84DDe
Nova1sDragonF199621
201.26DDe
Rift86Omegav199230
51.52DDe
Rift9bSparklyi199136
245.87DDe
saumagodin12
427.39DDe
saumagodin13
619.9DDe
saumagodin3
95.32DDe
saumagodin6
912.21DDe
swoos5ix
396.42DDe
vinztow05
252.12DDe
vinztow08
125.01DDe
waveluckyblock001
297.34DDe
Xz_BlocktcFall3nQcPi
130.94DDe
Xz_EchoRjMirag3jjEch
149.83DDe
XZ_SilvermJCelestial
98.85DDe
XzAlpha8hBlazeIhFr0s
58.1DDe
XzOrbitN2PhoenixQzX1
167.56DDe
XzWarpxFB3armzX22
55.88DDe
Detail Akun
Pilih akun
—
✕
Popup Logs
Semua Log
Hanya DUPED
Selain Duped
Clear
Belum ada log.
Daftar Akun
Online
0
Offline
25
Total
25
AlphabZStormyzZThorn
323.51DDe
anvil5uk
397.36DDe
BeastSaberHer01998
38.35DDe
ChillsmFir3K1999
92.32DDe
Fazryy58
323.53DDe
Nebulaa1Sonicr1Ultra
44.49DDe
NeonZRHeros200022
57.35DDe
NinjaqUNightfall4199
22.84DDe
Nova1sDragonF199621
201.26DDe
Rift86Omegav199230
51.52DDe
Rift9bSparklyi199136
245.87DDe
saumagodin12
427.39DDe
saumagodin13
619.9DDe
saumagodin3
95.32DDe
saumagodin6
912.21DDe
swoos5ix
396.42DDe
vinztow05
252.12DDe
vinztow08
125.01DDe
waveluckyblock001
297.34DDe
Xz_BlocktcFall3nQcPi
130.94DDe
Xz_EchoRjMirag3jjEch
149.83DDe
XZ_SilvermJCelestial
98.85DDe
XzAlpha8hBlazeIhFr0s
58.1DDe
XzOrbitN2PhoenixQzX1
167.56DDe
XzWarpxFB3armzX22
55.88DDe
Detail Akun
Pilih akun dulu
—
✕
Global Items
—
Hidden:
Basic Bat
SignTool
Anububu
Wildfire Anububu
Block
Wildfire Magmew
Wildfire Polizini Cerbero
Burrascano Spettro Marinaro
Mirella
846
Popup Logs
Semua Log
Hanya DUPED
Selain Duped
Clear
Belum ada log.
Total Trade Tokens
0
—
CarrotNgawi1
○ Offline
Trade Tokens
3.478
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
gudangarya
● Online
Trade Tokens
188
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
riftplaza2
○ Offline
Trade Tokens
146
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
MaxBUScythek
○ Offline
Trade Tokens
564
Set Price
Update All
Basic Bat
1x
Mirella
13x
SignTool
1x
💾 Simpan Harga
riftplaza
○ Offline
Trade Tokens
3.290
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
alarliannn
○ Offline
Trade Tokens
282
Set Price
Update All
Basic Bat
1x
Mirella
1x
SignTool
1x
💾 Simpan Harga
NajeeeJi
● Online
Trade Tokens
1.128
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
alzsk01
○ Offline
Trade Tokens
188
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
saumagodin6
● Online
Trade Tokens
1.316
Set Price
Update All
Anububu
1x
Wildfire Polizini Cerbero
1x
Wildfire Anububu
2x
Burrascano Spettro Marinaro
1x
Basic Bat
1x
Mirella
75x
SignTool
1x
💾 Simpan Harga
XzTigerNgChaos4zX
○ Offline
Trade Tokens
1.997
Set Price
Update All
Basic Bat
1x
Mirella
38x
SignTool
1x
💾 Simpan Harga
PrismYECrimsonn1992
○ Offline
Trade Tokens
3.682
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
riftplaza1
○ Offline
Trade Tokens
2.256
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
gudangarya2
○ Offline
Trade Tokens
2.068
Set Price
Update All
SignTool
1x
Basic Bat
1x
💾 Simpan Harga
Plaza Live Logs
Clear
Belum ada log.
🗑️ Plaza logs cleared!
Bot Scripts
✕
Akun
Detail
Plaza
Script Tracker (Farming Bot)
Copy Tracker
-- ===================================================================== -- CATHLEEN PRO TRACKER - ETFB (Escape Tsunami Farming Bot) -- ===================================================================== local SUPABASE_URL = "https://kojfzfblyueopjzrzdil.supabase.co" local SUPABASE_KEY = "sb_publishable_mOB4oa0BTuTlnAOoE0iLOA_GMa7sfxX" local HttpService = game:GetService("HttpService") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local UPDATE_INTERVAL = 60 local Mutations = { "Blood","Crimson","Diamond","Electric","Gold","Emerald","Radioactive", "Admin","UFO","Hacker","Lucky","Money","Gamer","Candy","Doom","Fire", "Ice","Phantom","Shamrock","Showtime","Eggsplosion","Tidal","Miner" } local request_func = (syn and syn.request) or (http and http.request) or http_request or (Fluxus and Fluxus.request) or (request) local function cleanName(name) for _, mut in ipairs(Mutations) do name = name:gsub("^" .. mut .. "%s+", ""):gsub("%s+" .. mut .. "$" , "") end return name:match("^%s*(.-)%s*$") end local function getInventory() local bp = LocalPlayer:FindFirstChild("Backpack") if not bp then return "Kosong" end local counts = {} for _, item in ipairs(bp:GetChildren()) do if item:IsA("Tool") or item:IsA("Model") then local rawName = item:GetAttribute("DisplayName") or item.Name local name = cleanName(rawName) if name:find("Lucky Block") then name = "Lucky Block" end counts[name] = (counts[name] or 0) + 1 end end local list = {} for n, c in pairs(counts) do table.insert(list, n .. " (" .. c .. ")") end table.sort(list) return #list > 0 and table.concat(list, "\n") or "Kosong" end local function sendTrackerLog(message) if not request_func then return end pcall(function() request_func({ Url = SUPABASE_URL .. "/rest/v1/tracker_logs", Method = "POST", Headers = { ["apikey"] = SUPABASE_KEY, ["Authorization"] = "Bearer " .. SUPABASE_KEY, ["Content-Type"] = "application/json", ["Prefer"] = "return=minimal" }, Body = HttpService:JSONEncode({ username = LocalPlayer.Name, message = tostring(message) }) }) end) end local function anyToString(val) if val == nil then return "nil" end local t = type(val) if t == "string" then return val end if t == "number" or t == "boolean" then return tostring(val) end if t == "table" then local msg = val.message or val.Message or val.text or val.Text or val.msg or val.Msg or val.content or val.Content if msg then return tostring(msg) end local parts = {} for k, v in pairs(val) do table.insert(parts, tostring(k) .. "=" .. tostring(v)) end return "{" .. table.concat(parts, ", ") .. "}" end return tostring(val) end local function hookDisplayPopup() local ok, remote = pcall(function() return game:GetService("ReplicatedStorage") :WaitForChild("Shared", 10) :WaitForChild("Remotes", 10) :WaitForChild("Networking", 10) :WaitForChild("RE/Misc/DisplayPopup", 10) end) if not ok or not remote then warn("[CathleenTracker] RE/Misc/DisplayPopup not found!"); return end print("[CathleenTracker] Hooked DisplayPopup ✅") remote.OnClientEvent:Connect(function(...) local args = {...} local parts = {} for i, v in ipairs(args) do table.insert(parts, anyToString(v)) end local fullMsg = table.concat(parts, " | ") if fullMsg == "" then return end if not fullMsg:match("^Info") then return end sendTrackerLog(fullMsg) print("[CathleenTracker] Popup: " .. fullMsg) end) end local function sendData() local money = LocalPlayer:FindFirstChild("leaderstats") and ( LocalPlayer.leaderstats:FindFirstChild("MoneyBags") or LocalPlayer.leaderstats:FindFirstChild("Money") or LocalPlayer.leaderstats:FindFirstChild("Cash") ) local moneyVal = money and tostring(money.Value) or "0" local slot = "N/A" for _, v in ipairs(LocalPlayer.PlayerGui:GetDescendants()) do if v:IsA("TextLabel") and v.Text:match("%d+/%d+") then local _, max = v.Text:match("(%d+)/(%d+)") if max and tonumber(max) >= 80 then slot = v.Text; break end end end local inv = getInventory() if request_func then request_func({ Url = SUPABASE_URL .. "/rest/v1/player_stats", Method = "POST", Headers = { ["apikey"] = SUPABASE_KEY, ["Authorization"] = "Bearer " .. SUPABASE_KEY, ["Content-Type"] = "application/json", ["Prefer"] = "resolution=merge-duplicates" }, Body = HttpService:JSONEncode({ username = LocalPlayer.Name, money = moneyVal, slot_tas = slot, isi_tas = inv, last_update = os.date("!%Y-%m-%dT%H:%M:%SZ") }) }) end end task.spawn(function() print("✅ Cathleen ETFB Tracker Active!") pcall(hookDisplayPopup) while true do pcall(sendData) task.wait(UPDATE_INTERVAL) end end)
Script Plaza (Auto Booth + Listing)
Copy Plaza
-- // ============================================ \\ -- -- // AUTO BOOTH + AUTO LISTING \\ -- -- // ============================================ \\ -- local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local HttpService = game:GetService("HttpService") local Player = Players.LocalPlayer local BoothsFolder = workspace.GameObjects.Booths local Networking = ReplicatedStorage.Shared.Remotes.Networking -- // BOOTH CONFIG \\ -- local CLAIM_REMOTE = Networking:WaitForChild("RF/ClaimBooth") local SHUFFLE_REMOTE = Networking:WaitForChild("RE/TradingBooths/ShuffleTeleport") local SCAN_DELAY = 3 -- // LISTING CONFIG \\ -- local SUPABASE_URL = "https://kojfzfblyueopjzrzdil.supabase.co/rest/v1" local SUPABASE_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImtvamZ6ZmJseXVlb3BqenJ6ZGlsIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc3NjczMzQyNywiZXhwIjoyMDkyMzA5NDI3fQ.w21A6H88GOAzDVxIYuPl_RjU6bTMYQYUusJO9aX9LgI" local DISCORD_WEBHOOK = "https://webhook-cathy.vercel.app/api/webhooks/1496693380493869108/d_Asq17-cDNSzPyH6k3IIpiSfWpSpWBKXOyn5aY4GMmwnfIhQPvNHF2AV_yaOjHrJ03l" local TokenPath = Player:WaitForChild("leaderstats"):WaitForChild("Trade Tokens") local RemoteRestock = Networking:WaitForChild("RF/ListBoothOffering") -- // STATE \\ -- local claimed = false local isSyncing = false local lastTokenValue = tonumber((string.gsub(tostring(TokenPath.Value), "[^%d.-]", ""))) or 0 local LIVE_PRICE = nil local ITEM_PRICES = {} local lastPurchaseTime = tick() local IDLE_TIMEOUT = 60 * 60 -- ============================================ \\ -- BOOTH FUNCTIONS \\ -- ============================================ \\ local function getOwnerText(boothModel) local info = boothModel:FindFirstChild("Info") if not info then return nil end local gui = info:FindFirstChild("SurfaceGui") if not gui then return nil end local frame = gui:FindFirstChild("Frame") if not frame then return nil end local owner = frame:FindFirstChild("Owner") if not owner then return nil end return owner.Text end local function isUnclaimed(ownerText) return ownerText == "Unclaimed Booth" end local function findFreeBooth() for _, booth in pairs(BoothsFolder:GetChildren()) do local ownerText = getOwnerText(booth) or "Unknown" if isUnclaimed(ownerText) then return booth.Name end end return nil end local function tryClaim() if claimed then return end local boothName = findFreeBooth() if boothName then local success, result = pcall(function() return CLAIM_REMOTE:InvokeServer(boothName) end) if success then print("[AutoBooth] Claimed booth | UUID: " .. boothName) claimed = true return true else warn("[AutoBooth] Failed to claim booth | Error: " .. tostring(result)) end end return false end local function shuffleServer() print("[AutoBooth] No free booths, shuffling server...") pcall(function() SHUFFLE_REMOTE:FireServer() end) end -- ============================================ \\ -- LISTING FUNCTIONS \\ -- ============================================ \\ local function pushDiscord(title, desc, color) task.spawn(function() local request = (syn and syn.request) or (http and http.request) or http_request or request local success, res = pcall(function() return request({ Url = DISCORD_WEBHOOK, Method = "POST", Headers = { ["Content-Type"] = "application/json" }, Body = HttpService:JSONEncode({ embeds = {{ title = title, description = desc, color = color or 1752220, footer = { text = "Cathleen Plaza • " .. os.date("%H:%M:%S") } }} }) }) end) if not success then warn("Discord Script Error: " .. tostring(res)) elseif res and res.StatusCode ~= 200 and res.StatusCode ~= 204 then warn("Discord Webhook Ditolak (" .. tostring(res.StatusCode) .. "): " .. tostring(res.Body)) end end) end local function getPureName(item) local n = item:GetAttribute("DisplayName") or item:GetAttribute("ItemName") or item.Name local mutations = { "Blood", "Crimson", "Diamond", "Electric", "Gold", "Emerald", "Radioactive", "Admin", "UFO", "Hacker", "Lucky", "Money", "Gamer", "Candy", "Doom", "Fire", "Ice", "Phantom", "Shamrock", "Showtime", "Eggsplosion", "Tidal", "Miner" } for _, m in pairs(mutations) do n = n:gsub(m .. "%s*", "") end return n:gsub("Lv%.%d+", ""):gsub("^%s+", ""):gsub("%s+$", "") end local function doRequest(method, endpoint, body, extraHeaders) local request = (syn and syn.request) or (http and http.request) or http_request or request local headers = { ["apikey"] = SUPABASE_KEY, ["Authorization"] = "Bearer " .. SUPABASE_KEY, ["Content-Type"] = "application/json", } if extraHeaders then for k, v in pairs(extraHeaders) do headers[k] = v end end local success, res = pcall(function() return request({ Url = SUPABASE_URL .. endpoint, Method = method, Headers = headers, Body = body and HttpService:JSONEncode(body) or nil }) end) if not success then warn("Supabase Request Error:", res) return false, nil elseif res and res.StatusCode >= 400 then warn("Supabase API Error: " .. tostring(res.Body)) end return success, res end local function pushLog(msg) task.spawn(function() doRequest("POST", "/plaza_logs", { ["bot_name"] = Player.Name, ["message"] = msg }) end) end local function pushPlazaData() if isSyncing then return end isSyncing = true task.spawn(function() local currentTokens = tostring(TokenPath.Value) local counts = {} for _, v in pairs(Player.Backpack:GetChildren()) do local name = getPureName(v) if #name > 2 then counts[name] = (counts[name] or 0) + 1 end end local inv = "" for n, c in pairs(counts) do inv = inv .. n .. " (" .. c .. ")\n" end if inv == "" then inv = "Empty Bag" end local body = { ["username"] = Player.Name, ["tokens"] = currentTokens, ["isi_tas"] = inv, ["last_update"] = "now()" } -- Single upsert call, no GET needed doRequest( "POST", "/plaza_stats?on_conflict=username", body, { ["Prefer"] = "resolution=merge-duplicates,return=representation" } ) isSyncing = false print("[AutoListing] Plaza Synced! Tokens: " .. currentTokens) end) end local function fetchPrices() local ok, res = doRequest("GET", "/plaza_stats?username=eq." .. Player.Name .. "&select=target_price,item_prices", nil) if ok and res and res.StatusCode == 200 then pcall(function() local data = HttpService:JSONDecode(res.Body) if data[1] then if data[1].target_price then LIVE_PRICE = tonumber(data[1].target_price) end if data[1].item_prices then local ip = data[1].item_prices if type(ip) == "string" then local s, parsed = pcall(function() return HttpService:JSONDecode(ip) end); if s then ip = parsed end end if type(ip) == "table" then ITEM_PRICES = ip end else ITEM_PRICES = {} end end end) end end local function autoRestock() if not LIVE_PRICE then return end local bp = Player:FindFirstChild("Backpack") if not bp then return end for _, item in pairs(bp:GetChildren()) do local id = item:GetAttribute("UUID") or item.Name local name = getPureName(item) local finalPrice = LIVE_PRICE if ITEM_PRICES and ITEM_PRICES[name] then finalPrice = tonumber(ITEM_PRICES[name]) or LIVE_PRICE end pcall(function() RemoteRestock:InvokeServer(id, finalPrice) end) task.wait(0.5) end end -- ============================================ \\ -- MAIN FLOW \\ -- ============================================ \\ local function boothPhase() print("[AutoBooth] Auto Claim Booth started!") print("[AutoBooth] Claiming any free booth...") while not claimed do local success = tryClaim() if not success and not claimed then shuffleServer() end task.wait(SCAN_DELAY) end print("[AutoBooth] Booth claimed successfully!") end local function listingPhase() print("[AutoListing] Starting auto listing...") task.spawn(function() while true do fetchPrices() task.wait(10) end end) task.spawn(function() while true do if claimed then autoRestock() end task.wait(5) end end) TokenPath:GetPropertyChangedSignal("Value"):Connect(function() local rawNewVal = TokenPath.Value local newValNum = tonumber((string.gsub(tostring(rawNewVal), "[^%d.-]", ""))) or 0 local diff = newValNum - lastTokenValue lastTokenValue = newValNum if diff == 0 then return end local arah = diff > 0 and "+" or "" local msg = "Token " .. arah .. tostring(diff) .. " | Total: " .. tostring(newValNum) pushLog(msg) if diff > 0 then lastPurchaseTime = tick() pushDiscord("ADA YANG BELI! — " .. Player.Name, "**+" .. tostring(diff) .. " tokens**\nTotal: **" .. tostring(newValNum) .. "**", 1752220) end task.spawn(function() task.wait(0.5) pushPlazaData() end) print("[AutoListing] Token changed! " .. arah .. tostring(diff)) end) task.spawn(function() while true do pushPlazaData() task.wait(30) end end) task.spawn(function() while true do task.wait(60) if claimed and (tick() - lastPurchaseTime) >= IDLE_TIMEOUT then pushLog("Idle 60 menit tanpa pembeli — shuffle server") print("[AutoListing] Idle timeout, shuffling server...") claimed = false pcall(function() SHUFFLE_REMOTE:FireServer() end) task.wait(5) boothPhase() lastPurchaseTime = tick() end end end) task.wait(2) pushPlazaData() pushLog("Bot online: " .. Player.Name) print("[AutoListing] Plaza Hub v18 (Auto Booth + Listing) Loaded!") end -- // START \\ -- boothPhase() listingPhase()