Webhook Service V4 - The easiest and most efficient way to send webhook requests to Discord

I have created a simple module to send webhook requests to Discord from Roblox!

Features
Preset colors
Full customization of messages, embeds and author embeds
User Friendly
Backup proxies so you don’t have to worry about Discord blocking Roblox requests

You can grab the module here
Video tutorial here

How it works?

local webhookModule = require(script.WebhookService)

local req = webhookModule:new()

local url = "" -- discord webhook url

req.Title = "Hello"
req.Description = "From WSV4"
req.Color = webhookModule.colors.red
req.Thumbnail = "https://cdn.discordapp.com/attachments/889620733444120597/1079488080882434068/Screenshot_2022-09-03_222450.png"
req.Footer = "Test footer"
req.FooterIcon = "https://cdn.discordapp.com/attachments/889620733444120597/1079488080882434068/Screenshot_2022-09-03_222450.png"
req.TimeStamp = DateTime.now():ToIsoDate()

req.Fields = {
	{
		['name'] = "Field 1",
		['value'] = "Field 1 value",
		['inline'] = false
	}
}

req:sendEmbed(url)

Outcome
image

You can also send just messages

local webhookModule = require(script.WebhookService)

local req = webhookModule:new()

local url = "" -- discord webhook url

req.Content = "Hello"

req:sendMessage(url)

Outcome
image

You can also send author embeds using the avatar headshot URL, since the original one doesn’t work we’ll be using a fork created by @Master3395

local webhookModule = require(script.WebhookService)

local req = webhookModule:new()

local url = "" -- discord webhook url

req.Author = "snawrk"
req.Description = "Is a cool person"
req.Color = webhookModule.colors.yellow
req.AuthorUrl = "https://api.newstargeted.com/roblox/Users/v1/avatar-headshot.php?userid=3586071244&size=150x150&format=Png&isCircular=false"
req.Footer = "Test footer"
req.FooterIcon = "https://cdn.discordapp.com/attachments/889620733444120597/1079488080882434068/Screenshot_2022-09-03_222450.png"
req.TimeStamp = DateTime.now():ToIsoDate()

req.Fields = {
	{
		['name'] = "Field 1",
		['value'] = "Field 1 value",
		['inline'] = false
	}
}

req:sendAuthorEmbed(url)

Outcome
image

This is meant to be very simple and user friendly, so if you have any questions or suggestions post them in the replies and I will try to respond to as much as possible!

This module should only be stored on the server.

22 Likes

Thank you! I can now make Discord webhooks without investing a lot of time in them.

2 Likes

You can add cooldowns using bools

uhh did the cooldown work by task.wait()?

What if the developer themself is not willing to make a cooldown? It would exceed the rate limit, and therefore, would get any proxy you used banned.

Also, you should make it so both the functions that send the messages check if the data you use to send (embed or string) is either or, and if it’s the opposite of what the function should do, it will execute the other function. This would be as simple as using typeof.

Overall, pretty good resource.

1 Like

My webhook site, webhook.newstargeted.com, has self-imposed rate limits. This means that if you spam requests from Roblox and Roblox doesn’t impose any rate limits, our site will step in. We can either limit the rate of direct requests or queue the sending process.

Our site will place all of your requests sent from Roblox into its own queue. This ensures that all requests will be sent to Discord without encountering any rate limits from Discord’s API.

To access the latest version (V6 as of May 17, 2023) of the WebhookService Module, you can download it from this link: WebhookService.lua.
Or you Can purchase Ro-Essentials the plugin:
Ro-Essentials - Roblox

When you click “Get started” on my site, you will be presented with information like this:

image

2 Likes

i like the thing but i hope this isnt the easiest because i have no idea where to start

You can join the discord servers, to get help on scripts, you have already made.

Is there a reason why I can’t seem to get the module?

If you click the WebhookService.lua link from this post, it is the same as the “module”, that CJ posted.
But mine has been updated.
CJ updated to mine in his plugin.