GETTING STARTED
A protected link works anywhere you'd normally paste a Discord webhook URL — just swap the Discord URL for the one from your dashboard. Your real webhook stays hidden, and nobody can grab or delete it.
https://webhook-proxy.bellaonhots.workers.dev/api/webhooks/…).ROBLOX
Put this in a Script in ServerScriptService. HTTP requests must be
enabled: Game Settings → Security → Allow HTTP Requests.
local HttpService = game:GetService("HttpService")
-- Your protected link from the dashboard (NOT your real Discord webhook)
local WEBHOOK = "https://webhook-proxy.bellaonhots.workers.dev/api/webhooks/YOUR_ID/YOUR_TOKEN"
local data = {
content = "Hello from Roblox!",
username = "Game Logs",
embeds = {{
title = "Player joined",
description = "Someone started playing.",
color = tonumber("a855f7", 16)
}}
}
HttpService:PostAsync(WEBHOOK, HttpService:JSONEncode(data))
ANYTHING ELSE
Same idea everywhere — bots, websites, cron jobs, UptimeRobot, GitHub Actions: paste the protected link wherever a Discord webhook URL goes. It only accepts message sends, so it can't be used to read or delete the webhook behind it.
Want to send without code? Use the builder or, once logged in, the composer.