Select Game
Escape Tsunami
ETFB
Kick a Lucky Block
KALB
CATHLEEN
TRACKER
ETFB
Tracker
Plaza
Tracker
Scripts
Refresh
Global Items
—
Hidden:
Daftar Akun
Online
0
Offline
0
Total
0
Detail Akun
Pilih akun
—
✕
Popup Logs
Semua Log
Hanya DUPED
Selain Duped
Clear
Daftar Akun
Online
0
Offline
0
Total
0
Detail Akun
Pilih akun dulu
—
✕
Global Items
—
Hidden:
Popup Logs
Semua Log
Hanya DUPED
Selain Duped
Clear
Plaza Live Logs
Clear
Daftar Akun KALB
Online
0
Offline
0
Total
0
Global Inventory
—
Hidden:
Detail Akun
Pilih akun
—
✕
Popup Logs
Semua Log
Hanya DUPED
Selain Duped
Clear
Daftar Akun KALB
Online
0
Offline
0
Total
0
Detail Akun
Pilih akun dulu
—
✕
Global Inventory
—
Hidden:
Popup Logs
Semua Log
Hanya DUPED
Selain Duped
Clear
Bot Scripts
✕
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 Restock - UPDATED)
Copy Plaza
-- // CONFIG MASTER PLAZA \\ -- local SUPABASE_URL = "https://kojfzfblyueopjzrzdil.supabase.co/rest/v1" local SUPABASE_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImtvamZ6ZmJseXVlb3BqenJ6ZGlsIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc3NjczMzQyNywiZXhwIjoyMDkyMzA5NDI3fQ.w21A6H88GOAzDVxIYuPl_RjU6bTMYQYUusJO9aX9LgI" local Player = game:GetService("Players").LocalPlayer local HttpService = game:GetService("HttpService") local TokenPath = Player:WaitForChild("leaderstats"):WaitForChild("Trade Tokens") local RemoteRestock = game:GetService("ReplicatedStorage"):WaitForChild("Shared"):WaitForChild("Remotes"):WaitForChild("Networking")["RF/ListBoothOffering"] -- Menggunakan Proxy Vercel Custom local DISCORD_WEBHOOK = "https://webhook-cathy.vercel.app/api/webhooks/1496693380493869108/d_Asq17-cDNSzPyH6k3IIpiSfWpSpWBKXOyn5aY4GMmwnfIhQPvNHF2AV_yaOjHrJ03l" local isSyncing = false local lastTokenValue = tonumber((string.gsub(tostring(TokenPath.Value), "[^%d.-]", ""))) or 0 -- // KIRIM NOTIF KE DISCORD \\ -- 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 -- // PEMBERSIH NAMA ITEM \\ -- 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 -- // FUNGSI REQUEST SUPABASE \\ -- 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", ["Prefer"] = "return=representation" } 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 -- // KIRIM LOG KE plaza_logs \\ -- local function pushLog(msg) task.spawn(function() doRequest("POST", "/plaza_logs", { ["bot_name"] = Player.Name, ["message"] = msg }) end) end -- // KIRIM DATA PLAZA \\ -- 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()" } local ok, res = doRequest("GET", "/plaza_stats?username=eq." .. Player.Name .. "&select=username", nil) if ok and res then pcall(function() local data = HttpService:JSONDecode(res.Body) if data and #data > 0 then doRequest("PATCH", "/plaza_stats?username=eq." .. Player.Name, body) else doRequest("POST", "/plaza_stats", body) end end) end isSyncing = false print("Plaza Synced! Tokens: " .. currentTokens) end) end -- // AMBIL HARGA \\ -- local LIVE_PRICE = nil local ITEM_PRICES = {} task.spawn(function() while true do 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 task.wait(10) end end) -- // AUTO RESTOCK \\ -- task.spawn(function() while true do if LIVE_PRICE then local bp = Player:FindFirstChild("Backpack") if bp then 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 end task.wait(5) end end) -- // EVENT: TOKEN BERUBAH \\ -- 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 pushDiscord("ADA YANG BELI! — " .. Player.Name, "**+" .. tostring(diff) .. " tokens**\nTotal: **" .. tostring(newValNum) .. "**", 1752220) end task.spawn(function() task.wait(0.5) pushPlazaData() end) print("Token changed! " .. arah .. tostring(diff)) end) -- // FALLBACK SYNC \\ -- task.spawn(function() while true do pushPlazaData() task.wait(30) end end) -- // INITIAL SYNC \\ -- task.wait(2) pushPlazaData() pushLog("Bot online: " .. Player.Name) print("Plaza Hub v17 (Vercel Proxy) Loaded!")
Script Tracker KALB
Copy All
-- ===================================================================== -- CATHLEEN TRACKER - KALB (Kick a Lucky Block) Edition -- Kirim data ke Neon via Vercel backend -- ===================================================================== local BACKEND_URL = "https://kalb-tracker.vercel.app" local HttpService = game:GetService("HttpService") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local UPDATE_INTERVAL = 60 local request_func = (syn and syn.request) or (http and http.request) or http_request or (Fluxus and Fluxus.request) or request local function doRequest(method, path, body) if not request_func then warn("[KALB Tracker] HTTP request function tidak tersedia!") return false end local headers = { ["Content-Type"] = "application/json" } local ok, res = pcall(function() return request_func({ Url = BACKEND_URL .. path, Method = method, Headers = headers, Body = body and HttpService:JSONEncode(body) or nil }) end) if not ok then warn("[KALB Tracker] Request error:", res) return false end print("[KALB Tracker] doRequest:", method, path, res.StatusCode) return true end 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", "Void","Cursed","Glitch","Shadow","Mystic" } 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:GetAttribute("ItemName") or item.Name local name = cleanName(rawName) if name:find("Lucky Block") or name:find("LuckyBlock") then name = "Lucky Block" end counts[name] = (counts[name] or 0) + 1 end end local char = LocalPlayer.Character if char then for _, item in ipairs(char:GetChildren()) do if item:IsA("Tool") then local rawName = item:GetAttribute("DisplayName") or item:GetAttribute("ItemName") or item.Name local name = cleanName(rawName) if name:find("Lucky Block") or name:find("LuckyBlock") then name = "Lucky Block" end counts[name] = (counts[name] or 0) + 1 end 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 getMoney() local ls = LocalPlayer:FindFirstChild("leaderstats") if not ls then return "0" end local moneyObj = ls:FindFirstChild("Money") or ls:FindFirstChild("Cash") or ls:FindFirstChild("Coins") or ls:FindFirstChild("Gems") or ls:FindFirstChild("MoneyBags") or ls:FindFirstChild("Gold") return moneyObj and tostring(moneyObj.Value) or "0" end local function getSlot() for _, v in ipairs(LocalPlayer.PlayerGui:GetDescendants()) do if v:IsA("TextLabel") and v.Text:match("%d+/%d+") then local cur, max = v.Text:match("(%d+)/(%d+)") if max and tonumber(max) >= 20 then return v.Text end end end return "N/A" 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 sendLog(message) local ok = doRequest("POST", "/api/kalb?action=add_log", { username = LocalPlayer.Name, message = tostring(message) }) print("[KALB Tracker] sendLog:", ok, message) end local function hookPopupRemote() local ok, remote = pcall(function() return game:GetService("ReplicatedStorage") :WaitForChild("Shared", 8):WaitForChild("Packages", 8) :WaitForChild("Network", 8):WaitForChild("rev_Collected", 8) end) if not ok or not remote then warn("[KALB Tracker] rev_Collected tidak ditemukan") return end print("[KALB Tracker] Hooked rev_Collected") remote.OnClientEvent:Connect(function(...) local msg = "" for _, v in ipairs({...}) do msg = msg .. tostring(v) end if msg == "" then return end print("[KALB] Popup:", msg) doRequest("POST", "/api/kalb?action=add_log", { username = LocalPlayer.Name, message = msg }) end) end local function sendData() local ok = doRequest("POST", "/api/kalb?action=upsert_stats", { username = LocalPlayer.Name, money = getMoney(), slot_tas = getSlot(), isi_tas = getInventory() }) if ok then print("[KALB Tracker] Data synced! Money:", getMoney()) end end task.spawn(function() print("KALB TRACKER by Cathleen — ACTIVE") print("Backend:", BACKEND_URL) pcall(hookPopupRemote) task.wait(2) pcall(sendData) while true do task.wait(UPDATE_INTERVAL) pcall(sendData) end end)
Remote Finder (cari DisplayPopup)
Copy Finder
-- JALANKAN INI DI EXECUTOR KALB -- Nanti keluar daftar semua RemoteEvent -- Cari yang namanya mirip "DisplayPopup" atau "Popup" for _, v in ipairs(game:GetService("ReplicatedStorage"):GetDescendants()) do if v:IsA("RemoteEvent") then print(v:GetFullName()) end end -- Kalo nemu, ganti path di script utama -- Contoh kalo hasilnya: ReplicatedStorage.Shared.Remotes.Networking.RE/Misc/DisplayPopup -- Maka path-nya: game:GetService("ReplicatedStorage"):WaitForChild("Shared"):WaitForChild("Remotes"):WaitForChild("Networking"):WaitForChild("RE/Misc/DisplayPopup") -- Alternatif: cari RemoteFunction juga for _, v in ipairs(game:GetService("ReplicatedStorage"):GetDescendants()) do if v:IsA("RemoteFunction") then print(v:GetFullName()) end end