Roblox Discord Webhook Proxy Server

discord

#1

RbxDiscordProxy

I’ve created a Discord proxy server that is free for anyone to use for their games.

While there have been other attempts at doing something like this, my server respects Discord API rate limits.
If you happen to go over the rate limits, your requests will be queued and later submitted when Discord allows.

If I notice that you are repeatedly going like 20x over the API limits, I may block your requests.
You will receive an error message from the server whenever this happens.


How to use it

Simply just replace https://discordapp.com in your Webhook URL with https://discord.osyr.is
Everything should work exactly the same.


Host It Yourself (with Docker! :whale2:)

If you’d like to run your own copy, it’s opensourced here:

The preferred way to run your own copy of the server is to use Docker.
The Docker container for this server can be found here:
https://hub.docker.com/r/osyris/rbxdiscordproxy/

Using it is as simple as
docker run -p 80:80 osyris/rbxdiscordproxy


tl;dr


Feel free to ask any questions about usage, I’ll revise this post as needed.


Discord Integration: A guide on using Discord through Roblox [UPDATED]
Discord logging and etc
Why doesn't webhook works?
How do most feedback systems work in games?
Scripts works perfectly in Studio and testing mode but not in game
A Discord module that respects the limits
Roblox-to-Discord Bypass Service
Crippling Developers & Roblox Communities - An Argument for the Reversal of the Blanket Discord Ban
Rōblox-to-Discord Bypass Method
#2

How can i send an embed.


#3

https://discordapp.com/developers/docs/resources/webhook#execute-webhook
https://discordapp.com/developers/docs/resources/channel#embed-object

Looks like you just set the parameter “embeds” as an array of embed objects. Those links should clarify a bit more.


#4

You know this can and will get your Discord account banned right?


#5


FYI, lolpython is lead backend developer at Discord.


#6

This is awesome! Thank you for sharing!


#7

I remember jake…

Then I made a new Discord account – he is scary.


#8

Thanks a lot for this!


#9

Thanks for using it! Let me know if you have any issues with the service or there’s any functionality I’m missing.


#10

Pushed an update which will ban webhooks for abusing rate limits.
(You have to send requests very frequently for this to happen)

If you do get banned, just make a new webhook and send less requests. :+1:


#12

I can’t thank you enough for this :smile:


#13

Thank you so much! I can finally re-add my mod call feature which we’ve been needing for a long time. :stuck_out_tongue:


#14

Thanks bud, you saved my business! :slight_smile:


#15

absolutely love that tl;dr :joy:


#16

New Roblox API provides appropriate information for scripts to abide by Discord’s rate limits.
If Discord lifts the Roblox user-agent ban, I will be shutting down this proxy.

In the event of the proxy shutting down, I’ll provide a library for you to use webhooks in your scripts.


#17

I used this before Roblox got banned from Discord


#18

While there are existing Discord libraries, none of them abide by Discord’s dynamic rate limits.


#19

You could edit or provide a new script that abide by Discord’s dynamic rate limits, if Roblox get’s unban from Discord.


#20

I made one pretty similar to yours at around the same time! It’s a bit of a bummer that it wasn’t advertised enough.


#21

Running into a problem where embeds aren’t being posted when I send to the discord server. They all worked fine until around yesterday.

For example, if I run the following code in the command bar…

local HttpService = game:GetService("HttpService")

local suggestion_webhook = "https://discord.osyr.is/api/webhooks/" --removed the ID I used

local options = {}
options.timestamp = "2018-05-14T05:30:08Z"
options.description = "Test"
options.footer = {
    icon_url = "",
    text = "Test"
}
options.author = {
    name = "WrathOfTheElvhen",
    url = "https://www.roblox.com/users/29783818/profile",
    icon_url = game.Players:GetUserThumbnailAsync(
        29783818,
        Enum.ThumbnailType.HeadShot,
        Enum.ThumbnailSize.Size420x420
    )
}

local HookData = {
    ["embed"] = options,
    ["content"] = "Test"
}

HookData = HttpService:JSONEncode(HookData)

HttpService:PostAsync(suggestion_webhook, HookData)

It would only post the following:

image

Running the JSON in the Embed Visualizer works fine, so I have no idea what the problem is…

JSON Encoding
{
  "embed": 
    {
      "footer": {
        "icon_url": "",
        "text": "Test"
      },
      "description": "Test",
      "timestamp": "2018-05-14T05:30:08Z",
      "author": {
        "icon_url": "https://www.roblox.com/headshot-thumbnail/image?userId=29783818&width=420&height=420&format=png",
        "name": "WrathOfTheElvhen",
        "url": "https://www.roblox.com/users/29783818/profile"
      }
    }
  ,
  "content": "Test"
}

I’m pretty sure the rate limits are all good and that you didn’t ban anything. I even tested it in other servers and nothing…Do you perhaps have any idea what happened @Osyris?