
Key Required VerifiedUniversal

warn("Executed!")
warn("Executed!")
warn("Executed!")
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
local Window = Fluent:CreateWindow({
Title = "Webhook Logger",
SubTitle = "by EmptyPowerfulDude",
TabWidth = 160,
Size = UDim2.fromOffset(650, 500),
Acrylic = true,
Theme = "Dark",
MinimizeKey = Enum.KeyCode.K
})
local logs = {}
local Tabs = {
logTab = Window:AddTab({Title = "Logging Tab", Icon = "newspaper"})
}
Tabs.logTab:AddButton({
Title = "Clear",
Description = "Clears All Logs",
Callback = function()
for i,v in logs do
v:Destroy()
end
end,
})
local function getPrettierTableString(args : table) : string
local str = ""
for i,v in args do
str = str .. i
str = str .. " = "
str = str .. v
str = str .. "\n"
end
return str
end
local function onWebhookSent(args : table) : ()
table.insert(logs,Tabs.logTab:AddParagraph(
{
Title = "HTTP SENT (AND BLOCKED)",
Content = getPrettierTableString(args)
}
))
table.insert(logs,Tabs.logTab:AddButton({
Title = "Copy Webhook",
Description = "Copies The Webhook URL To Your Clipboard",
Callback = function()
setclipboard(args["Url"])
end,
}))
end
-- Safely convert any value to string
local function safeToString(v)
local ok, s = pcall(function()
if type(v) == "table" then
return "{table: " .. tostring(v) .. "}"
end
return tostring(v)
end)
if not ok or s == nil then return "<unprintable>" end
return s
end
-- Recursively flatten a table into a { key = "string_value" } table
local function flattenTable(tbl, result, prefix)
result = result or {}
prefix = prefix or ""
for k, v in pairs(tbl) do
local keyName = prefix ~= "" and (prefix .. "." .. tostring(k)) or tostring(k)
if type(v) == "table" then
flattenTable(v, result, keyName)
else
result[keyName] = safeToString(v)
end
end
return result
end
-- Main function: accepts either a single table (like a request) or varargs
local function getPrettyArgs(...)
local argCount = select("#", ...)
local first = select(1, ...)
if argCount == 1 and type(first) == "table" then
return flattenTable(first)
end
-- For varargs, just stringify all arguments and store by index
local result = {}
for i = 1, argCount do
local v = select(i, ...)
if type(v) == "table" then
local flat = flattenTable(v, {}, "Arg" .. i)
for k, val in pairs(flat) do
result[k] = val
end
else
result["Arg" .. i] = safeToString(v)
end
end
return result
end
-- Replace the real global reference:
if syn and syn.request then
syn.request = function(...)
print("Hooked syn.request")
local args = getPrettyArgs(...)
onWebhookSent(args)
end
elseif http_request then
getgenv().http_request = function(...)
print("Hooked http_request")
local args = getPrettyArgs(...)
onWebhookSent(args)
end
elseif fluxus and fluxus.request then
fluxus.request = function(...)
print("Hooked fluxus.request")
local args = getPrettyArgs(...)
onWebhookSent(args)
end
else
warn("No request function found to hook.")
endNo comments yet for this script.



