What is a proxy?
A webhook proxy sits between your callers (Roblox, store backend, payment provider) and your target URL. Callers use the NEX URL; NEX applies filters, auto-delivery, and optional embed templates, then forwards the request.
Create a proxy
- Dashboard → Webhooks → Create Webhook
- Set name, optional project label, and target URL
- Copy the public proxy URL shown after creation
POST https://nexrbx.com/api/webhooks/p/YOUR_PUBLIC_ID
Content-Type: application/json
{ "event": "player_joined", "userId": "123456789" }
Forwarding behaviour
- Method, headers (except hop-by-hop), and body are forwarded to the target
X-Forwarded-ForandX-Nex-Webhook-Proxyare added- Discord targets may receive an embed template if configured in webhook settings
- Responses from the target are passed back to the caller
Analytics & replay
Each request is logged with status, timing metadata, and up to 8 KB of the incoming body. From Webhooks → Statistics → Recent events, use Replay to resend a stored payload — useful when debugging filters or delivery rules.
Roblox examples
Four common patterns from live Roblox experiences — each posts JSON to your NEX proxy URL. Use Test Me to receive a sample Discord DM (requires a connected Discord account).
Mirror important print / warn output from dedicated server scripts to Discord for live ops monitoring.
Project files
- ServerScriptService/
- ConsoleForwarder.server.lua
- ReplicatedStorage/
- LogBridge.module.lua
local HttpService = game:GetService("HttpService")
local PROXY = "https://nexrbx.com/api/webhooks/p/YOUR_PUBLIC_ID"
local function forwardLog(level, message)
pcall(function()
HttpService:PostAsync(PROXY, HttpService:JSONEncode({
source = "roblox",
event = "console_log",
level = level,
message = tostring(message),
placeId = tostring(game.PlaceId),
jobId = game.JobId,
}), Enum.HttpContentType.ApplicationJson)
end)
end
game:GetService("LogService").MessageOut:Connect(function(message, messageType)
if messageType == Enum.MessageType.MessageWarning
or messageType == Enum.MessageType.MessageError then
forwardLog(string.lower(tostring(messageType)), message)
end
end)
Connect Discord under Bot Integrations to try this example.
Notify your community when a player levels up — great for progression systems and leaderboards.
Project files
- ServerScriptService/
- LevelService.server.lua
- ReplicatedStorage/
- PlayerData.module.lua
local HttpService = game:GetService("HttpService")
local PROXY = "https://nexrbx.com/api/webhooks/p/YOUR_PUBLIC_ID"
local function onLevelUp(player, newLevel, previousLevel)
pcall(function()
HttpService:PostAsync(PROXY, HttpService:JSONEncode({
source = "roblox",
event = "level_up",
username = player.Name,
userId = tostring(player.UserId),
level = newLevel,
previousLevel = previousLevel,
}), Enum.HttpContentType.ApplicationJson)
end)
end
-- Call onLevelUp(player, profile.level, profile.level - 1) from your data layer
Connect Discord under Bot Integrations to try this example.
Stream EXP gains from quests, combat, or daily rewards without spamming — batch or filter in request filters.
Project files
- ServerScriptService/
- ExpTracker.server.lua
local HttpService = game:GetService("HttpService")
local PROXY = "https://nexrbx.com/api/webhooks/p/YOUR_PUBLIC_ID"
local function grantExp(player, amount, reason, totalExp)
pcall(function()
HttpService:PostAsync(PROXY, HttpService:JSONEncode({
source = "roblox",
event = "exp_gain",
username = player.Name,
userId = tostring(player.UserId),
amount = amount,
totalExp = totalExp,
reason = reason,
}), Enum.HttpContentType.ApplicationJson)
end)
end
grantExp(player, 150, "Quest: Defeat 10 enemies", profile.exp)
Connect Discord under Bot Integrations to try this example.
Welcome messages and moderation alerts when players enter a reserved server or main experience.
Project files
- ServerScriptService/
- JoinAlerts.server.lua
local HttpService = game:GetService("HttpService")
local PROXY = "https://nexrbx.com/api/webhooks/p/YOUR_PUBLIC_ID"
game.Players.PlayerAdded:Connect(function(player)
pcall(function()
HttpService:PostAsync(PROXY, HttpService:JSONEncode({
source = "roblox",
event = "player_joined",
username = player.Name,
userId = tostring(player.UserId),
accountAgeDays = player.AccountAge,
}), Enum.HttpContentType.ApplicationJson)
end)
end)
Connect Discord under Bot Integrations to try this example.
Webhook settings
Open Webhooks → Settings on any proxy to configure:
- Rate limits and passthrough mode
- Storefront adapter — normalize Gumroad, Sellix, SellAuth, PayPal, or Roblox commerce payloads into purchase events for auto-delivery
- Discord embed template
- Attached request filters