RoLink: Git-like Webhook Logging


Ever wanted to share live progress of your game’s development to your audience or keep track of what’s going on within your game?


Introducing: RoLink

With just two commands you can start live-logging your progress into Discord automatically! Let your players know what updates and changes are being made to your game live.


How do I set it up?

You can install the plugin from here.

Once you have it installed, type in your Command Bar _G.RoLink.Help() to get started. It’ll give you instructions on how to set up your Webhook. Once you have a linked Webhook, you can just enable it and it’ll start functioning.


How does it work

The following are the events that the Plugin will replicate and the conditions for them to occur.

Script Create: Fires when a LuaSourceContainer instance is created.

Script Delete: Fires when a LuaSourceContainer instance is deleted.

Script Name Change: Fires when a LuaSourceContainer instance name is modified.

Script Source Update: Fires when a LuaSourceContainer hasn’t been editted for the Update Rate period (configurable) or if there were more than 500 actions related to that script (typing, deleting, etc.)

The Plugin does NOT cache your scripts at all, it just keeps track of the amount of times you’ve changed the source, not the source itself.


Q&A

Q: I’ve made a change but it hasn’t logged it.
A: Logging isn’t instantaneous, especially if you’re expecting a source update log. All logs, except source updates, can take up to 10 seconds to be shown in the webhook.

Q: Does the Plugin rate limit webhook requests?
A: Yes, there’s a built in rate limit, the Plugin will not make any more than 60 requests per minute.

Q: Can multiple people use this plugin in the same Team Create session?
A: Yes, the Plugin works with a Queue for requests and will not send any duplicate requests.

Q: Can multiple people use a different webhook inside of the same Team Create session?
A: Currently not, but I’ll be working on a fix for that.

Q: Can I download the source to check it out?
A: Yes, of course! I’m planning on opening a Github repository so we can improve the code further, currently I’d say it’s a bit messy.

Q: Are you planning to create a visual menu for this Plugin instead of command line?
A: Yes, I’ll be making a visual menu as well for the plugin, but due to its simplicity I’ll stick with the command line for now.


This plugin is in Beta, expect bugs and please report them in comments. I’ll read them and make any changes necessary.

17 Likes

Are there any future technical or front-end edits that you’ll make to the code; as in is this upgradable and are you planning to upgrade it?

2 Likes

Yes, I’m planning to add a GUI to the plugin, to simplify even further the process of setting it up.

2 Likes

Anything other than UI, back-end/technical?

3 Likes

As mentioned, I’m going to open a GitHub repository to allow people to fork and upgrade the current code base. Right now, all you can do is download the plugin’s source straight from Roblox, analyse it and propose changes.

2 Likes

Since it can log new script instances being created, do you plan on also making it track other instances I.e models in other services?

3 Likes

Well, I congratulate you on making this new concept, don’t believe that other people made this but it’ll be a great resource for people who need to re-track their steps or manage development teams

Good job :+1:

3 Likes

Don’t have any plans to add in model tracking since that would take a lot of resources and logging. I’d rather stick with just scripts generally.

2 Likes

Thanks for the feedback! Enjoy the plugin :slight_smile:

1 Like

DISCORD IS NOT A LOGGING SERVICE NOR IT SHOULDN’T BE USED FOR LOGGING. That’s one of the reasons why Discord blocks Roblox requests. For this stuff you should use things like Sentry, Google Analysis or Firebase, not Discord. Discord is a place to chat, hang out with your friends, not to log stuff.

2 Likes

For most cases, this is true. However if you look at things like github commits and Heroku deployments, you can log these to Discord and you will not get banned or anything. Discord even built in custom support for Github Commits, https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks

It is a good idea to avoid Discord for chat logs, admin logs, join logs, etc though.

This plugin also rate limits requests so it should be fine to use.

An example of the Github Logs:

The plugin isn’t solemnly made for logging purposes, it is meant to use said data to share it with a target public. That statement applies mostly to chat-logs or admin-logs that prove no value to the general public. However, this type of log is no different than a DevLog, for example, as it aims to provide the community with information regarding a game’s development.

A maximum of a couple of requests per minute should be safe.

Good luck rate-limiting source changes

Last time I checked, request limit is currently set at 50 requests per second. This plugin is unable to make more than 60 requests per minute.

Due to its queue system, each entry has a 1 second cooldown to pass through, usually the queue will never build up to more than 5 - 10 changes.

Also, the queue system prevents duplicate requests to be queue’d, for example, if you update a script, wait two minutes, and update it again, it’ll only send a single request and update that very same request. It doesn’t create a new request for EACH change.

If you want to fill up the queue, you’d have to edit 60 different scripts in order to do so. Even then, the information is only sent in a timely manner, so it would never violate Discord’s rate limitation.

You generally shouldn’t have to rate-limit source changes as the average scripter doesn’t make changes quickly enough for that to be necessary.

3 Likes

Please read the post before commenting. To start, it’ll only consider a script’s source “changed” once you’ve typed at least 500 different things or the update timer has reached.

A webhook request is only queue once, any further changes will only update that same request, so even if you’re typing to the extreme, it’ll only display every five minutes that the source was updated, far from the rate limit. There’s also a setting to customize the update rate timer and I’ll also add one to customize the amount of actions you need to perform to count as a change.

Thats… disgusting.

As the OP of this thread has stated, there are counter-measures to webhook spam. Heck even the most basic form of Anti-Spam is putting a huge task.wait() (or wait() if you’re still that kind of person) to make the script wait for a bit until actually posting the information. Obviously that method is not ideal and should be a bit more dynamic than that, such as caching.

It seems to be only you who gets really rude about the tiniest things. Grow up a little bit, just saying.

Edit The person who sent the message deleted it. Carry on with your day

2 Likes

This is nice but didn’t discord block all requests form roblox you have to use a proxy sever and that’s more complex.