Loading...
C
ETFB
KALB
Fisch
Scripts
Refresh
Tracker
Plaza
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
—
✕
Daftar Akun KALB
Online
0
Offline
0
Total
0
Detail Akun
Pilih akun dulu
—
✕
Global Inventory
—
Hidden:
Total Money
—
C$ Total
0
S$ Gross
0
S$ Net (‑10%)
0
Daftar Akun
Online
0
Offline
0
Total
0
Total Money
C$ Total
0
S$
0
Net
0
Daftar Akun
Online
0
Offline
0
Total
0
Script Fisch Tracker
Copy Script
-- FISCH TRACKER v11 (auto 30s) local URL = "https://fisch-api.vercel.app/api/fisch?action=stats" local req = syn and syn.request or http and http.request or http_request or Fluxus and Fluxus.request or request while true do local m = (game:GetService("Players").LocalPlayer.PlayerGui.hud.safezone.coins.Text:gsub("[^%d]","")) + 0 local un = game:GetService("Players").LocalPlayer.Name local b = '{"username":"'..un..'","money":'..m..',"online":true}' local ok, r = pcall(req, {Url=URL,Method="POST",Headers={["Content-Type"]="application/json"},Body=b}) if ok then print("[Fisch] OK $"..m) else print("[Fisch] ERR: "..tostring(r)) end wait(30) end
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", "Plasma","Molten","Virus","Electrified","Wet","Alien","Bacon","Rainbow", "Volcanic","Astral" } local function getInventory() local bp = LocalPlayer:FindFirstChild("Backpack") if not bp then return "Kosong" end local items = {} local function processItem(item) local rawName = item:GetAttribute("DisplayName") or item:GetAttribute("ItemName") or item.Name if not rawName or rawName == "" then return end local foundMut = item:GetAttribute("Mutation") or "Normal" local cleanName = rawName for _, mut in ipairs(Mutations) do cleanName = cleanName:gsub("^" .. mut .. "%s+", ""):gsub("%s+" .. mut .. "$", "") end cleanName = cleanName:match("^%s*(.-)%s*$") if cleanName:find("Lucky Block") or cleanName:find("LuckyBlock") then cleanName = "Lucky Block" end if not items[cleanName] then items[cleanName] = {} end items[cleanName][foundMut] = (items[cleanName][foundMut] or 0) + 1 end for _, item in ipairs(bp:GetChildren()) do if item:IsA("Tool") or item:IsA("Model") then processItem(item) end end local char = LocalPlayer.Character if char then for _, item in ipairs(char:GetChildren()) do if item:IsA("Tool") then processItem(item) end end end local list = {} for cleanName, muts in pairs(items) do for mut, cnt in pairs(muts) do if mut == "Normal" then table.insert(list, cleanName .. " (" .. cnt .. ")") else table.insert(list, mut .. " " .. cleanName .. " (" .. cnt .. ")") end end 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
-- ITEM DIAGNOSTIC — Cek properti item di backpack local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local playerGui = LocalPlayer:WaitForChild("PlayerGui") -- Bikin GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "ItemDiagnostic" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 500, 0, 400) frame.Position = UDim2.new(0.5, -250, 0.5, -200) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = screenGui local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundColor3 = Color3.fromRGB(50, 50, 50) title.Text = "ITEM DIAGNOSTIC — Hasil" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBold title.TextSize = 14 title.Parent = frame local textBox = Instance.new("TextBox") textBox.Size = UDim2.new(1, -10, 1, -80) textBox.Position = UDim2.new(0, 5, 0, 35) textBox.BackgroundColor3 = Color3.fromRGB(20, 20, 20) textBox.TextColor3 = Color3.fromRGB(200, 200, 200) textBox.Font = Enum.Font.Code textBox.TextSize = 11 textBox.TextWrapped = true textBox.TextXAlignment = Enum.TextXAlignment.Left textBox.TextYAlignment = Enum.TextYAlignment.Top textBox.ClearTextOnFocus = false textBox.MultiLine = true textBox.Parent = frame local btnClose = Instance.new("TextButton") btnClose.Size = UDim2.new(0, 80, 0, 28) btnClose.Position = UDim2.new(1, -170, 1, -35) btnClose.BackgroundColor3 = Color3.fromRGB(200, 50, 50) btnClose.Text = "Close" btnClose.TextColor3 = Color3.fromRGB(255, 255, 255) btnClose.Font = Enum.Font.Gotham btnClose.TextSize = 12 btnClose.Parent = frame btnClose.MouseButton1Click:Connect(function() screenGui:Destroy() end) local btnCopy = Instance.new("TextButton") btnCopy.Size = UDim2.new(0, 80, 0, 28) btnCopy.Position = UDim2.new(1, -85, 1, -35) btnCopy.BackgroundColor3 = Color3.fromRGB(50, 100, 200) btnCopy.Text = "Copy All" btnCopy.TextColor3 = Color3.fromRGB(255, 255, 255) btnCopy.Font = Enum.Font.Gotham btnCopy.TextSize = 12 btnCopy.Parent = frame btnCopy.MouseButton1Click:Connect(function() local clipboard = syn and syn.write_clipboard or (clipboard and clipboard.set) if clipboard then clipboard(textBox.Text) btnCopy.Text = "Copied!" task.wait(1) btnCopy.Text = "Copy All" end end) -- Analisa item local lines = {} for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do if item:IsA("Tool") then table.insert(lines, "=== " .. item.Name .. " ===") table.insert(lines, " ClassName: " .. item.ClassName) table.insert(lines, " Attributes:") for k, v in pairs(item:GetAttributes()) do table.insert(lines, " " .. k .. ": " .. tostring(v)) end table.insert(lines, " Children:") for _, c in ipairs(item:GetChildren()) do table.insert(lines, " " .. c.ClassName .. ": " .. c.Name) end table.insert(lines, "") end end textBox.Text = table.concat(lines, "\n")